溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Faster R-CNN的四個模塊?分別是什么

發(fā)布時間:2021-12-08 15:30:54 來源:億速云 閱讀:246 作者:柒染 欄目:大數(shù)據(jù)

Faster R-CNN的四個模塊分別是什么,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

Faster R-CNN是R-CNN系列中第三個模型,經(jīng)歷了2013年Girshick提出的R-CNN、2015年Girshick提出的Fast R-CNN以及2015年Ren提出的Faster R-CNN。

Faster R-CNN是目標檢測中較早提出來的兩階段網(wǎng)絡(luò),其網(wǎng)絡(luò)架構(gòu)如下圖所示:

Faster R-CNN的四個模塊?分別是什么  

可以看出可以大體分為四個部分:

  1. Conv Layers 卷積神經(jīng)網(wǎng)絡(luò)用于提取特征,得到feature map。
  2. RPN網(wǎng)絡(luò),用于提取Region of Interests(RoI)。
  3. RoI pooling, 用于綜合RoI和feature map, 得到固定大小的resize后的feature。
  4. classifier, 用于分類RoI屬于哪個類別。
 

1. Conv Layers

在Conv Layers中,對輸入的圖片進行卷積和池化,用于提取圖片特征,最終希望得到的是feature map。在Faster R-CNN中,先將圖片Resize到固定尺寸,然后使用了VGG16中的13個卷積層、13個ReLU層、4個maxpooling層。(VGG16中進行了5次下采樣,這里舍棄了第四次下采樣后的部分,將剩下部分作為Conv Layer提取特征。)

與YOLOv3不同,F(xiàn)aster R-CNN下采樣后的分辨率為原始圖片分辨率的1/16(YOLOv3是變?yōu)樵瓉淼?/32)。feature map的分辨率要比YOLOv3的Backbone得到的分辨率要大,這也可以解釋為何Faster R-CNN在小目標上的檢測效果要優(yōu)于YOLOv3。

 

2. Region Proposal Network

簡稱RPN網(wǎng)絡(luò),用于推薦候選區(qū)域(Region of Interests),接受的輸入為原圖片經(jīng)過Conv Layer后得到的feature map。

Faster R-CNN的四個模塊?分別是什么    

RPN網(wǎng)絡(luò)將feature map作為輸入,然后用了一個3x3卷積將filter減半為512,然后進入兩個分支:

一個分支用于計算對應(yīng)anchor的foreground和background的概率,目標是foreground。

一個分支用于計算對應(yīng)anchor的Bounding box的偏移量,來獲得其目標的定位。

通過RPN網(wǎng)絡(luò),我們就得到了每個anchor是否含有目標和在含有目標情況下目標的位置信息。

對比RPN和YOLOv3:

都說YOLOv3借鑒了RPN,這里對比一下兩者:

RPN: 分兩個分支,一個分支預(yù)測目標框,一個分支預(yù)測前景或者背景。將兩個工作分開來做的,并且其中前景背景預(yù)測分支功能是判斷這個anchor是否含有目標,并不會對目標進行分類。另外就是anchor的設(shè)置是通過先驗得到的。

YOLOv3: 將整個問題當做回歸問題,直接就可以獲取目標類別和坐標。Anchor是通過IoU聚類得到的。

區(qū)別:Anchor的設(shè)置,Ground truth和Anchor的匹配細節(jié)不一樣。

聯(lián)系:兩個都是在最后的feature map(w/16,h/16或者w/32,h/32)上每個點都分配了多個anchor,然后進行匹配。雖然具體實現(xiàn)有較大的差距,但是這個想法有共同點。

 

3. ROI Pooling

這里看一個來自deepsense.ai提供的例子:

RoI Pooling輸入是feature map和RoIs:

假設(shè)feature map是如下內(nèi)容:

Faster R-CNN的四個模塊?分別是什么  

RPN提供的其中一個RoI為:左上角坐標(0,3),右下角坐標(7,8)

Faster R-CNN的四個模塊?分別是什么  

然后將RoI對應(yīng)到feature map上的部分切割為2x2大小的塊:

Faster R-CNN的四個模塊?分別是什么  

將每個塊做類似maxpooling的操作,得到以下結(jié)果:

Faster R-CNN的四個模塊?分別是什么  

以上就是ROI pooling的完整操作,想一想為何要這樣做

在RPN階段,我們得知了當前圖片是否有目標,在有目標情況下目標的位置?,F(xiàn)在唯一缺少的信息就是這個目標到底屬于哪個類別(通過RPN只能得知這個目標屬于前景,但并不能得到具體類別)。

如果想要得知這個目標屬于哪個類別,最簡單的想法就是將得到的框內(nèi)的圖片放入一個CNN進行分類,得到最終類別。這就涉及到最后一個模塊:classification

 

4. Classification

ROIPooling后得到的是大小一致的feature,然后分為兩個分支,靠下的一個分支去進行分類,上一個分支是用于Bounding box回歸。

分類這個分支很容易理解,用于計算到底屬于哪個類別。Bounding box回歸的分支用于調(diào)整RPN預(yù)測得到的Bounding box,讓回歸的結(jié)果更加精確。

看完上述內(nèi)容,你們掌握Faster R-CNN的四個模塊分別是什么的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI