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 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
探索Python3.4中新引入的asyncio模块
Apr 08 Python
在Python中操作时间之tzset()方法的使用教程
May 22 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
Mar 19 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
python删除文本中行数标签的方法
May 31 Python
python自定义函数实现最大值的输出方法
Jul 09 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
Oct 18 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 Python
使用pandas模块实现数据的标准化操作
May 14 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 shell命令合并图片的代码
2011/06/23 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
python带参数打包exe及调用方式
2019/12/21 Python
django实现后台显示媒体文件
2020/04/07 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
css3实现超炫风车特效
2014/11/12 HTML / CSS
HTML5自定义mp3播放器源码
2020/01/06 HTML / CSS
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
美容师的职业规划书
2013/12/27 职场文书
医院院务公开实施方案
2014/05/03 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
长城导游词
2015/01/30 职场文书
小学德育工作总结2015
2015/05/12 职场文书
三八节活动简报
2015/07/20 职场文书