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判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
Python shelve模块实现解析
Aug 28 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 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中的cookie不用刷新就生效的方法
2012/02/04 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
Python反射用法实例简析
2017/12/22 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
前台接待岗位职责
2013/12/03 职场文书
初婚未育未抱养证明
2014/01/12 职场文书
业务员自荐信范文
2014/04/20 职场文书
积极向上的团队口号
2014/06/06 职场文书
干部作风建设工作总结
2014/10/29 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
Javascript之datagrid查询详解
2021/09/15 Javascript