Faster R-CNN利用新的網絡結構來訓練


前言

最近利用Faster R-CNN訓練數據,使用ZF模型,效果無法有效提高。就想嘗試對ZF的網絡結構進行改造,記錄下具體操作。

一、更改網絡,訓練初始化模型

這里為了方便,我們假設更換的網絡名為LeNet。

首先,需要先訓練在Faster R-CNN中用來初始化網絡的模型:LeNet.caffemodel。

這里比較簡單,直接用完整的LeNet去訓練一部分數據(VOC2007,VOC2012均可),數據初始大小resize為224*224,即可得到初始化網絡的模型。

二、在Faster R-CNN中更相關內容(Faster R-CNN是基於matlab)

1.文件夾"experiments":

(1)添加文件script_faster_rcnn_VOC2007_LeNet.m(內容同script_faster_rcnn_VOC2007_ZF.m,將文件中的ZF替換為LeNet)。

(2)子文件夾"+Model"添加文件LeNet_for_Faster_RCNN_VOC2007.m(內容同ZF_for_Faster_RCNN_VOC2007.m,將文件中的ZF替換為LeNet)

(3)子文件夾"models"中內容也需要更換,具體改動見下面"文件夾"models"中內容修改和添加"

2.文件夾"fetch_data"中:

(1)添加文件fetch_model_LeNet.m(內容同fetch_model_ZF.m,將ZF替換為LeNet)

3.文件夾"functions":

(1)子文件夾"rpn"中proposal_train.m部分內容修改:

 

同理 proposal_test.m。

(2) 子文件夾"fast_rcnn"中fast_rcnn_train.m文件修改如同(1)。

4.文件夾"models":

選取子文件夾"rpn_prototxts"為例

(1)添加文件夾"LeNet",將文件夾"ZF"中的所有文件都拷貝過來,然后對每個文件進行修改:

  train_val.prototxt:將主體網絡ZF替換為LeNet,然后對文件里的參數作出更改,如下圖。

 

  test.prototxt:將主體網絡ZF替換為LeNet即可,並修改網絡名稱為LeNet。

  solver_xxxx.prototxt:

 

(2)添加文件夾"LeNet_fc6",將文件夾"ZF_fc6"中的所有文件都拷貝過來,然后對每個文件進行修改,修改方式如上。

  對於子文件夾"fast_rcnn_prototxts"來說,添加和修改方式如上述(1)(2)一致。

三、總結

做完上述工作,即可順利的利用自己的網絡來進行Faster R-CNN的訓練了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM