SSD演算法理解及利用SSD訓練自己的資料
一. 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