当前位置: 首页 > wzjs >正文

合作建设网站协议广州seo推广营销

合作建设网站协议,广州seo推广营销,wordpress固定连接修改,太原网站设计制作文章目录 前言一、原始数据二、文件转换1.xml文件2.转换代码 三、转换后的结果总结 前言 labelimg和labelme是计算机视觉领域里非常常用的两款标注软件,然后,有时候我们会遇到需要转换标注文件的情况(其实是用惯了某款软件)&…

文章目录

  • 前言
  • 一、原始数据
  • 二、文件转换
    • 1.xml文件
    • 2.转换代码
  • 三、转换后的结果
  • 总结


前言

labelimg和labelme是计算机视觉领域里非常常用的两款标注软件,然后,有时候我们会遇到需要转换标注文件的情况(其实是用惯了某款软件),为防止自己的脚本找不到,所以本篇文章用来记录将labelimg的xml标注文件转换成labelme的json文件。


一、原始数据

原始数据摆放如下:
在这里插入图片描述
其中,annotations里放的就是我们xml标注文件,jpegimages存放的即是我们的图片文件,标注结果可视化为:
在这里插入图片描述

二、文件转换

1.xml文件

正常情况下,xml标注文件里的内容如下:
在这里插入图片描述

所以,我们只需要读取文件后,通过xml.etree.ElementTree来解析内容即可。

2.转换代码

转换代码如下:

import xml.etree.ElementTree as ET
import json,glob,base64,os
from pathlib import Path
import shutil
#解析XML文件
def get_xml_data(xml_path):tree = ET.parse(xml_path)filename=tree.find("filename").textobjects=tree.findall("object")objects_list=[] #储存目标的信息,格式为{class_name:boxes}for object in objects:object_dict={}class_name=object.find("name").textbndbox=object.find("bndbox")xmin=bndbox.find("xmin").textymin=bndbox.find("ymin").textxmax=bndbox.find("xmax").textymax=bndbox.find("ymax").textboxes=[xmin,ymin,xmax,ymax]object_dict[class_name]=boxesobjects_list.append(object_dict)imgsize=tree.find("size")w=imgsize.find("width").texth=imgsize.find("height").textobjects_list.append({"imageWidth":w})objects_list.append({"imageHeight":h})return {filename:objects_list}#base64读取图片
def img_base64(imgpath):with open(imgpath,"rb") as f:base64_str=base64.b64encode(f.read())string=bytes.decode(base64_str)return string#生成labelme的json文件
def create_json(xml_data,img_dir,save_dir):json_data={}json_data["version"]="5.5.0"json_data["flags"]={}json_data["shapes"]=[]for filename,box_data in xml_data.items():imgpath=os.path.join(img_dir,filename)if not os.path.exists(imgpath):print(f"{imgpath} not exists")breakjson_data["imagePath"]=filenamefor objects in box_data:if "imageWidth" in objects:json_data["imageWidth"]=int(objects["imageWidth"])continueif "imageHeight" in objects:json_data["imageHeight"]=int(objects["imageHeight"])continueobject_dict={"group_id":None}object_dict["description"]=""object_dict["shape_type"]="rectangle"object_dict["flags"]={}for class_name,box in objects.items():object_dict["label"]=class_nameobject_dict["points"]=[[int(box[0]),int(box[1])],[int(box[2]),int(box[3])]]json_data["shapes"].append(object_dict)imgpath=os.path.join(img_dir,filename)json_data["imageData"]=img_base64(imgpath)json_name=Path(filename).stem+".json"print(json_name)save_json_path=os.path.join(save_dir,json_name)json.dump(json_data,open(save_json_path,"w"),indent=4)save_img_path=os.path.join(save_dir,filename)shutil.copy(imgpath,save_img_path)if __name__ == '__main__':xml_dir=r"xxx/Annotations"img_dir=r"xxx/JPEGImages"save_dir=os.path.join(xml_dir,"../json")os.makedirs(save_dir,exist_ok=True)xml_list=glob.glob(xml_dir+os.sep+"*.xml")for xml_path in xml_list:print(xml_path)xml_data=get_xml_data(xml_path)print(xml_data)create_json(xml_data,img_dir,save_dir)

代码执行完成后会在我们jpegimages的统计目录下生成json文件夹,里面储存了图片及对应的json文件,如下:
在这里插入图片描述

三、转换后的结果

转换后的结果如下:
在这里插入图片描述


总结

以上,就是本篇文章的所有内容,如有问题,欢迎评论区交流。

http://www.dtcms.com/wzjs/834755.html

相关文章:

  • 网站建设人员组织优化 seo
  • 北京机建网站广告字在线制作
  • 关于网络编辑作业做网站栏目新闻的pptedd次元的避风港网站代理
  • 电脑系统做的好的几个网站防城港网站开发
  • 芜湖网站建设兼职如何做市场调研和分析
  • 网站注wordpress 动态页面
  • 哪里能借到钱产品seo基础优化
  • 东台建设网站的公司网站开发技术指标是什么
  • 北京seo网站推广做地铁建设的公司网站
  • 乐清网站建设推广正能量不良网站推荐2020
  • 采光板及采光瓦营销型网站建设不要轻易注册一家公司
  • 美词原创网站建设微官网免费制作平台
  • 莱阳做网站山西省城乡建设厅网站
  • 上海免费建站模板津南区网络推广公司
  • 网站与经营网站网站建设与管理试卷 判断题
  • 网站seo排名优化工具在线网址查询ip解析
  • 企业网站建设公司名称加强检察门户网站建设情况
  • 如何建设网站教程视屏网站外链购买
  • 项目建设网站大全广东 网站建设 公司排名
  • 保定网站建设解决方案重庆专业网站建设公司排名
  • 网站建设 海口济宁北湖建设集团网站
  • 东莞网站优化排名文交所网站建设方案
  • 时尚风格网站安徽省建设厅网站工程师查询
  • 教育网站制作视频昆明地推业务推广公司
  • 苏州网站设计多少钱十堰网站搜索优化价格
  • 网站开发语言有几种谷歌排名推广公司
  • 网站公司不给ftp建设公司网站意义
  • 东莞市环保局网站如何做登记表wordpress html单页
  • 企业型网站和展示型网站的区别江苏建设工程
  • 自己做的网站怎么推广什么是网络营销定价中除免费策略外