一. SSD算法理解
参考博客:
https://blog.csdn.net/u014380165/article/details/72824889
https://blog.csdn.net/wfei101/article/details/78176322
二. 安装并训练自己的数据
1.在https://github.com/weiliu89/caffe/tree/ssd 下载了.zip包和数据集及预训练模型,放在/home/iscas/SSD文件夹下
解压到当前目录:
cd ~/SSD
unzip caffe-ssd.zip
2.
cd ~/SSD/caffe-ssd
cp Makefile.config.example Makefile.config
针对需求修改几项即可,如下:
a.若使用cudnn,则将:#USE_CUDNN := 1 修改成:USE_CUDNN := 1
b.若要使用python来编写layer,则将:#WITH_PYTHON_LAYER := 1去掉#号修改为:WITH_PYTHON_LAYER := 1
c.修改成:USE_OPENCV := 1, USE_LEVELDB := 1, USE_LMDB := 1
3.
make -j16
报错:
/usr/include/boost/property_tree/detail/json_parser_read.hpp:257:264: error: ‘type name’ declared as function returning an array
make: *** [.build_release/cuda/src/caffe/layers/detection_output_layer.o] Error 1
解决方案参考以下博客:
https://blog.csdn.net/wei_guo_xd/article/details/73729472
4.
make clean
make -j16
报错:/usr/bin/ld: cannot find lopenblas
解决方案:参考https://blog.csdn.net/u014696921/article/details/56678520
apt-get install liblapack-dev liblapack3 libopenblas-base libopenblas-dev
5.
make clean
make -j16
编译成功
make pycaffe(注意这里编译前并没有下载相应的库,因为之前已经编译过pycaffe了,编译后也并没有设置环境变量)
make test -j16
make runtest -j16
6.解压数据集
将下载好的预训练模型VGG_ILSVRC_16_layers_fc_reduced.caffemodel放在/home/iscas/SSD/caffe-ssd/models/VGGNet文件夹下
将下载好的数据放在/home/iscas/SSD/caffe-ssd/data文件夹下
目前在/home/iscas/SSD/caffe-ssd文件夹下,
cd data
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
7.
到caffe-ssd目录下: cd ..
更改/home/iscas/SSD/caffe-ssd/data/VOC0712文件夹下create_list.sh中的root_dir=$HOME/SSD/caffe-ssd/data/VOCdevkit/
更改/home/iscas/SSD/caffe-ssd/data/VOC0712文件夹下create_dat.sh中的data_root_dir="$HOME/SSD/caffe-ssd/data/VOCdevkit"
然后执行:
./data/VOC0712/create_list.sh
执行:
./data/VOC0712/create_data.sh
报错:AtributeEerror:'module' object has no attribute 'LabelMap'
解决方案:参考https://blog.csdn.net/wei_guo_xd/article/details/73729472
或者参考:https://github.com/weiliu89/caffe/issues/4
重新配置了python的环境:
a. sudo gedit ~/.bashrc
b. export PYTHONPATH=/home/iscas/SSD/caffe-ssd/python
c. source ~/.bashrc
8.训练
python examples/ssd/ssd_pascal.py
报错:配置SSD-caffe测试时出现“Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal”解决
解决方案参考:https://blog.csdn.net/xunan003/article/details/78433383