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 01 Python
Pthon批量处理将pdb文件生成dssp文件
Jun 21 Python
python selenium 获取标签的属性值、内容、状态方法
Jun 22 Python
python学生管理系统学习笔记
Mar 19 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
May 27 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
Python使用微信接入图灵机器人过程解析
Nov 04 Python
NumPy统计函数的实现方法
Jan 21 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
详解KMP算法以及python如何实现
Sep 18 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 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环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
php视频拍照上传头像功能实现代码分享
2015/10/08 PHP
php实现购物车功能(上)
2020/07/23 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
AngularJS语法详解
2015/01/23 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
Python实现带百分比的进度条
2016/06/28 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
Python实现的矩阵类实例
2017/08/22 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
求职简历中个人的自我评价
2013/12/25 职场文书
户外拓展活动方案
2014/02/11 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
网络信息安全承诺书
2014/03/26 职场文书
合伙经营协议书范本
2014/04/18 职场文书
大学开学计划书
2014/04/30 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技