制作符合VOC格式的数据集

1. 创建需要的文件夹和文件夹

按下图格式创建若干文件夹
在这里插入图片描述
在Main文件夹内创建4个txt文件
在这里插入图片描述

2.将自己的数据集放入JPEGImages中

3.对JPEGImages文件夹中的图片进行重命名

这一步并不是必须的。(但是对于强迫症来说,处理完感觉很爽。)
在VOC2007文件夹内新建rename.py文件,讲下面的代码复制进文件。

import os
path="" #将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=os.path.splitext(file)[1]   #文件扩展名
    Newdir=os.path.join(path,str(count).zfill(6)+filetype)  #用字符串函数zfill 以0补全所需位数
    os.rename(Olddir,Newdir)#重命名
    count+=1

然后运行rename.py即可

4.使用labelimg软件对图片进行标注

https://github.com/tzutalin/labelImg
在上述网址下载即可。Windows平台有现成软件,mac和ubuntu需要自己安装一下。(介绍里写python2和python3都可以用,但是我只在python3环境下装成功了。)
标注的保存文件夹设置为步骤1中新建的Annotations。

5.生成用于训练和测试的检索文件

在VOC2007文件夹下新建txt.py文件,将下面的代码复制进文件中。

import os
import random
 
trainval_percent = 0.66
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()

运行txt.py,Main文件夹下的txt文件即为检索文件。

VOC格式的数据集生成完毕。
后续还会写怎么将数据集用于YOLO等模型的训练


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值