在Windows系統下,用faster-RCNN進行模型訓練
一、圖片標註
程式1:(實用性不高)
下載地址:
參考網址:
使用方法:
程式碼已經封裝成DLL,你只需要開啟專案,將影象路徑修改成你的即可。
(我用的VS為2013)。生成的txt內容為:影象名 標籤 x1 y1 x2 y2。(包圍框座標)
- 圖片顯示出來後,輸入法切換到英文;
- 在目標的左上角按下滑鼠左鍵,拉一個包圍框到目標右下角,然後鍵盤輸入標籤(一個字元)
- 繼續(2)操作,直到框完該張圖片上的目標;
- 按n進入下一張,esc退出。
注意:標籤只能輸入一個字元,你可以在生成的txt檔案(存放在圖片所在目錄下)中替換成你實際的標籤。
程式2(參考別人的程式,自己改編的)
參考網址:
每個txt內容如下圖所示(左上角和右下角座標,並且每個txt檔案以檔名命名):
二、將標註資訊轉成固定格式
生成結果如下圖所示:
# 序號
圖片名
目標個數
標籤 左上角橫座標 左上角縱座標 右下角橫座標 右下角縱座標 0/1(是否容易識別?)
注意點:1)必須第一行是# 序號,2)而且類別數必須從1開始(非0)
三、配置python環境(之前用caffenet跑mnist和分類的時候,不需要用fasterRCNN進行監測,所以之前不需要python)
要跑faster-RCNN需要下載此網址上的caffe(不然執行會出現問題)
1. 安裝Anaconda2(裝2.7 會避免很多問題)
2. 下載後,進入windows根目錄內,複製CommonSettings.props.example檔案,然後改名為CommonSettings.props,修改CommonSettings.props內容(幾個關鍵的地方)
前提:已經安裝了cuda8.0 、cuDNN v5、anaconda2 、matlab 2014b等
3. 修改屬性(所有專案都需要修改)
4. 編譯pycaffe
到此,所有預備工作都完成了!準備訓練模型!!
四、訓練模型
1. 修改各檔案(原始檔都在 ..\models\FRCNN\vgg16和 ..\examples\FRCNN\vgg16)
所需修改的檔案如下圖所示:
注意點:
train_val_pigDetect.prototxt 和 solver.prototxt 中不要有形如“C:\windows\system32\cmd.exe”這種絕對路徑,不然會出現 “Invalid escape sequence in string literal”錯誤
但是可以加 含’/’的相對路徑 (只要沒有’\’即可)
1)train_pigDetect.bat (通過此檔案可以知道需要另外哪些檔案,然後一個個追溯下去)
(這只是完成了第一部分,到時候訓練生成的caffemodel需要執行convert_model.py再進行轉換)
- convert_model.py 用原始檔即可
- vgg16_faster_rcnn_iter_70000.caffemodel 和 vgg16_faster_rcnn_final.caffemodel 是訓練完之後生成的 (70000是在solver.prototxt中設定的max_iter,可以自行更改)
2)solver.prototxt
(改了stepsize和max_iter)
- solver 檔案中的Iter_size
這個引數乘上你的train.prototxt中的batch size是你實際使用的batch size。 相當於讀取batchsize*itersize個影象才做一下gradient decent。 這個引數可以規避由於gpu不足而導致的batchsize的限制,因為你可以用多個iteration做到很大的batch,即使單次batch有限。
- solver 檔案中的average_loss
取多次foward的loss作平均,進行顯示輸出 (最終訓練結果好不好也主要看這個)
3)train_val_pigDetect.prototxt
需要更改的地方:
4)train_pigDetect.trainval (把本文“二、將標註資訊轉成固定格式”中的程式編譯生成的txt檔案內容拷貝過來即可)
5)pigDetect_config.json
需要修改的地方
(因為之前flip過了,所以這邊設定為0即可)
6)test_pigDetect.prototxt
需要修改的地方
2. 檢視訓練結果(看loss即可,會不斷減少)
五、轉化訓練生成的caffemodel
1. 修改 convert_model.py內容
(最後一個net_out_path引數是轉化後的caffemodel檔名)
2. 進入convert_model.py所在根目錄,按住shift鍵,右擊,選擇“在此處開啟命令視窗”,進入相應路徑下的命令視窗。
輸入 python(空格)路徑(convert_model.py路徑),回車後,出現如下圖所示的錯誤,即 import caffe出錯了。
原因:找不到caffe這個包,所以需要把caffe的包放到site-packages資料夾下。
解決方法:
把如下圖所示的caffe資料夾放入如下圖所示的site-packages資料夾下
3. 再次執行 python convert_model.py,出現如下圖所示資訊就說明成功轉換了!
在根目錄下也會自動多一個 3.caffemodel
六、測試專案,進行視訊監測
1. 把相應檔案放入專案所在根目錄
2. 修改程式碼相應內容
3. 編譯執行,即可成功監測!