常用目标检测模型基本都是读取的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 生成VOC格式的标签实例

本文地址: http://www.cppcns.com/jiaoben/python/302590.html

python transformer category_Python 生成VOC格式的标签实例相关推荐

  1. 【Python】随机划分数据集并生成VOC格式列表

    1.Introduction 做目标检测时,用LabelImg生成的 xml 文件需要和对应的图片文件名,生成VOC格式列表.同时需要按照一定比例划分为训练集.验证集和测试集. 2.Materials ...

  2. VOC格式xml标签与YOLO格式txt标签相互转换

    转自:LabelImg标注的VOC格式xml标签与YOLO格式txt标签相互转换_wangmj_hdu的博客-CSDN博客 1.VOC标签格式说明 VOC数据格式,会直接把每张图片标注的标签信息保存到 ...

  3. python使用fpdf生成发票格式的pdf文件包含:文字、图片logo、表格、条形码等;

    python使用fpdf生成发票格式的pdf文件包含:文字.图片logo.表格.条形码等: pip install fpdf #python使用fpdf生成发票格式的pdf文件包含:文字.图片logo ...

  4. python实现目标检测voc格式标签数据增强

    文章目录 前言 一.显示图片(可关闭) 二.创建图像变换的类 1.增强数据代码 2.图像加噪声 3.调整图像亮度 4.添加黑色像素块 5.旋转图像 6.图像裁剪 7.平移图像 8.图像镜像 9.图像随 ...

  5. caffe生成voc格式lmdb

    要训练ssd基本都是在liu wei框架下改,生成lmdb这一关照葫芦画瓢总遇坑,记录之: 1. labelmap_voc.prototxt要根据自己的分类修改,比如人脸检测改成这样: item {n ...

  6. easy excel date 类型解析报错_实例1:用Python自动批量生成Excel档物料标签

    作为一个生产型企业,其产品种类繁多.按照客户要求,每种产品在出货时都需要在包装上贴上如下信息标签,以便识别. 标签上需要包含6种信息,原始资料内容如下: 我们注意到原始信息中的品牌,有些是大写,有些是 ...

  7. Visdrone2019数据集.txt标签文件转换为voc格式.XML标签文件

    最近有同学问是否有Visdrone数据集的xml文件,由于本人之前训练数据的时候没有保存xml文件,所以无法共享. 为了解决这个问题,重新写了转换代码并贴出,供大家共同学习使用.(文末附上数据下载网盘 ...

  8. 把LabelImg标注的YOLO格式标签转化为VOC格式标签 和 把VOC格式标签转化为YOLO格式标签

    把LabelImg标注的YOLO格式标签转化为VOC格式标签 和 把VOC格式标签转化为YOLO格式标签 文章目录: 1 用LabelImgvoc和yolo标注标签格式说明 1.1 LabelImg标 ...

  9. 【csv文件转xml文件】Excel表格数据快速批量生成xml格式文件

    使用背景: 使用场景举例:数据集标签处理 有时候我们需要将固定格式的Excel表格文件(csv文件)转换为xml文件使用,例如我们在目标检测实验当中我们需要制作数据集Pascal VOC格式的标签文件 ...

最新文章

  1. 翻页导航条页码计算方法
  2. 在Java8的foreach()中不能break,如果需要continue时,可以使用return
  3. 天池在线编程 2020国庆八天乐 - 4. 生成更大的陆地(BFS)
  4. C语言转义字符介绍和示例
  5. Facebook开源问答系统DrQA:基于单一信源回答开放域提问
  6. python有参装饰器详解_Python 带有参数的装饰器实例代码详解
  7. c# datagridview列形式为Combobox,每行下拉选项不一样
  8. “跟技术Leader聊了10分钟,我就猜到下周要发生重大宕机事故!”
  9. WEBOS——第一次感觉云计算离我们如此之今
  10. C/C++存储区域划分(栈区,堆区,全局区,代码区)
  11. Hadoop从零开始的搭建(伪分布式)
  12. 智博联反射波测桩分析软件 V141125专业版
  13. mysql 百分比两位小数_SQL中如何让百分比后面保留2位小数?
  14. js-xlsx插件导出的excel头部有一行序号解决办法
  15. nvidia agx xavier平台imx334 驱动调试记录
  16. 微信小程序--视频播放器
  17. 【考研408】计算机与组成原理笔记
  18. 手机计算机怎么打出无限符号,Win7怎么用搜狗打无限符号|输入法打无限符号方法...
  19. Is it going on-------------Docker容器的安装以及基本的操作指令
  20. 加油站APP开发定制功能

热门文章

  1. t检验特征筛选详解及实战
  2. 15天Python入门-3-流程控制-选择结构
  3. PaSS: a sequencing simulator for PacBio sequencing PaSS:用于PacBio测序的测序模拟器
  4. Type Ⅰ error(false positive) Type Ⅱ error(false negative)
  5. linux结束打印机进程,Linux系统,如何知道哪个进程在打印log?
  6. html增加状态信息管理代码,JavaScript+HTML实现学生信息管理系统
  7. 微信截取菜单栏(不收回)
  8. 127.0.0.1和0.0.0.0和localhost的区别
  9. 卷积网络基础知识---Depthwise Convolution Pointwise Convolution Separable Convolution
  10. 人群密度估计--Spatiotemporal Modeling for Crowd Counting in Videos