【論文研讀】Faster-RCNN原理精讀

前言:

半年前有讀過對應的Faster-RCNN的論文,包括看過很多講解,隨着領域知識的不斷加深,對這一經典論文的理解也更加深度,重新讀關注更多細節問題,也獲得了不少新的知識,原始研讀文更關注論文本身的創新點,原研讀文鏈接【Faster-RCNN】,可作爲輔助參考。本博文則更關注完整流程內容細節方面的知識,希望能給大家啓發。
最近在研讀mask-rcnn,故而將faster-rcnn重新進行了細節上的閱讀,並書寫博文

mask-rcnn系列:
閱讀的代碼爲:mask-rcnn benchmark
【github地址】
0.代碼總覽:【地址】
1.骨架網絡【backbone.py及代碼入口】
2.RPN層【粗分割的rpn.py】
3.ROI_HEAD【實現各個分支】
4.其他輔助代碼雜會【其他】

完整流程概覽

在這裏插入圖片描述
這是一個faster-rcnn的簡單流程圖,在看mask-rcnn時重新對該論文進行一個認識。全內容分爲三個部分,(紅框標註)特徵提取部分,RPN(區域提議網路)部分,以及最後的分類和迴歸部分。

特徵提取部分

特徵提取通過基礎的網絡模型,最常用的是Resnet50,Resnet101。
輸入:原始圖片
輸出:通過滑動卷積的形式輸出對應的feature map(特徵圖)

RPN網絡模型:

在這裏插入圖片描述
作用:有兩個分支,分別爲是否爲前景物體的判斷,和候選框的粗迴歸。
通過一個3*3卷積在特徵圖上進行滑動,對應每個cell(中心點),生成對應的k個anchor box(候選框),以進行後面的候選框迴歸以及點操作。

該部分作爲全文創新點,最難搞懂,下面通過一定解釋進行說明

在這裏插入圖片描述
計算量爲哪些框含有物體(2k cls layer),含有物體的框偏移量有多少(4k reg layer)
這裏迴歸出來的不是原始的座標點(第一次爲achor給定的候選框,如右所示),而是原始座標點的偏移量(4k)

候選框生成

將生成的delta框的偏移量與anchor進行組合,生成原始的區域提議框,並進行如下操作:

  • 去除背景框
  • 去除分數低的框
  • NMS去除非極大值框
    然後生成對應ROI候選框,在特徵圖上進行尺度的統一化(ROIpooling操作)並進入到下一步RCNN的操作

在這裏插入圖片描述

分類和迴歸分支:

該部分來自RCNN,流程代碼基本一致。
在這裏插入圖片描述
圖源於mask-rcnn的操作,roialign應改爲roipoling操作,其餘基本一致
流程介紹如下:

  • 通過rpn生成的roi_box已經爲優質的候選區域框,於對應的feature map進行roipooling操作,
  • 將尺度歸一化的roi層進行特徵提取,全連接分類輸出三個變量,將概率和迴歸框的第二次偏移值進行處理
  • 首先確定對應框內最高概率的類別,並將它作爲分類結構,進而重新對迴歸框進行第三次修補,
  • 後處理階段:通過NMS,排序,刪除候選框

流程細節


這是我看過最完整並且細節展示最詳細的圖,
根據給出的步驟細節,說明如下:

  • 特徵提取網絡
  • 找出對應的候選框
  • 通過後處理,1.刪除全背景的候選框 2.有前景的候選框進行nms操作 3.取出得分較高的候選框,放回到特徵圖中
  • 通過映射的方式,將後處理後優質的ROI(候選區域)返回到特徵圖
  • 將各個優質候選框進行尺度統一的ROIpooling操作,再進行分類和迴歸
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章