数据集label的统计分布

在训练模型前,需要知道数据集与标注的分布情况。看看有没有标注缺失的图像,做标注补全;类别数量不平衡的话,也要做相应的数据预处理,否则模型训练的效果不好。因此需要统计数据集的标注数量【num_anno】,类别数量【num_classes】,及各个类别标注的分布【num_label】。以xml标注文件为例,获取各类别的标签数据分布。

import  xml.dom.minidom
import os,sys
import matplotlib.pyplot as plt  rootdir = '../mmdetection/data/abn/VOCdevkit/VOC2012/Annotations/'
doc_xml = os.listdir(rootdir) 
print('num_anno', len(doc_xml))
classes_list = []
num_label = {}
for i in range(0,len(doc_xml)):path = os.path.join(rootdir,doc_xml[i])if os.path.isfile(path):#打开xml文档dom = xml.dom.minidom.parse(path)#得到dom元素的labelroot = dom.documentElementlabel=dom.getElementsByTagName('name')for i in range(len(label)):c1 = label[i]class_name = c1.firstChild.data#列表中不存在则存入列表if classes_list.count(class_name)==0:classes_list.append(class_name)num_label[class_name] = 0num_label[class_name] += 1
print('num_classes', len(classes_list))
print('num_label', num_label)
plt.bar(range(len(num_label.keys())), num_label.values(), color='skyblue', tick_label=num_label.keys())

可视化各个类别的标注数量,更直观看到标注分布情况。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部