La tarea de detección de objetivos es pesada y le preocupa que las categorías de etiquetas en el conjunto de datos no estén equilibradas. Si desea contar el número de etiquetas en cada categoría de etiquetas en el archivo de etiquetas XML, puede utilizar el siguiente script:
import os
import glob
import xml.etree.ElementTree as et
def count_labels(source_dir):
file_list = glob.glob(os.path.join(source_dir,"*.xml"))
labels = {}
for file in file_list:
tree = et.ElementTree()
tree.parse(file)
objects = tree.findall(".//object")
for object in objects:
name = object.find(".//name")
label = name.text
if label in labels.keys():
labels[label] += 1
else:
labels[label] = 1
count_all = 0
print(source_dir)
for i in labels.keys():
print(i,labels[i])
count_all += labels[i]
print("all_labels : ", count_all)
print("all_images : ", len(file_list))
if __name__ == '__main__':
count_labels("/disk/test_xml")