目標檢測中的FPN+RPN

在聊Feature Pyramid Networks(FPN)和Region Proposal Networks(RPN)之間先熟悉一下Faster R-CNN的背景。
Faster RCNN分爲四個工做:算法

  • Conv Layers。用幾組基礎的conv+relu+maxpooling層提取圖像的feature map。
  • Region Proposal Networks。RPN網絡用於生成region proposals。該層經過softmax判斷anchors屬於positive或者negative,再利用bounding box regression修正anchors得到精確的proposals。
  • Roi Pooling。該層收集輸入的feature maps和proposals,綜合這些信息後提取proposal feature maps,送入後續全鏈接層斷定目標類別。
  • Classification。利用proposal feature maps計算proposal的類別,同時再次bounding box regression得到檢測框最終的精確位置。


one stage算法如yolo系列相比,Faster RCNN作爲典型的two stage算法最大的區別就在於其先經過RPN找到proposal,在對proposa分類,經歷了兩個網絡。網絡

RPN

RPN網絡的任務是找到proposals輸入:feature map。輸出:proposal。
整體流程:生成anchors -> softmax分類器提取positvie anchors -> bbox reg迴歸positive anchors -> Proposal Layer生成proposals
image.pngjsp

1.softmax斷定positive與negative

在feature map上,設置了密密麻麻的候選Anchor。而後用cnn去判斷哪些Anchor是裏面有目標的positive anchor,哪些是沒目標的negative anchor。因此,RPN作的只是個二分類!
性能

2.對proposals進行bounding box regression

圖中紅框爲positive anchors,綠框爲GT。anchor和GT的梯度能夠有dx, dy, dw, dh四個變換表示,bounding box regression經過線性迴歸學習到這個四個梯度,使anchor不斷逼近GT,從而得到更精確的proposal。
學習

FPN

特徵金字塔(Feature Pyramid Networks)是目前用於目標檢測、語義分割、行爲識別等方面比較重要的一個部分,對於提升模型性能具備很是好的表現。spa

不一樣大小的目標都通過了相同的降採樣比例後會出現較大的語義代溝,最多見的表現就是小目標檢測精度比較低。特徵金字塔具備在不一樣尺度下有不一樣分辨率的特色,不一樣大小的目標均可以在相應的尺度下擁有合適的特徵表示,經過融合多尺度信息,在不一樣尺度下對不一樣大小的目標進行預測,從而很好地提高了模型的性能。FPN輸入image,輸出多尺度的feature map。rem

特徵金字塔的兩種構建方式get

  • 經過屢次降採樣生成不一樣分辨率的層構成,這種方式應用比較廣,比較常見的應用有SSD, FPN, YOLO_v3, ...此外還有不少。
    image.png
  • 經過多條具備不一樣空洞率的空洞卷積的支路來構建。目前這方面的應用有ASPP, RFP等。
    image.png
    上圖分別是FPN和ASPP的構建方式。這是兩種基礎的特徵金字塔,根本目的都是爲了更好的融合信息生成更好的feature map。以FPN在Faster RCNN裏的應用爲例,FPN產生的每個尺度的feature map都要送進RPN作一次proposal的提取。ASPP將多個支路進行concate,輸出single feature map。
    以後學者對特徵金字塔進行多方面的改進,這裏不作一一贅述。it

    Reference

    1.FPN: https://arxiv.org/abs/1612.03...
    2.Faster R-CNN: https://ieeexplore.ieee.org/s...
    3.https://zhuanlan.zhihu.com/p/...io

相關文章
相關標籤/搜索