1. 程式人生 > >Caffe上用SSD訓練和測試自己的數據

Caffe上用SSD訓練和測試自己的數據

輸出 makefile b數 text play cal 上下 lba san

學習caffe第一天,用SSD上上手。

我的根目錄$caffe_root為/home/gpu/ljy/caffe

一、運行SSD示例代碼

1.到https://github.com/weiliu89/caffe.git下載caffe-ssd代碼,是一個caffe文件夾

2.從已經配置好的caffe目錄下拷貝一個Makefile.config放到$caffe_root下

3.在$caffe_root下打開命令行終端,輸入以下命令

make -j8
make py
make test -j8
make runtest -j8
編譯完成
4.下載VGG_ILSVRC_16_layers_fc_reduced.caffemodel預訓練模型,放到$caffe_root/models/VGG下。(沒有VGG文件夾就建一個)
下載數據集VOCtest_06_Nov-2007.tar等三個壓縮包放在$caffe_root/data下,並依此(依官網解壓的次)
解壓
5.修改
./data/VOC0712/create_list.sh裏面的路徑為自己的路徑,修改./data/VOC0712/create_data.sh,本文如下圖所示:(VOC0712文件夾可能沒有,那就從網上下一個)
技術分享

技術分享

6.命令行切換到$caffe_root並執行上面兩個腳本()直接命令行輸入就是執行
7.訓練,命令行輸入下面:
python examples/ssd/ssd_pascal.py
或者下載訓練好的模型
8.測試
python examples/ssd/score_ssd_pascal.py
這個要先改裏面的gpu個數,輸出是分數
python examples/ssd/plot_detections.py
輸出是是視頻的標註...

二、訓練並測試自己的數據

1.生成訓練和測試數據

我們自己的數據基本是jpeg或者其他圖片格式的,而caffe輸入的一般是LMDB的數據,所以我們要進行轉換。我們轉換的方法是

A.將圖像用工具進行標註(工具這裏先不介紹),得到txt標註文件

B.將txt文件和圖片轉換成VOC格式(用腳本)

C.將VOC格式轉換為LMDB格式,利用SSD示例代碼提供的轉換腳本。

 (1) 在 $caffe_root/data/VOCdevkit目錄下創建ljy_test目錄,該目錄中存放自己轉換完成的VOC數據集;
(2) $CAFFE_ROOT/examples目錄下創建ljy_test目錄;
(3) $CAFFE_ROOT/data目錄下創建ljy_test目錄,同時將data/VOC0712下的create_list.sh,create_data.sh,labelmap_voc.prototxt
這三個文件copy到ljy_test目錄下,分別重命名為create_list_ljy_test.sh,create_data_ljy_test.sh, labelmap_ljy_test.prototxt
(4) 對上面新生成的兩個create文件進行修改,主要修改是將VOC0712相關的信息替換成ljy_test
修改後的兩個文件分別如下:
技術分享

技術分享
然後修改
labelmap_indoor.prototxt,將該文件中的類別修改成和自己的數據集相匹配,註意需要保留一個label 0 , background類別

完成上面步驟的修改後,可以開始LMDB數據數據的制作,在$CAFFE_ROOT目錄下分別運行:

  ./data/ljy_test/create_list_indoor.sh

  ./data/ljy_test/create_data_indoor.sh

  命令執行完畢後,可以在$CAFFE_ROOT/examples/ljy_test目錄下查看轉換完成的LMDB數據數據。

2.訓練

3.測試

未完待續...

Caffe上用SSD訓練和測試自己的數據