用labelImg制作VOC2007数据集进行faster-rcnn的训练

    xiaoxiao2023-10-06  140

    用labelImg制作VOC2007数据集进行faster-rcnn的训练

    下载安装labelImg快捷键和快速标记的一些小技巧 制作自己的VOC数据集文件重命名制作Main里的txt文档 结束

    下载

    labelImg可以制作COCO和VOC数据集,不过我只用他来制作了VOC数据集 我是linux上进行标注的,labelImg的下载地址这里

    安装

    安装的步骤README写的很清楚了 我是python2+pyqt4

    sudo apt-get install pyqt4-dev-tools sudo pip install lxml make qt4py2 #运行labelImg python labelImg.py #或者运行这个,这个是运行的时候不用去改图片地址的,不过我通常是运行上面一行,莫得办法,懒得打字 python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]

    labelImg快捷键和快速标记的一些小技巧

    保存:Ctrl + s 上一张:a 下一张:d 画框:w 选择要标注的图片路径:Ctrl + u 选择xml的保存路径:Ctrl + r 自动保存:view->自动保存模式,这个是下一张的时候自动保存xml

    预设标签:自动选择框的类别

    制作自己的VOC数据集

    创建下面这样的目录

    VOC2007 Annotations #存放xmlImageSets Main #存放 train.txt test.txt val.txt trainval.txt JPEGImages #存放图像

    文件重命名

    #coding=utf-8 import os path = "/path/to/VOC2007/JPEGImages/" filelist = os.listdir(path) #该文件夹下所有的文件(包括文件夹) i=0 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="/path/to/VOC2007/JPEGImages/"+ format(str(i), '0>6s') + filetype #以0补全所需位数 os.rename(Olddir,Newdir)#重命名 i=i+1

    制作Main里的txt文档

    #coding=utf-8 import os import random #可以更改这些参数 trainval_percent = 0.66 train_percent = 0.5 xmlfilepath = 'Annotations' txtsavepath = '/path/to/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('/path/to/VOC2007/ImageSets/Main/trainval.txt', 'w') ftest = open('/path/to/VOC2007/ImageSets/Main/test.txt', 'w') ftrain = open('/path/to/VOC2007/ImageSets/Main/train.txt', 'w') fval = open('/path/to/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()

    结束

    然后你就得到了自己的VOC2007数据集,可以进行训练了

    最新回复(0)