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运算符重载用法实例
May 28 Python
全面了解Python环境配置及项目建立
Jun 30 Python
Pycharm学习教程(1) 定制外观
May 02 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
python生成随机数、随机字符、随机字符串
Apr 06 Python
Python 避免字典和元组的多重嵌套问题
Jul 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实现递归循环每一个目录
2010/08/08 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP缓冲区用法总结
2016/02/14 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
JS中关于正则的巧妙操作
2017/08/31 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
环保专业大学生职业规划设计
2014/01/10 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
年终晚会主持词
2014/03/25 职场文书
小班上学期评语
2014/05/05 职场文书
教研处工作方案
2014/05/26 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
小班上学期个人总结
2015/02/12 职场文书
2015年教学工作总结
2015/04/02 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
电话营销开场白
2015/05/29 职场文书
观看建国大业观后感
2015/06/01 职场文书
首席执行官观后感
2015/06/03 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
Python max函数中key的用法及原理解析
2021/06/26 Python
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
Windows7下FTP搭建图文教程
2022/08/05 Servers