个人微信公众号:AI研习图书馆,欢迎关注~
深度学习知识及资源分享,学习交流,共同进步~
1.引言
深度学习第一步:制作自己网络的训练数据集。
本文主要介绍利用自己的数据集,制作VOC标准数据格式的数据集,用于深度学习,形如voc2007,voc2012数据集。
2. 制作教程
前提条件:首先,你安装了caffe-ssd,并测试了VOC数据。caffe安装请看我的另一篇博客,下载caffe-ssd版本即可。
博客链接:caffe安装教程
2.1 标注自己的数据
这里我选择生成的bounding box是XML格式,方便后面处理(TXT格式比较麻烦)。
标数据的工具:推荐使用labelimg标注工具。
下载及安装教程参考我的另一篇博客,链接:
labelimg标注工具安装教程
然后,就可以开始漫长的标注数据之旅了!
2.2 在/home/$你的服务器命/data/VOCdevkit下建立自己的数据集名称
在MyDataSet目录下需包含Annotations、ImageSets、JPEGImages三个文件夹,下面以我建立的文件夹MyDataSet为例讲解:
-
Annotations目录下存放第1步生成的xml格式数据文件。
-
ImageSet目录下包含Main文件下,在ImageSets\Main里有四个txt文件:test.txt train.txt trainval.txt val.txt;
txt文件中的内容为图片名字(无后缀)。
生成这四个txt文件的代码,篇幅限制,请参看我的另一篇博客,上面有详细代码。博客地址:TXT文件生成代码 -
JPEGImages目录下存放所有的数据图片
2.3 在caffe-ssd/data目录下创建一个自己的文件夹
cd data
mkdir MyDataSet
把data/VOC0712目录下的create_list.sh 、create_data.sh、labelmap_voc.prototxt 这三个文件拷贝到MyDataSet下(以我的为例):
cp VOC0712/create_list.sh MyDataSet/
cp VOC0712/create_data.sh MyDataSet/
cp VOC0712/labelmap_voc.prototxt MyDataSet/
2.4 在caffe-ssd/examples下创建MyDataSet文件夹:
mkdir MyDateSet
用于存放后续生成的lmdb文件
2.5 修改labelmap_voc.prototxt文件(改成自己的类别),以及create_list.sh和create_data.sh文件中的相关路径
#labelmap_voc.prototxt需修改:
item {
name: "none_of_the_above"
label: 0
display_name: "background"
}
item {
name: "person"
label: 1
display_name: "person"
}
#create_list.sh需修改:
root_dir=/home/yi_miao/data/Mydataset/
...
for name in yourownset
...
#if [[ $dataset == "test" && $name == "VOC2012" ]]
# then
# continue
# fi
#create_data.sh需修改:
root_dir=/home/yi_miao/caffe-ssd
data_root_dir="/home/yi_miao/data/Mydataset"
dataset_name="Mydataset"
2.6 在caffe-ssd根目录下运行命令
./data/mydataset/create_list.sh
./data/mydataset/create_data.sh
此时,在examples/mydataset/文件夹下可以看到两个子文件夹, mydataset_trainval_lmdb, mydataset_test_lmdb;里面均包含data.dmb和lock.dmb
大功告成,VOC格式数据集制作完成,其中标注自己数据的任务是最繁重和枯燥的。最后,可以开始深度学习训练了,祝你成功!
欢迎关注个人微信公众号,学习交流~