BDD100K数据集的Jason文件转xml文件

这篇博客介绍了如何将BDD100K数据集的Jason文件转换为XML文件,特别是针对交通灯标签。内容中提供了转换代码示例,并强调在创建路径时要注意避免错误,例如将Annotations文件夹定位在正确的位置。
摘要由CSDN通过智能技术生成

针对交通灯数据集,因为其包含其它标签,而我这里只需要标签为traffic light的

一共是70000个jason文件

 对应的路径文件应该这样,每个人存放的位置不一致,所以自行设置就行

文件结构如图所示

 

 

 

文件代码

bdd2voc.py

# -*- coding: utf8 -*-
import os
import pascal_voc_io
import parseJson

def main(srcDir, dstDir):
    i = 1
    # os.walk()
    # dirName是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)
    # root所指的是当前正在遍历的这个文件夹的本身的地址
    # dirs是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
    # files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
    for dirpath, dirnames, filenames in os.walk(srcDir):
#        print(dirpath, dirnames, filenames)
        for filepath in filenames:
            fileName = os.path.join(dirpath,filepath)
            print(fileName)
            print("processing: {}, {}".format(i, fileName))
            i = i + 1
            xmlFileName = filepath[:-5] # remove ".json" 5 character
            # 解析该json文件,返回一个列表的列表,存储了一个json文件里面的所有方框坐标及其所属的类
            objs = parseJson.parseJson(str(fileName))
            # 如果存在检测对象,创建一个与该json文件具有相同名的VOC格式的xml文件
            if len(objs):
                tmp = pascal_voc_io.PascalVocWriter(dstDir, xmlFileName, (720,1280,3), fileName)
                for obj in objs:
                    tmp.addBndBox(obj[0],obj[1],obj[2],obj[3],obj[4])
                tmp.save()
            else:
                print(fileName)

if __name__ == '__main__':
    # test
    # these paths should be your own path
#    srcDir = '/media/xavier/SSD256/global_datasets/BDD00K/bdd100k/labels/100k/val'
#    dstDir = '/media/xavier/SSD256/global_datasets/BDD00K/bdd100k/Annotations/val'
    srcDir = 'D:/pythonProject/bdd100ktoxml-master/bdd100k/labels/100k/train'
    dstDir = 'D:/pythonProject/bdd100ktoxml-master/bdd100k/Annotations/train'
    main(srcDir, dstDir)
globalvar.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

def 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值