1. 程式人生 > >在Windows系統下,用faster-RCNN進行模型訓練

在Windows系統下,用faster-RCNN進行模型訓練

一、圖片標註

程式1:(實用性不高)

下載地址:
參考網址:
使用方法:

程式碼已經封裝成DLL,你只需要開啟專案,將影象路徑修改成你的即可
(我用的VS為2013)。生成的txt內容為:影象名 標籤 x1 y1 x2 y2。(包圍框座標)

  1. 圖片顯示出來後,輸入法切換到英文;
  2. 在目標的左上角按下滑鼠左鍵,拉一個包圍框到目標右下角,然後鍵盤輸入標籤(一個字元)
  3. 繼續(2)操作,直到框完該張圖片上的目標;
  4. 按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. 編譯執行,即可成功監測!