Python 生成VOC格式的标签实例


Posted in Python onMarch 10, 2020

常用目标检测模型基本都是读取的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格式的标签实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常用正则表达式符号浅析
Aug 13 Python
python友情链接检查方法
Jul 08 Python
详解Python进程间通信之命名管道
Aug 28 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
python os.path模块常用方法实例详解
Sep 16 Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
pywinauto自动化操作记事本
Aug 26 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
Jul 02 Python
python中字典增加和删除使用方法
Sep 30 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 #Python
python目标检测给图画框,bbox画到图上并保存案例
Mar 10 #Python
python opencv 检测移动物体并截图保存实例
Mar 10 #Python
Python标准库json模块和pickle模块使用详解
Mar 10 #Python
Python xlrd excel文件操作代码实例
Mar 10 #Python
python图片剪裁代码(图片按四个点坐标剪裁)
Mar 10 #Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 #Python
You might like
php下获取客户端ip地址的函数
2010/03/15 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
微信支付开发交易通知实例
2016/07/12 PHP
php socket通信简单实现
2016/11/18 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
简单的js表格操作
2016/09/24 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
js实现秒表计时器
2019/12/16 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
python实现在pandas.DataFrame添加一行
2018/04/04 Python
flask框架视图函数用法示例
2018/07/19 Python
什么是python的函数体
2020/06/19 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
周鸿祎:教你写创业计划书
2013/12/30 职场文书
西门豹教学反思
2014/02/04 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
煤矿安全协议书
2014/08/20 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
专家推荐信怎么写
2015/03/25 职场文书
体育教师研修感悟
2015/11/18 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书