Python 生成VOC格式的標簽實例
常用目標檢測模型基本都是讀取的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格式的標簽實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: