【Faster RCNN源碼解讀/復現】Faster RCNN網絡總覽

寫在前面

博主是一名剛轉行CV不久的一枚小碩,大約半年前對目標檢測相關的幾個經典網絡(RCNN, Fast RCNN, Faster RCNN, YOLO, SSD)等有一些簡單的瞭解(聽說而已)。這學期轉行以來,準備從Faster RCNN着手,研讀論文,理解並努力復現源碼。經過大約一個月的努力,Faster RCNN已基本上覆現完成,借CSDN平臺,分享自己的一些理解和感悟,希望和大家一起進步。

網絡框圖

在讀完Faster RCNN論文之後,可以知道,Faster RCNN總體上可分爲三部分,如下圖所示,

  1. 用於提取圖像特徵,實現參數共享的多個卷積層;
  2. 用於得到Proposal(候選框)的RPN層,這也是Faster RCNN最經典的部分;
  3. 用於完成分類和邊界框迴歸的RoI Pooling層和分類層。

Faster RCNN結構圖
在實現網絡的過程中,必定會將這三部分進一步地劃分爲最小的功能單元。

對於提取特徵的卷積層,通常使用VGG、ResNet等預訓練模型,當前,也可使用ShuffleNet、Inception等實現,只需要在搭建出相應網絡的基本結構,下載預訓練模型並在源碼上做出相應的更改即可;

對於RPN層,又可分爲產生anchors的generate_anchors層,對anchors進行前景/背景分類和boungding box迴歸的rpn_anchor_target層,以及產生最終用於目標檢測的proposals的proposal_layer;

對於ROI_Pooling層,則需要將尺寸不一的proposals通過相關的Pooling技術,轉換爲同樣的尺寸,只有這樣,才能將這些proposals作爲一個batch輸入分類層;

對於分類層,不單單是分類的功能,要同時實現分類和bounding box迴歸的功能,通過兩個全連接層實現,完美地將分類任務和回顧任務相結合。

寫在後面

接下來一段時間,將會基於PyTorch源碼及自己復現源碼,對Faster RCNN各部分進行解析。
歡迎關注!

參考

  1. https://www.cnblogs.com/wangyong/p/8513563.html
  2. Faster R-CNN: Towards Real-Time Object
    Detection with Region Proposal Networks
  3. https://github.com/jwyang/faster-rcnn.pytorch
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章