Python 生成VOC格式的标签实例

时间:2021-05-22

常用目标检测模型基本都是读取的PASCAL VOC格式的标签,下面代码用于生成VOC格式的代码,根据需要修改即可:

from lxml import etree, objectifydef gen_txt(filename, h, w, c): E = objectify.ElementMaker(annotate=False) anno_tree = E.annotation( E.folder('VOC_OPEN_IMAGE'), E.filename(filename), E.source( E.database('The VOC2007 Database'), E.annotation('PASCAL VOC2007'), E.image('flickr'), E.flickrid("341012865") ), E.size( E.width(w), E.height(h), E.depth(c) ), E.segmented(0), E.object( E.name('1'), E.pose('left'), E.truncated('1'), E.difficult('0'), E.bndbox( E.xmin('0'), E.ymin('0'), E.xmax('0'), E.ymax('0') ) ), ) etree.ElementTree(anno_tree).write('ann/'+filename[:-4]+".xml", pretty_print=True)

补充知识: python对PASCAL VOC标注数据进行统计

用于统计训练数据中的类别,以及所有目标的个数:

# coding:utf-8import xml.etree.cElementTree as ETimport osfrom collections import Counterimport shutil # Counter({'towCounter({'tower': 3074, 'windpower': 2014, 'thermalpower': 689, 'hydropower': 261, 'transformer': 225})# total_num: 6263 def count(pathdir,despath): category = [] path = pathdir + '/XML/' for index,xml in enumerate(os.listdir(path)): # print(str(index) + ' xml: '+ xml) root = ET.parse(os.path.join(path, xml)) objects = root.findall('object') # ==================select images which has a special object============= for obj in objects: obj_label = obj.find('name').text if obj_label == 'transformer': print(xml) imgfile = pathdir + 'JPEG/' + xml.replace('xml', 'jpg') img_despath = despath + xml.replace('xml', 'jpg') # if not os.path.exists(img_despath): shutil.copyfile(imgfile, img_despath) # ==================select images which has a special object============= category += [ob.find('name').text for ob in objects] print(Counter(category)) total_num = sum([value for key, value in Counter(category).items()]) print('total_num:',total_num) if __name__ == '__main__': # pathdirs = list(set(os.listdir('./')) ^ set(['tools','count.py'])) # print(pathdirs) # for pathdir in pathdirs: pathdir = '/summer/Desktop/power_traindata/' despath = '/transformer/' count(pathdir,despath)

以上这篇Python 生成VOC格式的标签实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章