假设你已经做好了VOC数据标签,也就是xml文件,并且已经配置好了caffe-ssd的环境
第一步,在caffe-ssd/data目录下本身自带有如下文件夹:
然后在caffe-ssd/data目录下新建一个文件夹命名为VOCdevkit:
然后data目录下有:
进入VOCdevkit目录内,新建VOC2007文件夹,然后再进入VOC2007文件夹内新建Annotations,ImageSets,JPEGImages三个文件夹,在ImageSets文件夹内新建一个Main文件夹
最后目录级别为:
- caffe-ssd/data/VOCdevkit/VOC2007
- -----------------------------------------------/Annotations
- -----------------------------------------------/ImageSets
- --------------------------------------------------------------/Main
- -----------------------------------------------/JPEGImages
再将自己做的数据集所有的jpg图片全部放入JPEGImages文件夹内(下面这张路径图是windows可视之后。只是为了方便理解,我这篇博客是基于LINUX下的,Windows下应该也差不多)
将自己做的数据集标签(应该和放入JPEGImages文件内的图片名一样且数量一样多)xml文件全部放入Annotations文件夹内
Main文件夹应该有(可以用matlab脚本或者python脚本生成,我会将matlab脚本放置在下边百度云盘连接内):
下载地址:https://pan.baidu.com/s/1SmBjDglt8-7edC1tmEE7QQ 密码:0m27
训练集: train.txt
训练验证集: trainval.txt
测试集: test.txt
验证集: val.txt
这些txt文件内容如下所示,记录的都是数据集的名字不包括后缀:
好了,准备好以上工作后要正式开始将我们的VOC数据集转换为lmdb格式的工作了。
1. 首先看到caffe-ssd/data目录下,其中有我们新建的VOCdevkit文件夹还有一个VOC0712文件夹:
进入VOC0712文件夹内,可以看到:
create_data.sh, create_list.sh, labelmap_voc.prototxt三个文件
create_list.sh: 用于生成训练集,测试集的文件路径txt文件和一个测试集目录名和图片大小的txt
create_data.sh: 用于生成lmdb格式的训练数据集和测试集
labelmap_voc.prototxt: 里头是标签的信息
将这三个文件复制到自己新建的VOCdevkit/VOC2007文件夹内:复制后VOC2007文件夹内文件如下
然后要准备修改复制过来的这三个文件
首先修改create_list.sh(改成自己的目录就行)
总共需要改三处。
然后改create_data.sh(改成自己的目录就行)
总共需要修改五处。
最后修改labelmap_voc.prototxt文件:
除了第一个背景标签部分不要改,其他改成自己的标签就行,多的删掉,少了添加进去就行
最后,再在caffe-ssd/examples文件夹内新建一个VOC2007文件夹就行(空的):新建后examples目录内文件如下:
2. 要开始生成lmdb的最后步骤了
先运行create_list.sh脚本 用sh create_list.sh命令不行的话,就用 . create_list.sh命令,运行完后,会在自己建的VOCdevkit/VOC2007目录内生成trainval.txt, test.txt, test_name_size.txt。
再运行create_data.sh脚本 用 sh create_data.sh 命令不行的话,就用 . create_data.sh 命令,运行完后,会在会在自己建的VOCdevkit/VOC2007目录内生成lmdb文件夹:
lmdb文件夹内有:
这两个文件夹内有训练集和测试集的lmdb格式的数据:
例如测试集lmdb文件夹内:
到此,VOC数据集转换为lmdb格式数据集就成功了。双击666!!!
关于利用lmdb数据训练ssd,之后再更,请见 caffe-ssd 训练自己的VOC数据集(二):训练生成的lmdb数据