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用GET方法上传文件
Mar 10 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
python使用opencv进行人脸识别
Apr 07 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
Jan 09 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
May 26 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 Python
python实现计算器简易版
Dec 17 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
Terran兵种介绍
2020/03/14 星际争霸
php连接mssql数据库的几种方法
2013/02/21 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
Symfony的安装和配置方法
2016/03/17 PHP
zend framework重定向方法小结
2016/05/28 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
JS实现留言板功能
2017/06/17 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
Python 字典(Dictionary)操作详解
2014/03/11 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
python移位运算的实现
2019/07/15 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
C#面试常见问题
2013/02/25 面试题
音乐表演专业毕业生求职信
2013/10/14 职场文书
毕业生求职简历的自我评价
2013/10/23 职场文书
理货员的岗位职责
2013/11/23 职场文书
医校毕业生自我鉴定
2014/01/25 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
优秀志愿者感言
2015/08/01 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python