利用FPN構建Faster R-CNN檢測

FPN就是所謂的金字塔結構的檢測器,(Feature Pyramid Network)html

把FPN融合到Faster rcnn中可以很大程度增長檢測器對全圖信息的認知,網絡

在個人另外一篇博客中對多尺度融合有較爲詳細的介紹,https://www.cnblogs.com/ywheunji/p/11022674.htmlurl

步驟如圖所示:spa

1.先將圖像送入底層網絡中獲得一個feature map,能夠用resnet等 網絡.net

2.圖中的1,2,3層即爲預訓練網絡獲得的特徵,以後採起的操做是對於2層進行1*1的降維操做,而後與3層上採樣以後的結果進行相加,獲得5層,這就是FPN的操做。htm

3.對於6層是同樣的操做,而後對於獲得的4,5,6層(top-down網絡,fpn的核心)進行RPN操做獲得region proposal,以後與原始faster rcnn的操做同樣,經過3*3的卷積以後鏈接分類層和迴歸層。blog

4.獲得的結果進行roi pooling操做,即固定特徵的大小。get

5.最後,鏈接兩個1024層的全鏈接層,而後分兩個支路,鏈接最後對應的分類層和迴歸層博客

 

 

使用了更深網絡來構造特徵金字塔,能增長魯棒信息;除此以外,將低層特徵和高層特徵累加,是由於低層特徵能夠提供更加準確的位置信息,而屢次的降採樣和上採樣操做使得深層網絡的定位信息存在偏差,io

淺層的網絡更關注於細節(位置)信息,高層的網絡更關注於語義信息,而高層的語義信息可以幫助咱們準確的檢測出目標。所以咱們將其結合其起來使用,這樣咱們就構建了一個更深的特徵金字塔,融合了多層特徵信息,並在不一樣的特徵進行輸出。

0.淺層的網絡更關注於細節(位置)信息,高層的網絡更關注於語義信息

高層的語義信息可以幫助咱們準確的檢測出目標

1.融合深層特徵適合作複雜任務

圖像中存在不一樣尺寸的目標,而不一樣的目標具備不一樣的特徵,利用淺層的特徵就能夠將簡單的目標的區分開來;利用深層的特徵能夠將複雜的目標區分開來;這樣咱們就須要這樣的一個特徵金字塔來完成這件事。

圖中咱們在第4層輸出較大目標的檢測結果,在第5層輸出次大目標的檢測結果,

在第6層輸出較小目標的檢測結果。由於在大的feature map上進行操做,能夠得到更多關於小目標的有用信息(分辨率有關,第三條);

檢測也是同樣,咱們會在第4層輸出簡單的目標,第5層輸出較複雜的目標,第6層輸出複雜的目標。

2.下采樣倍數小的特徵感覺野小,適合小目標

另外在yolov3中對多尺度檢測的理解是,1/32大小的特徵圖下采樣倍數高,因此具備大的感覺野,適合檢測大目標的物體,1/8的特徵圖具備較小的感覺野,因此適合檢測小目標。

3.小尺度分辨率信息不足不適合小目標

對於小目標,小尺度feature map沒法提供必要的分辨率信息,因此還需結合大尺度的feature map

相關文章
相關標籤/搜索