使用labelimg制作自己的数据集(voc2007格式)用于faster-rcnn训练(代码片段)

shuimuqingyang shuimuqingyang     2023-02-14     143

关键词:

https://blog.csdn.net/u011956147/article/details/53239325

https://blog.csdn.net/u011574296/article/details/78953681

版权声明:本文为博主原创文章,欢迎转载,请注明出处 https://blog.csdn.net/u011574296/article/details/78953681

一、数据集文件夹

新建一个文件夹,用来存放整个数据集,或者和voc2007一样的名字:VOC2007 
然后像voc2007一样,在文件夹里面新建如下文件夹:

技术分享图片

二、将训练图片放到JPEGImages

将所有的训练图片放到该文件夹里,然后将图片重命名为VOC2007的“000005.jpg”形式

图片重命名的代码(c++,python,matlab),参考:http://blog.csdn.net/u011574296/article/details/72956446

三、标注图片,标注文件保存到Annotations

使用labelIImg 标注自己的图片

1、在git上下载源码:https://github.com/tzutalin/labelImg

2、按照网页上的使用方法使用 
(1)安装PyQt4和Lxml

(2)在labelImage 的目录下 shift+右键打开cmd 运行一下命令:

pyrcc4 -o resources.py resources.qrc 
python labelImg.py

注:这个时候,就会出现labelimage的窗口

(3)labelimg窗口的使用方法: 
? 修改默认的XML文件保存位置,可以用“Ctrl+R”,改为自定义位置,这里的路径不能包含中文,否则无法保存。

? 源码文件夹中使用notepad++打开data/predefined_classes.txt,可以修改默认类别,比如改成bus、car、building三个类别。

?“Open Dir”打开需要标注的样本图片文件夹,会自动打开第一张图片,开始进行标注

? 使用“Create RectBox”开始画框

? 完成一张图片后点击“Save”,此时XML文件已经保存到本地了。

? 点击“Next Image”转到下一张图片。

? 标注过程中可随时返回进行修改,后保存的文件会覆盖之前的。

? 完成标注后打开XML文件,发现确实和PASCAL VOC所用格式一样。

每个图片和标注得到的xml文件,JPEGImages文件夹里面的一个训练图片,对应Annotations里面的一个同名XML文件,一 一 对应,命名一致

标注自己的图片的时候,类别名称请用小写字母,比如汽车使用car,不要用Car 
pascal.py中读取.xml文件的类别标签的代码: 
cls = self._class_to_ind[obj.find(‘name‘).text.lower().strip()] 
写的只识别小写字母,如果你的标签含有大写字母,可能会出现KeyError的错误。 

四、ImageSetsMain里的四个txt文件

在ImageSets里再新建文件夹,命名为Main,在Main文件夹中生成四个txt文件,即: 
技术分享图片 
test.txt是测试集 
train.txt是训练集 
val.txt是验证集 
trainval.txt是训练和验证集

VOC2007中,trainval大概是整个数据集的50%,test也大概是整个数据集的50%;train大概是trainval的50%,val大概是trainval的50%。

txt文件中的内容为样本图片的名字(不带后缀),格式如下: 
技术分享图片

根据已生成的xml,制作VOC2007数据集中的trainval.txt ; train.txt ; test.txt ; val.txt 
trainval占总数据集的50%,test占总数据集的50%;train占trainval的50%,val占trainval的50%; 
上面所占百分比可根据自己的数据集修改,如果数据集比较少,test和val可少一些

代码如下:

%注意修改下面四个值  
xmlfilepath=‘E:Annotations‘;  
txtsavepath=‘E:ImageSetsMain‘;  
trainval_percent=0.5; #trainval占整个数据集的百分比,剩下部分就是test所占百分比  
train_percent=0.5; #train占trainval的百分比,剩下部分就是val所占百分比  

xmlfile=dir(xmlfilepath);  
numOfxml=length(xmlfile)-2;#减去.和..  总的数据集大小  

