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的多维空数组赋值方法
Apr 13 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
Python编写打字训练小程序
Sep 26 Python
python实现按首字母分类查找功能
Oct 31 Python
Python中itertools的用法详解
Feb 07 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
Apr 13 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
PyCharm中关于安装第三方包的三个建议
Sep 17 Python
Django实现随机图形验证码的示例
Oct 15 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语言的7种基本的排序方法
2020/12/28 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
Javascript注入技巧
2007/06/22 Javascript
JavaScipt基本教程之前言
2008/01/16 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
python利用正则表达式提取字符串
2016/12/08 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
Python PIL图片添加字体的例子
2019/08/22 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
html5 视频播放解决方案
2016/11/06 HTML / CSS
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
什么是View State?
2013/01/27 面试题
出国签证在职证明
2014/01/16 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
车辆年审委托书范本
2014/09/18 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
经验交流材料格式
2014/12/30 职场文书
感恩父母主题班会
2015/08/12 职场文书