温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python如何生成VOC格式

发布时间:2021-03-18 14:40:35 来源:亿速云 阅读:272 作者:小新 栏目:开发技术

这篇文章主要介绍Python如何生成VOC格式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

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

from lxml import etree, objectify def 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-8 import xml.etree.cElementTree as ET import os from collections import Counter import 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格式”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI