論文閱讀筆記:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
本文主要包含如下內容:
博客
訓練代碼功能介紹
論文地址:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
主要思想
設計RPN網絡,利用CNN卷積操作後的特徵圖生成region proposals.代替了Selective Search
、EdgeBoxes
等方法,速度上提升明顯.
RPN網絡與檢測Fast R-CNN網絡共享卷基層,大幅度提高網絡的檢測速度.
網絡結構介紹
卷積網絡
用VGG16模型中的conv-5層網絡提取image的feature maps
,該特徵譜被共享後用於後續RPN層和全連接層.
RPN網絡
RPN是regional proposal networks
的縮寫,用於生成region proposals
。該層通過softmax判斷anchors屬於前景還是背景,再利用bounding box regression
修正anchors獲得精確的proposals(當然,proposals同時剔除太小和超出邊界的proposals),具體結構如下:
- conv feature map:在VGG的conv5_3後新添加的一個512@3x3的卷基層。
- k anchor boxes:在每個sliding window的點上的初始化的參考區域。每個sliding window的點上獲取的anchor boxes都一樣。只要知道sliding window的點的座標,就可以計算出每個anchor box的具體座標。faster-RCNN中k=9.
- intermediate layer:通過1×1的卷積獲得2k scores和4k cordinates。
- 2k scores:對於每個anchor,用了softmax layer的方式,會獲得兩個置信度。當然也可以用一維正例的置信度.
- 4k cordinates:每個窗口的座標。這個座標是通過anchor迴歸groundtruth的位置.
- 用softmax判定預測的anchors是前景還是背景,但在前後均接上了一個
reshape layer
是爲了便於softmax分類,例如:將[1,2*9,H,W]reshape成[1,2,9*H,W],在經過softmax之後再reshape爲[1,2*9,H,W]. - Proposal Layer:綜合所有的anchors變量,計算處精準的proposals,送入後續
ROI Pooling
層中.其中,前向傳播實現了將預測框切換爲圖像大小,刪除寬和高小於閾值的框,並將所有的proposals_scores
排序,獲取其中pre_nms_topN proposals
,隨後進行nms非極大值抑制(閾值爲0.7)並獲得after_nms_topN proposals
(top300). - ROI Pooling:其輸入shape爲:(N, W/16, H/16, channels),輸出shape爲:(num_rois, 7, 7, channels),對輸入的roi縮小16倍,這樣就可以用縮放後的roi來讀取圖片的roi區域,並對這些區域進行roi-pooling(max_pooling),提取對應區域的特徵.
Anchors
Anchors是一組大小固定的參考窗口:三種尺度{128^2,256^2,512^2}×三種長寬比{1:1,1:2,2:1},如下圖所示,表示RPN網絡中對特徵圖滑窗時每個滑窗位置所對應的原圖區域中9種可能的大小,相當於模板,對任意圖像任意滑窗位置都是這9中模板。繼而根據圖像大小計算滑窗中心點對應原圖區域的中心點,通過中心點和size就可以得到滑窗位置和原圖位置的映射關係,由此原圖位置並根據與Ground Truth重複率貼上正負標籤,讓RPN學習該Anchors是否有物體即可。
在RPN網絡中對特徵圖滑窗時,對滑窗位置中心進行多尺度多長寬比的採樣,並對多尺度多長寬比的anchor boxes區域進行迴歸和分類,利用Anchors金字塔就僅僅依賴於單一尺度的圖像和特徵圖和單一大小的卷積核,就可以解決多尺度多長寬比問題,這種對推薦區域採樣的模型不管是速度還是準確率都能取得很好的性能。另外兩種途徑:使用圖像金字塔,對伸縮到不同size的輸入圖像進行特徵提取;對輸入圖像採用不同size的濾波器分別進行卷積操作.
全連接網絡
通過全卷積層與softmax計算每個proposals具體屬於哪個類別,輸出類別概率向量,同時利用boundingbox regression
獲得每個proposals的位置偏移量bbox_pred,用於迴歸精確的目標檢測框.
Bounding Box Regression
損失函數LOSS:SmoothL1Loss
定義如下:
其中i爲索引,pi表示其爲目標的預測概率,pi*表示gt_box(正爲1,否則爲0)
ti和ti*分別表示預測框的位置和gt_box框的位置。Lreg如下:
bound-box regression
中各參數的計算方式爲: