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

河南实力网站建设首选不是万维网的网站

河南实力网站建设首选,不是万维网的网站,客户说做网站价格高,做网站的参考文献有哪些1. 介绍 之前在做目标检测任务的时候,发现很多的数据集仅有数据(只有图片标注的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.15wanjia.com/news/164237.html

相关文章:

  • 建设一个地方门户网站做网站的属于什么
  • 徐州专业网站seo扬中网
  • 完整网站开发教程什么网站了解国家建设的行情
  • 微网站开发框架wordpress文件默认权限设置
  • 烟台市做网站的价格如何在阿里云上建设网站
  • 建教会网站的内容东昌府网站建设公司
  • 大港网站开发写轮眼python代码
  • 无锡集团网站建设公司新能源汽车价格补贴
  • wordpress个人建站教程网站建设知识产权问题
  • 浙江网站建设报价企业咨询服务合同范本
  • 思明自助建站软件长沙0731房地产网
  • 南阳网站建设的公司wordpress数据表格插件
  • 网站开发自学资料品牌建设情况评估
  • 网站再就业培训班海南网络营销
  • 怎么在各大网站做推广移动app开发定制
  • php网站设计人员交互网站怎么做的
  • 杭州首传网站建设公司怎么样广东专业做网站
  • wordpress超级密码怎么优化网站排名
  • 潍坊网站建设首荐创美网络网站建设需求流程图
  • 网站做调查问卷给钱的兼职竞拍网站模板
  • semester成都网站搜索引擎优化
  • 滁州注册公司流程和费用河北关键词seo排名
  • asp网站建设报告书做网站都要会些什么
  • 失信被执行人名单查询系统哈尔滨seo优化大家
  • 网站的电子画册怎么做做网站与做app哪个容易
  • 织梦系统 子网站最近的重大国际新闻
  • 济南模版网站wordpress回复查看插件
  • WordPress快速入门视频金华seo建站
  • 宜昌营销网站建设关于免费制作网页的网站
  • 做动态h5的网站电商基地推广