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

萤石云网站开发软文写作发布

萤石云网站开发,软文写作发布,网站 如何做后台维护,wordpress仿站cms1. 介绍 之前在做目标检测任务的时候,发现很多的数据集仅有数据(只有图片标注的xml文件),没有关于类别的json文件,为了以后方便使用,这里记录一下 一般来说,yolo标注的数据集,只有第一个是数字类别&#x…

1. 介绍

之前在做目标检测任务的时候,发现很多的数据集仅有数据(只有图片+标注的xml文件),没有关于类别的json文件,为了以后方便使用,这里记录一下

一般来说,yolo标注的数据集,只有第一个是数字类别,要是没有classes对应的类别,只能根据图片一个个输入。

对于xml解释性标签文件,标注的时候,object下面的name就是目标检测框的分类,所以这里只有xml生成类别json文件的代码

2. 实现代码

代码实现简单,仅有50行,这里简单介绍

这里root传入的是数据集的xml目录,因为训练集包含本检测任务的所有分类,这里传入的是目录

if __name__ == "__main__":root = './my_xml_dataset/train/annotations'          # 数据集的 xml 目录xml2json(root)

下面读取xml文件的内容,这里的data以及将单个xml文件全部解析出来

  • open里面的encoding和errors参数是因为本实验的xml包含中文字符,这样可以防止报错,正常的话不需要这两个参数,如果xml编码不一样,根据报错信息,百度一下传入不同编码就行了
  • parse_xml_to_dict  为自定义函数,后面会贴所有代码,这里只需要知道利用递归将xml文件解析成字典文件即可,看下面的data打印信息

接着开始读取单个xml的所有目标类别,如下

classes需要去除重复的目标,生成单个的classes文件

最好生成json文件即可

可以看出,测试数据的目标共有10347个

生成的json文件如下:

3. 完整代码

如下:

import os
from tqdm import tqdm
from lxml import etree
import json# 读取 xml 文件信息,并返回字典形式
def parse_xml_to_dict(xml):if len(xml) == 0:  # 遍历到底层,直接返回 tag对应的信息return {xml.tag: xml.text}result = {}for child in xml:child_result = parse_xml_to_dict(child)  # 递归遍历标签信息if child.tag != 'object':result[child.tag] = child_result[child.tag]else:if child.tag not in result:  # 因为object可能有多个,所以需要放入列表里result[child.tag] = []result[child.tag].append(child_result[child.tag])return {xml.tag: result}# 提取xml中name保留为json文件
def xml2json(data):xml_path = [os.path.join(data, i) for i in os.listdir(data)]classes = []      # 目标类别num_object = 0for xml_file in tqdm(xml_path, desc="loading..."):with open(xml_file,encoding='gb18030',errors='ignore') as fid:      # 防止出现非法字符报错xml_str = fid.read()xml = etree.fromstring(xml_str)data = parse_xml_to_dict(xml)["annotation"]  # 读取xml文件信息for j in data['object']:        # 获取单个xml文件的目标信息ob = j['name']num_object +=1if ob not in classes:classes.append(ob)print(num_object)# 生成json文件labels = {}for index,object in enumerate(classes):labels[index] = objectlabels = json.dumps(labels,indent=4)with open('class_indices.json','w') as f:f.write(labels)if __name__ == "__main__":root = './my_xml_dataset/train/annotations'          # 数据集的 xml 目录xml2json(root)

下载地址:关于目标检测:如何根据XML标签文件生成检测类别的json字典文件,包含数据集、测试代码以及生成好的json文件

http://www.r43.cn/news/150151.html

相关文章:

  • 网站设置了刷新限制网店推广实训系统
  • 有用node.js做的网站吗网站seo方案策划书
  • wordpress 后端是什么安卓优化大师新版
  • lnmpa安装wordpressseo技术培训机构
  • 六安招聘网app软件下载站seo教程
  • 深圳做微商网站的公司自己怎么做网站推广
  • 做网站找模板怎么做网站教程
  • 医学类的网站做Googleweb成品网站源码免费
  • 网站设计费用入哪个会计科目最彻底的手机优化软件
  • 深圳网站建设便捷百度问一问人工客服怎么联系
  • 成都高端网站设计危机公关处理方案
  • 那些网站是做生鲜的谷歌关键词挖掘工具
  • 论文收录网站排名网站推广的软件
  • 务川网站建设论坛外链代发
  • windows 2003建设网站巨量数据分析入口
  • 给周杰伦做网站网站点击率查询
  • 网站出现死链怎么办百度云链接
  • wamp做的网站外网怎么访问网站seo招聘
  • 高碑店网站建设关键词seo公司
  • php做不了大型网站北京口碑最好的it培训机构
  • 党校网站建设谷歌浏览器网页版入口手机版
  • 网站建设4000-262-263合肥seo服务商
  • 做网站需要那些东西elo机制
  • 门户网站建设方案知名网络营销推广
  • 妇联加强网站平台建设广州seo优化公司排名
  • 做网站怎么建立文件夹就业seo好还是sem
  • 做影视免费网站违法吗需要留电话号码的广告
  • 永久免费企业建站官网大全股票发行ipo和seo是什么意思
  • 办公室设计布局平面图关键词优化资讯
  • ps做购物小网站微信软文推广怎么做