trainval=sort(randperm(numOfxml,floor(numOfxml*trainval_percent)));  
test=sort(setdiff(1:numOfxml,trainval));  

trainvalsize=length(trainval); #trainval的大小  
train=sort(trainval(randperm(trainvalsize,floor(trainvalsize*train_percent))));  
val=sort(setdiff(trainval,train));  

ftrainval=fopen([txtsavepath ‘trainval.txt‘],‘w‘);  
ftest=fopen([txtsavepath ‘test.txt‘],‘w‘);  
ftrain=fopen([txtsavepath ‘train.txt‘],‘w‘);  
fval=fopen([txtsavepath ‘val.txt‘],‘w‘);  

for i=1:numOfxml  
    if ismember(i,trainval)  
        fprintf(ftrainval,‘%s
‘,xmlfile(i+2).name(1:end-4));  
        if ismember(i,train)  
            fprintf(ftrain,‘%s
‘,xmlfile(i+2).name(1:end-4));  
        else  
            fprintf(fval,‘%s
‘,xmlfile(i+2).name(1:end-4));  
        end  
    else  
        fprintf(ftest,‘%s
‘,xmlfile(i+2).name(1:end-4));  
    end  
end  
fclose(ftrainval);  
fclose(ftrain);  
fclose(fval);  
fclose(ftest);  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
 

 

















目标检测实战教程01-使用labelimg标注目标检测数据集|voc转coco数据集(代码片段)

目标检测实战教程01-使用labelimg标注目标检测数据集|voc转COCO数据集b站视频演示:B站视频教学对图像进行编号将收集到的图像进行编号方便统一管理,编号代码如下importospath="E:\\\\image1"filelist=os.listdir(path)#该... 查看详情

deeplabv3+制作自己的voc数据集使用指南(代码片段)

目录在自己电脑实现Deeplabv3+完成deeplabv3+的训练如果要做一个自己的VOC数据集问题TensorFlowAllocationof1511424000exceeds10%ofsystemmemorytf:failedtoalloc268435456bytesonhost:CUDA_ERROR_OUT_OF_MEMORY在自己电脑实现Deeplabv3+首先要清楚图像分割和语义分割的 查看详情

使用yolo3模型训练自己的数据集

