ターゲット検出タスクが重く、データ セット内のラベル カテゴリのバランスが取れていないことが心配です。XML ラベル ファイル内の各ラベル カテゴリのラベルの数を数えたい場合は、次のスクリプトを使用できます。
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")