1. labelImg安装

1.工具下载:label工具的github下载地址:https://github.com/tzutalin/labelImg/tree/bf8cc1d5756184b9af8e412929efdaa6ae0ba4f1

在此感谢大神的贡献,工具真的很好用,一目了然。

2. 如果电脑还没有安装anaconda,则先安装anaconda软件。然后进入到下载好的labelImg目录下,输入cmd,进入控制台。

3.安装qt,我安装的是QT5,命令行输入

conda install pyqt=5

linux下qt5的安装:同样进入到labelImg目录下,输入以下命令:

sudo apt-get install pyqt5-dev-tools

等待安装完成后在输入:“make qt5py3” 若出现“pyrcc5 -o libs/resources.py resources.qrc”则表示安装成功。

4.等待安装完后,在命令行输入

pyrcc5 -o libs/resources.py resources.qrc

5.再输入

python labelImg.py

即打开标注工具。

标注工具使用就不作说明了,一目了然,设置图片路径和标注好的xml文件路径即可,图片标注好后会自动在所设置的目录下生成对应的xml文件,且名称与图片相同。图像路径和标注保存的xml路径中最好不要有中文名,否则后面生成训练要用的txt文件时可能会不识别。

2. VOC2007格式数据制作

1. 在工程目录中新建文件夹命名为“VOC2007”;

2.网上下载一个voc2007格式的数据集,将该数据集下的Annotations以及JPEGImages清空,将自己标注好的图片放入JPEGImages,生成的xml文件放入Annotations,将SegmentationClass和SegmentationObject文件夹也清空,ImageSets下面三个子文件夹的内容也清空,但保留三个文件夹,名字不要改动。

