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 不关闭控制台的实现方法
Oct 23 Python
为python设置socket代理的方法
Jan 14 Python
六个窍门助你提高Python运行效率
Jun 09 Python
详解python OpenCV学习笔记之直方图均衡化
Feb 08 Python
pandas创建新Dataframe并添加多行的实例
Apr 08 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
Python反射和内置方法重写操作详解
Aug 27 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
Python Selenium实现无可视化界面过程解析
Aug 25 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 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方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
两种php实现图片上传的方法
2016/01/22 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
一则python3的简单爬虫代码
2014/05/26 Python
用Python解决计数原理问题的方法
2016/08/04 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
优秀教师事迹简介
2014/02/02 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
房产公证委托书范本
2014/09/20 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
幼儿园见习报告
2014/10/30 职场文书
财务统计员岗位职责
2015/04/14 职场文书
公司放假通知范文
2015/04/14 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
高考升学宴主持词
2019/06/21 职场文书
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js