当前位置:   article > 正文

【数据集制作】VOC2007格式数据集制作和处理教程(Faster-RCNN模型标准输入)

voc2007

说明

此次案例是制作VOC2007数据集的制作教程,用于目标检测,此次数据集处理可用于Faster-RCNN、YOLOv3等网络进行目标检测模型的标准输入。

  • VOC2007数据集结构
#VOC2007数据集结构如下:
VOC2007
	|-Annotations#里面存放的是每一张图片对应的标注结果,为XML文件,
				 #标注完成后JPEGImages每张图片在此都有一一对应的xml文件
	|-ImageSets#存放的是每一种类型对应的图像数据,为txt文件
		|-Layout#存放的是具有人体部位的数据(如人的head、hand、feet等等)
		|-Main#存放的是图像物体识别的数据
		|-Segmentation#存放的是可用于分割的数据
	|-JPEGImages#存放的是原图片
	|-SegmentationClass#按类别进行图像分割,同一类别的物体会被标注为相同颜色
	|-SegmentationObject#按对象进行图像分割,即使是同一类别的物体会被标注为不同的颜色。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

此数据集可用于目标检测和图像分割,此次实验案例是讲解Faster-RCNN、YOLOv3等模型的进行目标检测的标准数据集输入,没讲分割,所有用不到上述所有数据集,只讲其中目标检测部分数据集的制作。

  • 此次实验用到VOC2007数据集结构如下:
#VOC2007数据集结构如下:
VOC2007
	|-Annotations#里面存放的是每一张图片对应的标注结果,为XML文件,
				 #标注完成后JPEGImages每张图片在此都有一一对应的xml文件
	|-ImageSets#存放的是每一种类型对应的图像数据,为txt文件
		|-Main#存放的是图像物体识别的数据
	|-JPEGImages#存放的是原图片

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

1、安装工具

  • 安装环境

此次数据标注使用labelImg工具,我是在pycharm终端中进行pip安装的,安装方式很多,就不一一列举了,还需要安装lxml库和pytq可以,安装步骤如下:

python pip3 install labelImg

pip install lxml

pip install pytq

  • 运行截图:
    在这里插入图片描述
  • 进入环境
    进入标注工具,只需要在pycharm终端处输入LabelImg,LabelImg工具自动弹出打开,如下:

LabelImg

  • 运行截图:
    在这里插入图片描述

2、数据集准备

在VOC2007文件夹下创建这三个文件夹:

在这里插入图片描述

  • Annotations文件夹该文件下存放的是xml格式的标签文件,每个xml文件都对应于JPEGImages文件夹的一张图片。
  • JPEGImages文件夹:该文件夹下存放的是数据集图片(原图),包括训练和测试图片。把原图数据放到此文件夹下

在这里插入图片描述

  • ImageSets文件夹该文件夹下存放了三个文件,分别是Layout、Main、Segmentation。在这里我们只用存放图像数据的Main文件

ImageSets下创建Main文件夹,在该文件夹下创建如下4个txt文件:

  • test.txt:测试集
  • train.txt:训练集
  • val.txt:验证集
  • trainval.txt:训练和验证集
    在这里插入图片描述

对数据重命名

  • 处理代码:
"""文件重命名为000000、000001、000002...nnnnn"""
import os
path = r"C:\Users\xxx\Desktop\VOC2007\JPEGImages"#JPEGImages文件夹所在路径
filelist = os.listdir(path) #该文件夹下所有的文件(包括文件夹)
count=0
for file in filelist:
    print(file)
for file in filelist:   #遍历所有文件
    Olddir=os.path.join(path,file)   #原来的文件路径
    if os.path.isdir(Olddir):   #如果是文件夹则跳过
        continue
    filename=os.path.splitext(file)[0]   #文件名
    filetype='.jpg'   #文件扩展名
    Newdir=os.path.join(path,str(count).zfill(6)+filetype)  #用字符串函数zfill 以0补全所需位数
    os.rename(Olddir,Newdir)#重命名
    count+=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 运行截图:
    在这里插入图片描述
  • 处理结果展示:
    在这里插入图片描述

4、数据标注

  • 添加标注数据集

安装好的工具,输入LabelImge打开标注工具,然后添加需要标注的数据文件夹,数据原图是放在JPEGImages‘文件夹中的,操作如下图:
在这里插入图片描述

  • 标注方式选择
    标注方式选择Create rectBox矩形标注,或者选择快捷键w键快速标注:

在这里插入图片描述

  • 标注及标签设置
    用框框住标注目标,标注完成后,弹出标签值框,输入需要添加的标签,点击ok:
    在这里插入图片描述
  • 标注结果保存
    标注结果默认方式每一次保存都需要选择保存文件夹,快捷键选择默认保存文件夹,使用快捷键Ctrl+r键,选择默认保存的文件夹为Annotation:

在这里插入图片描述
如果标注的只有一个标签值,可以设置默认标签值,在标注工具的右上角,如下图:

在这里插入图片描述
第一次标注设置好后,接下来就是快速标注,快捷键:
w键选择标注,Ctrl+s键保存,d键切换下一张图片直到标注完成。

  • 标注结果展示
    标注好后,标注结果保存在VOC2007下的Annotation文件内,内容展示如下:

在这里插入图片描述

5、数据处理

  • 对标注结果xml文件夹进行数据处理
import os
import random

trainval_percent = 0.9#验证集和训练集占的百分比
train_percent = 0.7#训练集占的百分比
xmlfilepath = r'C:\Users\xxx\Desktop\VOC2007\Annotations'#Annotation文件夹所在位置
txtsavepath = r'C:\Users\xxx\Desktop\VOC2007\ImageSets\Main'#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)
#Main文件夹下所对应的四个txt文件夹路径
ftrainval = open(r'C:\Users\xxx\Desktop\VOC2007\ImageSets\Main\trainval.txt', 'w')
ftest = open(r'C:\Users\xxx\Desktop\VOC2007\ImageSets\Main\test.txt', 'w')
ftrain = open(r'C:\Users\xxx\Desktop\VOC2007\ImageSets\Main\train.txt', 'w')
fval = open(r'C:\Users\xxx\Desktop\VOC2007\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()
  • 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
  • 运行截图:
    在这里插入图片描述
    此时打开VOC2007/ImagesSets/Main文件夹,里面的四个如下文件:

在这里插入图片描述
打开四个文件,里面内容如下:
在这里插入图片描述
至此,VOC2007格式数据集制作完成。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号