制作VOC数据集(labelimg标注图片、划分数据集)

使用labelimg制作VOC数据集

VOC数据集介绍

VOC数据集包括三个文件夹
在这里插入图片描述

  • Annotations:以xml文件格式记录图片的名字,类别,目标边框的位置,图片的大小
  • ImageSets:以txt文件分别记录训练集,验证集,测试集的图片名字例如:000204
  • JPEGImages:用于存放图片

labelimg介绍

labelimg用于给目标检测的图片做标记的工具,那么下载链接如下:
点击下载labelimg: 提取码: cezf
备注:本人win7系统,不知道其他的怎么样,解压后无法使用,于是不解压,从压缩包能正常运行。。。。。。
在这里插入图片描述

labelimg保姆级使用流程

准备工作

使用到Annotations,JPEGImages文件夹

以官网的样式,先创建文件夹:

在这里插入图片描述

设置labelimg

在这里插入图片描述
在这里插入图片描述

给图片做标记

在这里插入图片描述
备注:使用A,D可以切换图片

最终结果

对图片的标记自动生成的结果如下图
在这里插入图片描述
在这里插入图片描述
到此图片的标注工作到此结束,下面介绍下如何划分数据集

数据集的划分

准备工作

该流程用到Annotations,ImageSets文件夹
在这里插入图片描述

划分数据集程序

import os
import random

trainval_percent = 0.1
train_percent = 0.9
xmlfilepath = 'Annotations'
txtsavepath = 'ImageSets\Main'
total_xml = os.listdir(xmlfilepath)
print (total_xml)
num = len(total_xml)
list = range(num)
#总体取出10%的个数(测试集与验证集个数)
tv = int(num * trainval_percent)
#从10%中再取去90%用作验证集的个数
tr = int(tv * train_percent)
#trainval:包括测试集与验证集
trainval = random.sample(list, tv)#从list中随机获取tv个元素,作为一个片断返回
train = random.sample(trainval, tr)
print(train)

ftrainval = open('ImageSets/Main/trainval.txt', 'w')
print (ftrainval)
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'#也就是去除‘.xml’这四个字符


    if i in trainval:
        ftrainval.write(name)
        if i in train:
            ftest.write(name)
        else:
            fval.write(name)
    else:
        ftrain.write(name)

ftrainval.close()
ftrain.close()
fval.close()
ftest.close()

总结:
读取Annotations中的xml文件名,把90%分配到训练集,其余10%再按照90%分配到验证集,其余为测试集

  • 4
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值