目標檢測——文獻閱讀之Faster R-CNN

論文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
論文作者主頁:http://www.rossgirshick.info/
源碼:https://github.com/rbgirshick/py-faster-rcnn
參考:https://senitco.github.io/2017/09/02/faster-rcnn/ (推薦看原博客,寫的特別好,本篇博客主要用來記錄學習,如侵權,請聯繫我)
翻譯:http://noahsnail.com/2018/01/03/2018-01-03-Faster R-CNN論文翻譯——中英文對照/

1、模型概述

在這裏插入圖片描述

  • Conv Layer: 卷積層包括一系列卷積(Conv + Relu)和池化(Pooling)操作,用於提取圖像的特徵(feature maps),一般直接使用現有的經典網絡模型ZF或者VGG16,而且卷積層的權值參數爲RPN和Fast RCNN所共享,這也是能夠加快訓練過程、提升模型實時性的關鍵所在。
  • Region Proposal Network: RPN網絡用於生成區域候選框Proposal,基於網絡模型引入的多尺度Anchor,通過Softmax對anchors屬於目標(foreground)還是背景(background)進行分類判決,並使用Bounding Box Regression對anchors進行迴歸預測,獲取Proposal的精確位置,並用於後續的目標識別與檢測。
  • RoI Pooling: 綜合卷積層特徵feature maps和候選框proposal的信息,將propopal在輸入圖像中的座標映射到最後一層feature map(conv5-3)中,對feature map中的對應區域進行池化操作,得到固定大小(7×7)輸出的池化結果,並與後面的全連接層相連。
  • Classification and Regression: 全連接層後接兩個子連接層——分類層(cls)和迴歸層(reg),分類層用於判斷Proposal的類別,迴歸層則通過bounding box regression預測Proposal的準確位置。

下圖爲Faster R-CNN測試網絡結構(網絡模型文件爲faster_rcnn_test.pt),可以清楚地看到圖像在網絡中的前向計算過程。對於一幅任意大小P×QP×Q的圖像,首先縮放至固定大小M×NM×N(源碼中是要求長邊不超過1000,短邊不超過600),然後將縮放後的圖像輸入至採用VGG16模型的Conv Layer中,最後一個feature map爲conv5-3,特徵數(channels)爲512。RPN網絡在特徵圖conv5-3上執行3×3卷積操作,後接一個512維的全連接層,全連接層後接兩個子連接層,分別用於anchors的分類和迴歸,再通過計算篩選得到proposals。RoIs Pooling層則利用Proposal從feature maps中提取Proposal feature進行池化操作,送入後續的Fast R-CNN網絡做分類和迴歸。RPN網絡和Fast R-CNN網絡中均有分類和迴歸,但兩者有所不同,RPN中分類是判斷conv5-3中對應的anchors屬於目標和背景的概率(score),並通過迴歸獲取anchors的偏移和縮放尺度,根據目標得分值篩選用於後續檢測識別的Proposal;Fast R-CNN是對RPN網絡提取的Proposal做分類識別,並通過迴歸參數調整得到目標(Object)的精確位置。具體的訓練過程會在後面詳述。接下來會重點介紹RPN網絡和Fast R-CNN網絡這兩個模塊,包括RPN網絡中引入的Anchor機制、訓練數據的生成、分類和迴歸的損失函數(Loss Function)計算以及RoI Pooling等。
在這裏插入圖片描述

…還是查看原博客吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章