VOC转COCO格式标签bug分析
如题所示的bug,是因为xml标签文件中多了一对,或者多对的<object></object>
如图所示,中间多了一对object,把它删除就可以了(因为原本代码段是这样的,先搜索object,然后搜索difficult、name,如果空白object,没有这两个,就报错————其实就是代码写的不够完美)
for obj in root.iter('object'):
difficult = obj.find('difficult').text
cls = obj.find('name').text
if cls not in classes or float(difficult) == 1:
continue
cls_id = classes.index(cls)
xmlbox = obj.find('bndbox')
b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text),
float(xmlbox.find('ymax').text))
bb = convert((w, h), b)
out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')
最有效直接的方法,改代码,将空白的object跳过即可(代码有空再研究研究)