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中使用%与.format格式化文本方法解析
Dec 27 Python
python PyTorch预训练示例
Feb 11 Python
python3中函数参数的四种简单用法
Jul 09 Python
python实现全盘扫描搜索功能的方法
Feb 14 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
python set集合使用方法解析
Nov 05 Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
Python Excel vlookup函数实现过程解析
Jun 22 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
UI自动化定位常用实现方法代码示例
Oct 27 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&mysql(六)
2006/10/09 PHP
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
python daemon守护进程实现
2016/08/27 Python
Python ORM编程基础示例
2020/02/02 Python
python入门之井字棋小游戏
2020/03/05 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
2020/09/30 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
荷兰家电销售网站:Welhof
2020/12/08 全球购物
合同专员岗位职责
2013/12/18 职场文书
十佳青年个人事迹材料
2014/01/28 职场文书
宣传标语大全
2014/07/01 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
销售开票员岗位职责
2015/04/15 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
董存瑞观后感
2015/06/11 职场文书
正规欠条模板
2015/07/03 职场文书
公司财务管理制度
2015/08/04 职场文书
python基础之while循环语句的使用
2021/04/20 Python