Faster-RCNN理解

1、Faster-RCNN基本結構html

image

該網絡結構大體分爲三個部分:卷積層獲得高位圖像特徵feature maps、Region Proposal Network獲得候選邊框、classifier識別出物體及獲得準確bounding box。網絡

2、feature maps函數

最後一層卷積層輸出。.net

3、RPN3d

一、RPN(Region Proposal Networks)htm

image

feature maps再以3x3的卷積核進行卷積獲得256xHxW的高維特徵圖,每一個高維像素點對應原圖9個anchor boxes(長寬比3種狀況,boxes大小也有3種狀況),共有WH*9 個anchors。接着將256xHxW的高維特徵圖一方面用18通道輸出的1x1的卷積核將對應的anchor boxs進行前景背景分類,另外一方面用36通道輸出的1x1卷積覈對斷定爲前景的anchor進座標修正。blog

訓練前景背景分類的時候,須要獲取每一個anchor的標籤,當anchor box與ground truth的IOU在0.3如下,斷定爲背景,當anchor box與ground truth的IOU在0.7以上,斷定爲前景,其餘狀況不用於訓練。在訓練anchor屬於前景與背景的時候,是在一張圖中,隨機抽取了128個前景anchor與128個背景anchor。採用SoftmaxWithLoss進行訓練。get

訓練方框迴歸的時候,博客

804917-20170316173931166-2076981304

也須要獲取每一個anchor的標籤,即每一個anchor到ground truth的Gx,Gy,Gw,Gh。訓練時只要訓練斷定爲前景的anchor就行了,採用SmoothL1loss進行訓練,具體能夠描述爲:it

20180120110847681

總的損失函數爲:

image

在這裏λ被設置爲10,Ncls爲256(前景背景分類的正負樣本分別爲128),Nreg爲2400(通常feature map的寬高爲60x40)。這樣設置的話,RPN的兩部分loss值能保持平衡。

二、NMS

獲得斷定爲前景的anchor後,會進行一次非極大值抑制(Non-Maximum Suppression,NMS)去除重疊的proposal。NMS原理參考:https://www.cnblogs.com/makefile/p/nms.html

4、classifier

一、ROI pooling

對於每一個RoI而言,須要從共享卷積層上摘取對應的特徵,而且送入全鏈接層進行分類。所以,RoI Pooling主要作了兩件事,第一件是爲每一個RoI選取對應的特徵,第二件事是爲了知足全鏈接層的輸入需求,將每一個RoI對應的特徵的維度轉化成某個定值。例如將feature maps按水平和豎直方向六等分,再用最大池化轉換,獲得寬高爲6x6。

二、分類與邊框修正

將每一個ROI輸入進行分類及邊框修正。分類這時要識別具體物體了,共分爲C+1類(算上背景)。訓練邊框修正,一樣使用SmoothL1loss損失函數,整體損失函數以下,其中r取1:

20180120205040998

5、參考:

實例分割模型Mask R-CNN詳解:從R-CNN,Fast R-CNN,Faster R-CNN再到Mask R-CNN - jiongnima的博客 - CSDN博客  http://www.javashuo.com/article/p-wfvgjziv-eh.html

相關文章
相關標籤/搜索