目标检测VOC数据集标注XML文件转EasyDL数据集标注Json格式

简介: 目标检测VOC数据集标注XML文件转EasyDL数据集标注Json格式

首先需要创建数据集,该平台可以自己上传数据在线标注,需要耗费较长时间。由于本人已有标注好的VOC格式的目标检测数据集,所以就想能不能直接利用起来在平台上训练。经发现可以上传有标注信息的本地数据集。


   按照其示例标注json格式对VOC格式数据集中的Xml文件进行转换,代码如下:


import os
import xml.etree.cElementTree as ET
import json
#解析Xml中标注框的label和bbox
def get_bbox(xmlname):
    sig_xml_box = []
    label_name=[]
    tree = ET.parse(xmlname)
    root = tree.getroot()
    for i in root:  # 遍历一级节点
        if i.tag == 'object':
            for j in i:
                if j.tag == 'name':
                    cls_name = j.text
                    label_name.append(cls_name)
                if j.tag == 'bndbox':
                    bbox = []
                    xmin = 0
                    ymin = 0
                    xmax = 0
                    ymax = 0
                    for r in j:
                        if r.tag == 'xmin':
                            xmin = eval(r.text)
                        if r.tag == 'ymin':
                            ymin = eval(r.text)
                        if r.tag == 'xmax':
                            xmax = eval(r.text)
                        if r.tag == 'ymax':
                            ymax = eval(r.text)
                    bbox.append(xmin)
                    bbox.append(ymin)
                    bbox.append(xmax)
                    bbox.append(ymax)
                    sig_xml_box.append(bbox)
    return label_name, sig_xml_box
#获得转换Json文件
def get_json(xml_dir):
    xml_list = os.listdir(xml_dir)
    for xml_name in xml_list:
        json_name = xml_name.split('.')[0]+'.json'
        json_path = os.path.join(json_dir,json_name)
        xml_path =os.path.join(xml_dir,xml_name)
        label_name,sigxml_bbox = get_bbox(xml_path)
        ann_js = {}
        annotations = []
        for index, box in enumerate(sigxml_bbox):
            anno = {}
            anno['name'] = label_name[index]
            anno['x1'] = box[0]
            anno['y1'] = box[1]
            anno['x2'] = box[2]
            anno['y2'] = box[3]
            annotations.append(anno)
        ann_js['labels'] = annotations
        json.dump(ann_js, open(json_path, 'w'), indent=4)  # indent=4 更加美观显示

   生成格式如下:


请.png


   然后将原图和Json文件打包为Zip,压缩包要求的格式如下:


去.png


    打包上传至数据中心即可开始训练。


    EasyDL分类数据集制作可跳至:EasyDL分类训练数据集Json生成


    转载请注明出处,谢谢合作。


相关文章
|
1月前
|
JSON 算法 vr&ar
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
本文介绍了如何使用COCO评估器通过Detectron2库对目标检测模型进行性能评估,生成coco_instances_results.json文件,并利用pycocotools解析该文件以计算AP、AR、MR和DR等关键指标。
85 1
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
|
1月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
57 1
|
2月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
45 1
|
2月前
|
XML JSON 数据处理
C# 中的 XML 与 JSON 数据处理
在现代软件开发中,数据交换和存储需求日益增长,XML 和 JSON 成为最常用的数据格式。本文从 C# 角度出发,详细介绍如何处理这两种格式,并提供示例代码。对于 XML,我们介绍了读取、创建和写入 XML 文件的方法;对于 JSON,则展示了如何使用 Newtonsoft.Json 库进行数据解析和序列化。此外,文章还总结了常见问题及其解决方案,帮助开发者更好地应对实际项目中的挑战。
177 61
C# 中的 XML 与 JSON 数据处理
|
7天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
55 8
|
1月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
60 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
1月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
25 3
|
1月前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
88 0
|
1月前
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
352 0
|
1月前
|
XML 存储 Web App开发
查看 XML 文件
查看 XML 文件