python下查找错误标记的文件

在通过图像标记工具 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))

猜你喜欢

转载自blog.csdn.net/alansss/article/details/119191200