...要将其拷贝到VOC2007文件夹下。 2.标注图片:  使用LabelImg(https://github.com/tzutalin/labelImg)对训练图片进行标注生成标签,然后将所有图片放在 JPEGImages 文件夹下,将所有标签(.xml)放在Annotations文件夹下。3.划分数据集:... 查看详情

voc数据集讲解及自己标注(代码片段)

数据集的标注首先要安装labelImgpipinstalllabelimg首先准备一个文件夹里面包括两个子文件夹和一个txt文件:(annotation、image、classes.txt)结构如下图:|--------(父级目录)|—annotation|—image|—classes.txt在文件里打开shell命令行,... 查看详情

yolo-darknet实战:使用labelimg制作目标检测数据集

文章目录一、LabelImg介绍二、软件界面介绍三、具体标注过程一、LabelImg介绍LabelImg是一款便捷的数据集标注工具,可用于手动标注目标框的位置和类别,非常适合目标检测数据集的标注。下面提供的是windows下的LabelImg安装包,安... 查看详情

yolo-darknet实战:使用labelimg制作目标检测数据集

文章目录一、LabelImg介绍二、软件界面介绍三、具体标注过程一、LabelImg介绍LabelImg是一款便捷的数据集标注工具,可用于手动标注目标框的位置和类别,非常适合目标检测数据集的标注。下面提供的是windows下的LabelImg安装包,安... 查看详情

yolo-darknet实战:使用labelimg制作目标检测数据集

文章目录一、LabelImg介绍二、软件界面介绍三、具体标注过程一、LabelImg介绍LabelImg是一款便捷的数据集标注工具,可用于手动标注目标框的位置和类别,非常适合目标检测数据集的标注。下面提供的是windows下的LabelImg安装包,安... 查看详情

[数据集][voc]消防灭火器数据集voc格式5156张介绍

...个类别标注的框数:fecount=7762使用标注工具:labelImg标注规则:对类别进行画矩形框重要说明:暂无特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注CSDN... 查看详情

如何使用ssd训练自己的数据

...数据,推荐一个好用的贴标签软件(https://github.com/tzutalin/labelImg)拿VOC2012为例,VOC2012目录下需要Annotations、ImageSets、JPEGImages文件夹,Annotations存储对应的标签xml信息,JPEGImages存储图片数据,ImageSets主要使用Main文件夹下的数据,Main... 查看详情

yolov5-pytorch版-windows下训练自己的数据集,内含voc批量转yolo方法。(自称宇宙超级巨详细步骤)(代码片段)

...(自称宇宙超级巨详细步骤)一.准备数据集1.在labelimg下直接生成yolo的.txt格式2.Pytorch版批量.xml格式转yolo的.txt格式3.数据集制作二.Yolov5实现训练1.修改两个.yaml文件2.修改train.py文件3.执行train.py一.准备数据集这位博主那里... 查看详情

使用labelimg制作yolo系列目标检测数据集(.xml文件)(代码片段)

第一步:WIN键+R输入cmd打开命令行窗口第二步:在命令行窗口中输入pip3installlabelImg,安装labelImg第三步:输入labelImg打开labelImg窗口第四步: 查看详情

使用labelimg制作yolo系列目标检测数据集(.xml文件)(代码片段)

第一步:WIN键+R输入cmd打开命令行窗口第二步:在命令行窗口中输入pip3installlabelImg,安装labelImg第三步:输入labelImg打开labelImg窗口第四步: 查看详情

labelimg标注的voc格式标签xml文件和yolo格式标签txt文件相互转换(代码片段)

目录1labelimg标注VOC格式和yolo格式介绍1.1voc格式1.2yolo数据格式介绍2voc格式数据和yolo格式数据相互转换2.1voc转yolo代码2.2yolo转voc格式代码 1labelimg标注VOC格式和yolo格式介绍    labelimg标注工具怎么安装和使用在我的博客中已经讲... 查看详情

从零开始带你一步一步使用yolov3训练自己的数据(代码片段)

...Ov3训练自己的数据集。一、标注数据集首先我们需要使用labelimg工具来标注图片数据集,例如图片是.jpg格式的,用矩形框标注图片中的目标位置,得到.xml文件。这里labelimg的使用方法就不作介绍了,读者自行查阅... 查看详情

深度学习caffe实战笔记(19)windows平台faster-rcnn制作自己的数据集

万里长征第一步,就是要制作自己的数据集,过程还是比较繁琐的,特别是标注的过程,这篇博客先介绍如果制作voc2007自己的数据集用于faster-rcnn训练,下一篇博客介绍如何用faster-rcnn训练自己的数据。1、准备图像图像要用.jpg... 查看详情

tensorflowfasterrann

...接口。为了方便我将自己的数据格式改为voc的数据格式,使用原来voc的数据接口pascal_voc.py。voc数据格式中需要 查看详情

mmsegmentation训练自己的voc数据集

使用labelme标注数据并转化为voc格式安装labelme并打开(这里我把labelme安装在Anaconda的虚拟环境中了),在Anacondaprompt中打开选择文件夹进行标注保存之后每个图片会有一个对应的json文件进入网址https://github.com/wkentaro/labelme下... 查看详情

隧道目标识别实验过程标准voc数据集和制作后的数据集实验结果对比

VOC标准数据集中一共有20个类别:‘aeroplane‘,‘bicycle‘,‘bird‘,‘boat‘,‘bottle‘,‘bus‘,‘car‘,‘cat‘,‘chair‘,‘cow‘,‘diningtable‘,‘dog‘,‘horse‘,‘motorbike‘,‘person‘,‘pottedplant‘,‘sheep‘,‘sofa‘,‘train‘,‘tvmonitor‘... 查看详情