caffe-ssd編譯、訓練、測試全過程(最後有彩蛋)
大家好,終於把SSD整通了,現在我把整個過程搭建給你們講講。
caffe_ssd多目標檢查效果還是非常好的,線上測試,FPS在20左右。我的訓練的還是官方的資料集,其實我們可通過做自己的資料集得到預測模型也是可以的。
一、SSD編譯
https://github.com/weiliu89/caffe.git
git checkout ssd
跟編譯caffe 是一樣的,進入到caffe的根目錄裡:
cp Makefile.config.example Makefile.config
進入Makefile.config,設定如下,我們需要使用USE_CUDNN(前提你安裝了CUDNN,整個詳細的參考,
mkdir build
cd build
cmake ..
make all -j
make install
make runtest
make pycaffe
二、下載資料集
1、預訓練模型下載:
連結: https://pan.baidu.com/s/1nuGojSP 密碼: v9bg
2、下載VOC2007、VOC2012資料集
官網下載太慢了,我已經上傳到了百度雲
連結: https://pan.baidu.com/s/1mhVjuSo 密碼: 8nm7
在home主目錄下
mkdir data
cd data
把剛才下載的資料解壓到data目錄下
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
(安裝我整個順序解壓就可以了)
三、生成LMDA檔案(自己製作資料也需要這樣的)
我這裡把pycaffe的環境加入~/.bashrc檔案中
export PYTHONPATH=$PYTHONPATH:..../caffe/python
source ~/.bashrc
進入到caffe 的根目錄下
./data/VOC0712/create_list.sh ./data/VOC0712/create_data.sh
四、訓練資料集及線上演示
1、訓練資料集
開啟caffe/examples/ssd/ssd_pascal.py,看到gpus='0,1,2,3' 該成gpus='0'
具體怎麼看自己gpu id?
nvidia-smi
修改下 batch_size=1和 test_batch_size=1 (視訊記憶體太小了,所以把網格設小點)
注意:迭代數增加,loss應該是逐漸減小,不然就容易發散了。
大概迭代到10000次,會test下,把test_batch_size設定為1,不然會出現視訊記憶體溢位的情況
2、測試下:(我把訓練好的模型進行測試,迭代了240000次)
python examples/ssd/score_ssd_pascal.py
(主要測試下,訓練的結果怎麼樣,0.9左右)
其實一般的情況在0.7左右
3、線上演示
見鬼了,在右邊的空著的椅子出現個person:0.67 ,嚇到我了
視訊演示:
單張圖片演示:我們可以使用:jupyter notebook
好了,下期給大家講講怎麼製作自己的資料集,進行訓練模型。
------------------------------2017.6.14 QAQ----------------------------------------
在生成lmda檔案的時候,出現python一些錯誤?
終端執行:
sudo apt-get install python-skimage python-protobuf