參考博客:https://blog.csdn.net/xiao_lxl/article/details/79106837
1獲取源代碼:git clone https://github.com/weiliu89/caffe.git
2 進入目錄中 :cd caffe
3,git checkout ssd
主要參考 https://github.com/weiliu89/caffe/tree/ssd
獲取SSD的代碼,下載完成后有一個caffe文件夾
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
1
2
3
進入下載好的caffe目錄,復制配置文件
cd caffe
cp Makefile.config.example Makefile.config
1
2
編譯caffe
make all -j8 //-j16根據本機的處理器配置,16是16核處理器的意思
make pycaffe -j8
make test -j8
make runtest -j8(這一步不是必須的)
1
2
3
4
下載預訓練模型 鏈接:鏈接:https://pan.baidu.com/s/1o9c0GGU 密碼:fucx,將它放入caffe/models/VGGNet/目錄下
下載VOC2007和VOC2012數據集,放到/caffe/data下,並解壓
cd data
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
1
2
3
4
5
6
7
將圖片轉化為LMDB文件,用於訓練,在caffe目錄下
cd ..
cd caffe
./data/VOC0712/create_list.sh
./data/VOC0712/create_data.sh
1
2
3
4
訓練模型
在下載的caffe根目錄執行如下命令訓練,在examples/ssd下存在幾個.py文件,訓練的時間較長。
python examples/ssd/ssd_pascal.py
1
實驗效果
(1)在圖片測試集上測試
python examples/ssd/score_ssd_pascal.py
1
2)在視頻上測試
python examples/ssd/ssd_pascal_video.py
1
3)在攝像頭上測試
python examples/ssd/ssd_pascal_webcam.py
1
報錯問題解決以及填坑筆記:
1. 報錯:no module named caffe等錯誤
這是由於caffe的Python環境變量未配置好,可按照下面方法解決:
確保先重新make下pycaffe,然后 將python的路徑配置到環境變量中
make pycaffe -j8
gedit /etc/profile
gedit ~/.bashrc
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環境變量未配置好,可按照下面方法解決:gedit ~/.bashrc
加入 export PYTHONPATH=/SSD所在目錄/caffe/python
source ~/.bashrc
