主要參考 https://github.com/weiliu89/caffe/tree/ssd 擷取SSD的代碼,下載完成後有一個caffe檔案夾
git clone https://github.com/weiliu89/caffe.gitcd caffegit checkout ssd
進入下載好的caffe目錄,複製設定檔
cd caffecp Makefile.config.example Makefile.config
編譯caffe
make all -j8 //-j16根據原生處理器配置,16是16核處理器的意思make pycaffe -j8make test -j8make runtest -j8(這一步不是必須的)
下載預訓練模型 連結:連結:https://pan.baidu.com/s/1o9c0GGU 密碼:fucx,將它放入caffe/models/VGGNet/目錄下
下載VOC2007和VOC2012資料集,放到/caffe/data下,並解壓
cd datawget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tarwget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tarwget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tartar -xvf VOCtrainval_11-May-2012.tartar -xvf VOCtrainval_06-Nov-2007.tartar -xvf VOCtest_06-Nov-2007.tar
將圖片轉化為LMDB檔案,用於訓練,在caffe目錄下
cd ..cd caffe./data/VOC0712/create_list.sh ./data/VOC0712/create_data.sh
訓練模型
在下載的caffe根目錄執行如下命令訓練,在examples/ssd下存在幾個.py檔案,訓練的時間較長。
python examples/ssd/ssd_pascal.py
實驗效果
(1)在圖片測試集上測試
python examples/ssd/score_ssd_pascal.py
2)在視頻上測試
python examples/ssd/ssd_pascal_video.py
3)在網路攝影機上測試
python examples/ssd/ssd_pascal_webcam.py
報錯問題解決以及填坑筆記:
1. 報錯:no module named caffe等錯誤
這是由於caffe的Python環境變數未配置好,可按照下面方法解決:
確保先重新make下pycaffe,然後 將python的路徑配置到環境變數中
make pycaffe -j8
vim ~/.bashrc
加入 export PYTHONPATH=/SSD所在目錄/caffe/python
source ~/.bashrc
2. 配置SSD-caffe測試時出現“Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal”解決
運行 python examples/ssd/ssd_pascal.py 時報錯
解決方案:這是由於GPU數量不匹配造成的,如果訓練自己的資料,那麼我們只需要將solver.prototxt檔案中的device_id項改為自己的GPU塊數,一塊就是0,兩塊就是1,以此類推。
但是SSD配置時的例子是將訓練語句整合成一個python檔案ssd_pascal.py,所以需要改此代碼。相關配置訓練方法請參看轉載博文:http://blog.csdn.net/xunan003/article/details/78427446
解決方案:將ssd_pascal.py檔案中第332行gpus = “0,1,2,3”的GPU選擇改為gpus = “0”,後面的1,2,3都刪掉即可。再次訓練即可。
當然,由於博主只有一塊GPU且電腦運行記憶體有限,還需要將ssd_pascal.py檔案中的337行batch_size = 32和338行accum_batch_size = 32都改小一倍,即更改批量大小,不然會出現“Check failed: error == cudaSuccess (2 vs. 0) invalid …”的錯誤。
3. 配置SSD-caffe出現“ AttributeError: ‘module’ object has no attribute ‘LabelMap’”解決
這是由於caffe的Python環境變數未配置好,可按照下面方法解決:
vim ~/.bashrc
加入 export PYTHONPATH=/SSD所在目錄/caffe/python
source ~/.bashrc