在通过图像标记工具 labelimg对图像中的目标进行标记时,有时候会存在误标记的情况,需要找到无标记的序列,查找程序如下所示:
#coding=utf-8
#test 读取xml文件中的类别名并统计次数
#寻找异常标记点
import os,cv2
import numpy as np
import xml.etree.ElementTree as ET
def getClass(xm):
tree = ET.ElementTree(file = xm)
root = tree.getroot()
objectset = root.findall('object')
#print(len(objectset))
cnt = 0
objName = []
if len(objectset):
#objBndBoxSet={}
for object0 in objectset:
objName.append(object0.find('name').text)
cnt = cnt + 1
else:
objName = 'background'
return objName
cc = 0
class_name = ['Yun5','Ganrao','w']#['name1','name2','name3','name4','airplane','background']
class_cnt =[0 for k in range(len(class_name))]
print('class_cnt',class_cnt)
xml_path_in = "/media/caffe-ssd/VOCdevkit/VOC2007/Annotations/"
#fig_path_in = "/media/SSD/VOCdevkit/VOC2007/JPEGImages"
a = 0
for xm in os.listdir(xml_path_in):
cc = cc +1
#print(cc)
#print(xml_path_in+xm)
cls_name = getClass(xml_path_in + xm)
#print(cls_name)
for cls_name0 in cls_name:
#print(cls_name0)
for i in range(len(class_name)):
if(cls_name0 == class_name[i]):
a = i ##print(cls_name0,xm)#class_cnt[i] = class_cnt[i]+1
else:
#print(cls_name)
if cls_name0 == 'name1w':
print('name1w',xm)#class_cnt[2] = class_cnt[2]+1
elif cls_name0 == 'name2w':
print('name2w',xm)
elif cls_name0 == 'nam4':
print('nam4',xm)
elif cls_name0 == 'neme3':
print('neme3',xm)
if a==2:
print('other',xm)
print('class_name',class_name)
print('class_cnt',class_cnt)
print('num:',np.sum(class_cnt))