(提供voc2007数据格式的csdn资源https://download.csdn.net/download/feng1479580895/10320841)

使用以下代码生成Main中的四个文件

import os
import random  trainval_percent = 0.7
train_percent = 0.5
xmlfilepath = 'Annotations'
txtsavepath = 'ImageSets\Main'
total_xml = os.listdir(xmlfilepath)  num=len(total_xml)
list=range(num)
tv=int(num*trainval_percent)
tr=int(tv*train_percent)
trainval= random.sample(list,tv)
train=random.sample(trainval,tr)  ftrainval = open('ImageSets/Main/trainval.txt', 'w')
ftest = open('ImageSets/Main/test.txt', 'w')
ftrain = open('ImageSets/Main/train.txt', 'w')
fval = open('ImageSets/Main/val.txt', 'w')  for i  in list:  name=total_xml[i][:-4]+'\n'  if i in trainval:  ftrainval.write(name)  if i in train:  ftrain.write(name)  else:  fval.write(name)  else:  ftest.write(name)  ftrainval.close()
ftrain.close()
fval.close()
ftest .close()

这一步的详细步骤也可以参考这篇博客:https://blog.csdn.net/jx232515/article/details/78680724

这样,VOC2007的数据格式制作完了;

2.1. 位置文本信息生成脚本

直接上脚本代码:

import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import joinclasses = ["car","dog", "person"]#类型自己设置,不同类型用逗号隔开def convert(size, box):dw = 1./(size[0])dh = 1./(size[1])x = (box[0] + box[1])/2.0 - 1y = (box[2] + box[3])/2.0 - 1w = box[1] - box[0]h = box[3] - box[2]x = x*dww = w*dwy = y*dhh = h*dhreturn (x,y,w,h)def convert_annotation(image_id):in_file = open('labelimg保存的xml路径/%s.xml'%(image_id),  "r", encoding="utf-8")#读取标注数据,并支持中文字符out_file = open('txt文本输出路径/%s.txt'%(image_id), 'w')#输出的标注训练数据文本文件tree=ET.parse(in_file)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)for obj in root.iter('object'):difficult = obj.find('difficult').textcls = obj.find('name').textif cls not in classes or int(difficult)==1:continuecls_id = classes.index(cls)xmlbox = obj.find('bndbox')b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text), float(xmlbox.find('ymax').text))bb = convert((w,h), b)out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')wd = getcwd()#获取当前执行文件夹的路径if not os.path.exists('输出txt文本文件夹路径'):#判断是否存在输出文件夹os.makedirs('输出txt文本文件夹路径')#不存在则创建输出文件夹
image_ids = open('voc数据路径\ImageSets\Main/train.txt').read().strip().split()#分离文本中的imageID
list_file = open('2007_train.txt','w')
for image_id in image_ids:list_file.write('voc数据路径\images/%s.jpg\n'%(image_id))#将路径写入到文本文件中convert_annotation(image_id)
list_file.close()

附:将voc2007数据格式转换为tensorflow数据格式

源码github地址:https://github.com/balancap/SSD-Tensorflow

1. 在工程的根目录下创建名称为“tfrecords_”的文件夹,带下划线的

2. 打开命令窗口,根据balancap作者给出的tf_convert_data.py文件的使用方式,输入如下命令:

第一个参数是python,第二个参数是tf_convert_data.py文件的路径,第三个参数是“--dataset_name=pascalvoc_2007,第四个是你制作好的VOC2007格式的数据的路径,第五个是“--output_name=voc_2007_train”,第六个数输出的tfrecord格式的输出目录。

(注:目录设置时,最后不要忘记加“\”)

若是成功运行,则会出现如下界面

voc2007目标检测数据集制作相关推荐

  1. 【yolo5】目标检测数据集制作

    目录 1.先验知识 2. VOC和COCO数据集: 2.1 VOC形式及其数据结构XML特点(好像可以使用py库中工具直接进行清洗) 2.1.1 VOC数据集的组织结构如下所示 2.1.2 XML的操 ...

  2. 目标检测数据集制作常用脚本集合

    常用脚本集合 1.VOC格式篇 2.COCO格式篇 3.图像尺寸变换 1.VOC格式篇 这个代码的用途是将annotations下的xml文件转换成txt形式的labels. # 第二步运行 impo ...

  3. 目标检测---以制作yolov5的数据集为例,利用labelimg制作自己的深度学习目标检测数据集(正确方法)

    以制作yolov5的数据集为例,利用labelimg制作自己的深度学习目标检测数据集的正确方法 文章目录 前言 一.labelimg简单介绍 1 VOC标签格式,保存为xml文件. 2 yolo标签格 ...

  4. TensorFlow Object Detection API 技术手册(5)——制作自己的目标检测数据集

    TensorFlow Object Detection API 技术手册(5)--制作自己的目标检测数据集 (一)收集图片 (二)安装图像打标工具labelImg (三)将XML文件转化为CSV文件 ...

  5. 制作目标检测数据集入门到精通(一)常用数据集(及下载数据网站)汇总

    目录 前言 1.目标识别知名数据集 1.1 PASCAL VOC 1.2 MS COCO 1.3 ImageNet 2 人脸识别相关 2.1 FERET人脸数据库 2.2 CMU Multi-PIE人 ...

  6. 自己制作目标检测数据集

    自己制作目标检测数据集 这里介绍2个制作目标检测数据集的工具:labelImg和labelme.用pip list查看自己电脑是否已安装这两个库,没有的话分别用pip install labelImg ...

  7. 目标检测数据集PASCAL VOC简介

    简介 PASCAL VOC挑战赛 (The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛, PASCAL全称:Pattern Analysis, Stat ...

  8. 史上最强!目标检测数据集标注工具网页版

    前言 相信做目标检测的大家都有过会在将会有制作自己的目标检测数据集的需求.标注数据就得有相应的工具,这里就提供了这样一个标注工具.这个标注工具有着独一无二的特点,它是基于浏览器的标注工具.这就意味着任 ...

  9. 数据集:Udacity Self-Driving 目标检测数据集

    转载自:http://blog.csdn.net/jesse_mx/article/details/72599220 前言 之前,博主为了得到更好的车载视频目标检测效果(偏工程实际,非刷榜),使用SS ...

  10. 复杂背景下的自动驾驶目标检测数据集

    复杂背景下的目标检测数据集: 一.有雾场景下的目标检测数据集 发展: 2017年Li等提出第 1 个端到端的去雾网络 AODNet, 并且讨论了图像去雾对目标检测任务的影响. 其选取目标检测网络 Fa ...

最新文章

  1. 在ActionBar显示ShareActionProvider分享文本,点击可以打开进行分享(19)
  2. java dbcp_Java dbcp连接池基本使用方法详解
  3. 【Python3】Python模块与包的导入
  4. go语言快速刷《程序员面试金典》(1)
  5. logstash-filter模块
  6. 经典面试题(16):以下代码将输出的结果是什么?
  7. vs设计窗口不见了_龙猫腕表评测:VS沛纳海320V2版本
  8. RMAN 目录管理维护
  9. 如何检查计算机是否超频了,如何判断电脑是否支持超频?知识点get
  10. VS2019下cmake项目:利用ELAS方法计算双目视差
  11. C程序-将华氏温度转换为摄氏和开氏
  12. GCN使用的数据集Cora、Citeseer、Pubmed、Tox21格式
  13. 上海国拍服务器位置,上海国拍系统的重大漏洞
  14. Ubuntu 20.04/21.04 不能检测到外部HDMI显示器
  15. node-red教程 8.2 node-red收发邮件(基于QQ邮箱)
  16. BZOJ2437: [Noi2011]兔兔与蛋蛋
  17. javabean+servlet+jsp返利网
  18. STM32驱动开发(二)--USB Device RNDIS虚拟网卡(usb hound抓包完整数据流分析)
  19. Hexo(sakura)建立标签云hexo-tag-cloud
  20. XAMPP安装配置教程(Windows)

热门文章

  1. javascript 闭包理解总结
  2. OSS 下载文件名乱码
  3. android gms包
  4. 如何规避rm-rf导致的服务器删除问题
  5. 人类简史下载pdf_《人类简史:从动物到上帝》高清扫描版pdf下载
  6. 【数据可视化】免费开源BI工具DataEase实现了SQL数据集和Excel数据集关联?(什么?快别挡着我,冲!)
  7. 顺丰丰桥接口开发-不限java(LODOP电子面单打印)
  8. 基于单片机的HC-SR04超声波模块测距仪设计(数码管显示)
  9. 谈谈编程(2) 软件开发中的方法论
  10. 场内玩家追赶,场外玩家乐此不疲,场内场外谁主沉浮?