在将数据集格式由VOC转化为YOLO格式过程中出现如下报错:
VOC转YOLO格式代码:https://blog.csdn.net/m0_56013116/article/details/136446559?spm=1001.2014.3001.5501
这里报错的原因是:在你的xml里面的 < object>里面缺少标签difficult,增加以下代码即可解决:
if obj.find('difficult'):
difficult = int(obj.find('difficult'))
else:
difficult = 0
但是,我加上之后发现还是不行,于是又仔细检查了我的xml文件,发现其中有空的object标签,里面啥也没有!!!不仔细看还真看不出来~~~~~
打印object中的name看是否存在,
# 这里打印找到的name对象,发现运行到存在空的object的xml文件时出现None,
#即说明object是空的,这时候跳过这次转换即可,即跳过空的object不进行转换。
name = obj.find('name')
print(name)
增加了以下代码,成功解决:
if name == None:
continue
这段代码意思是,如果在object标签中不存在name这个标签,直接跳过。因为一个标框不可能没有name也就是你标注的物体的类别。