前提:当你安装好mmdetection后
1.用LabelImg标注自己的数据集,获得与照片对应的一堆xml文件
(注:如果你是先在别的电脑用LabelImg标注,xml文件里的<folder>属性会与之后放在服务器里不一样。建议将图片文件统一放在一个命名为“VOC2007”或“VOC2012”的文件夹下再开始标注)
图片文件名不要有中文
2.按VOC的格式放置好自己的数据集
在mmdetection文件夹下新建一个“data”文件夹
在data文件夹下再新建一个“VOCdevkit”文件夹(注意大小写)
在VOCdevkit文件夹下新建一个文件夹叫“VOC2007”或“VOC2012”
之后就是开始放置数据集了:
在VOC2007数据集下分别建“Annotations”和“ImageSets”和“JPEGImages”三个文件夹
在“Annotations”文件夹中放入你所有的xml标注文件
在“JPEGImages”文件夹中放入你数据集里的所有照片
在“ImgaeSets”文件夹中再新建一个“Main”文件夹,在“Main”中放入“train.txt”,"trainval.txt","val.txt","test.txt"。(一开始训练阶段时没有test.txt也可以运行train.py)
这些txt文件里保存的是图片的名字,如图
这里提供一个简易的划分数据集代码(获得四个txt)
import os
import random
trainval_percent = 0.8
train_percent = 0.75
xmlfilepath = 'G:\dangerousCarDetect\VOC2007\Annotations'
txtsavepath = 'G:\dangerousCarDetect\VOC2007\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(r'G:\dangerousCarDetect\VOC2007\main\trainval.txt', 'w')
ftest = open(r'G:\dangerousCarDetect\VOC2007\main\test.txt', 'w')
ftrain = open(r'G:\dangerousCarDetect\VOC2007\main\train.txt', 'w')
fval = open(r'G:\dangerousCarDetect\VOC2007\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()