Faster R-CNN
轉載自:
http://blog.csdn.net/cv_family_z/article/details/46864473
摘要:SPPNet和Fast R-CNN降低了網絡學習特征的時間,SS由于需耗時1~2s,EdgeBoxes
耗時約0.2s,提取proposal的方法成為檢測的瓶頸。本文提出了Region Proposal Networks(RPNs)實現實時提取proposals,它能與檢測網絡共享全圖像卷積特征。RPNs是一個能夠預測某位置上的目標bbox和objectness的全卷積網絡。對于VGG-16網絡,檢測系統在GPU上的速度為5fps。VOC2007的mAP為73.2%,每幅圖像大約300個proposals。
靈感:基于區域的檢測使用的卷積特征圖,如FRCN,同樣可以用來生成proposals。在這些卷積層之后,作者通過增加兩個卷積層構建了RPNs,一個將卷積圖編碼為低維(256d)向量,另外一個在每個卷積圖的位置上生成一個objectness score和k個proposals的回歸bbox,k=9。
RPNs網絡
RPNs將圖像作為輸入,輸出帶有objectness score的bbox。使用一個小的網絡在最后一個卷積層輸出的卷積特征圖上產生區域proposals,這個小網絡與輸入的特征圖以n*n的窗口進行全連接,每個滑動窗之后映射到一個低維向量(ZF5-256d,VGG-512d),之后將向量送入兩個全連接的子層:一個bbox回歸層和一個bbox分類層。網絡的結構如下圖所示:
平移不變的錨點
每一個滑動窗滑過的位置有k個proposals,cls子層輸出每個proposal的object\non-object的2k個scores,reg子層輸出對應坐標的4k個節點。k個proposals根據k個錨點進行參數化,每個錨點是對應尺度和長寬比的中心,文中使用3個尺度,3個長寬比,得到9個錨點。如果特征圖大小為W×H,則共有WHk個錨點。
Proposals學習的損失函數
按照以下規則對錨點分配二值類別標記。正樣本標記:(1)與groundtruth的IoU最高的錨點,(2)與任意groundtruth IoU>0.7的錨點,某個groundtruth有可能對應幾個正錨點。負樣本:與groundtruth的IoU<0.3的錨點。其余的錨點不在訓練使用的范圍內。使用FRCN的multi-task loss最小化目標函數,某個錨點box的損失函數為:
式中pi 是錨點i為物體的預測概率,Lcls 是而分類object/non-object的softmax loss。
優化
RPN是一個全卷積網絡,可使用bp及SGD訓練,使用FRCN中的image-centric進行訓練,為了避免樣本偏斜,每幅圖采樣256個樣本計算loss,正負樣本為1:1。
Region proposal與目標檢測共享卷積特征
使用交替優化學習共享特征的4步訓練法:
1)訓練RPN,使用ImageNet初訓練的網絡進行end-to-end的微調;
2)使用FRCN及RPN生成的proposal訓練一個檢測網絡,該步未共享特征;
3)使用檢測網絡初始化RPNs訓練,固定共享的卷積層只微調為RPN新增的層;
4)固定共享層,微調FRCN的全連接層
實現細節
使用單尺度圖像訓練RPNs和FRCN,縮放圖像使得短邊為600像素。對于每個錨點,三個尺度對應的box面積分別為1282,2562 和5122,3個長寬比分別為1:1,1:2,2:1,學習到的平均proposal大小如下表所示:
對于1000×600 的輸入圖像,約有20k個錨點,如果忽略cross-boundary的錨點,約有6k個用來訓練。檢測時,基于cls score使用NMS將proposal壓縮至2k個,之后用top-N個proposal來檢測。
實驗結果
使用SS,EB,RBN生成proposal的實驗結果及ablation的實驗結果如下表所示:
ablation實驗結果表明共享卷積特征mAP能提升1.2%,主要是在共享的第三步使用了微調的檢測特征來微調RPN。
每一步的運行時間如下表所示
總結
以上是生活随笔為你收集整理的Faster R-CNN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息检索的评价指标(Precision,
- 下一篇: CNN应用之基于R-CNN的物体检测-C