1. 程式人生 > >SSD演算法理解及利用SSD訓練自己的資料

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