仅作笔记整理搬运使用,没有任何程序原创部分,主要给自己提个醒,避免重复搜索工作
一、配置
ubuntu18.04 ,显卡驱动,cuda10.1,cudnn7.6.5
查看cuda版本:
cat /usr/local/cuda/version.txt
查看cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
二、安装配置caffe-ssd
annaconda下创建caffe环境:conda create -n caffe2 python=2.7
opencv安装:pip install opencv-python
安装配置caffe-ssd
https://blog.csdn.net/CAU_Ayao/article/details/84000151
make runtest -j16 的时候会出错!
三、制作VOC数据集
https://blog.csdn.net/Sunhansong/article/details/107281225
四、voc数据集转化成lmbd数据集
https://blog.csdn.net/la_fe_/article/details/84928958
caffe 使用的是 LMDB 数据集格式,使用 caffe 框架实现mobilenets-ssd训练,还需要将 VOC 数据集转换为 lmdb 格式。
(虽然用cucumber有点奇怪,但是就顺着人家作者来吧)
- 在 home/shs/data/VOCdevkit 目录下创建 cucumber 目录,该目录中存放自己转换完成的VOC数据集,即Annotation/ImageSets/JPEGImages 等多个文件夹,ImageSets中的Main中要生成好四个txt文件;
- 在 home/shs/caffe-ssd/examples 目录下创建 cucumber 目录;
- 在 home/shs/caffe-ssd/data 目录下创建 cucumber 目录,同时将data/VOC0712下的 create_list.sh,create_data.sh,labelmap_voc.prototxt
这三个文件copy到 cucumber 目录下,分别重命名为create_list_cucumber.sh,create_data_cucumber.sh, labelmap_voc_cucumber.prototxt - 对上面新生成的两个create文件进行修改,主要修改是将 VOC0712 相关的信息替换成 cucumber
labelmap_voc_cucumber.prototxt 修改内容:
注意:"background"这个背景类别0标签不可以删掉
item {
name: "none_of_the_above"
label: 0
display_name: "background"
}
item {
name: "p"
label: 1
display_name: "p"
}
item {
name: "d"
label: 2
display_name: "d"
}
item {
name: "w"
label: 3
display_name: "w"
}
create_list_cucumber.sh 修改内容:
for name in cucumber # 修改此处为自己数据集的名字
do
if [[ $dataset == "test" && $name == "VOC2012" ]]
then
continue
fi
create_data_cucumber.sh 修改内容:
root_dir=/home/shs/caffe-ssd
… …
data_root_dir="$HOME/data/VOCdevkit" # 数据集路径
dataset_name="cucumber"
mapfile="$root_dir/data/$dataset_name/labelmap_voc_cucumber.prototxt"
- 运行脚本
在 home/shs/caffe-ssd/ 目录下分别运行: