Ross Girshick的團隊從R-CNN到Fast RCNN,再到Faster R-CNN,歷經三代,終於將目標檢測的全過程(候選區域生成,特徵提取,分類,位置精修)整合到了一個深度網路框架之內進行。

在之前的回答中,有介紹Fast RCNN在Region Proposal時比較耗費時間。這一點在Faster R-CNN得到了改進,Faster R-CNN可以簡單地看做「區域生成網路(Regio Proosal Network,RPN) + Fast RCNN」,把圖像一整張地輸入到卷積網路中進行特徵提取,利用提取出來用RPN代替Fast RCNN中的Selective Search方法,之後在作分類和回歸操作,真正里提供了「一條龍式服務」

Faster R-CNN著重解決了這個系統中的兩個問題:

1)如何設計區域生成網路RPN,快速生成候選區域;

3)如何讓區域生成網路RPN和Fast RCNN網路共享參數。

接下來簡單介紹一下Faster R-CNN的Region Proposal Networks的設計和訓練思想:

RPN網路的作用就是輸入一張圖像,輸出一批矩形候選區域,類似於之前FastRCNN中的Selective Search。其中anchor是RPN網路的核心,它的作用是給出一個基準窗大小,設置不同的倍數和長寬比得到不同大小的窗。在論文是實現代碼中k=9,即9種尺度的anchor,基準窗大小選為16,設置了0.5、1、2三種比例得到的,如下圖所示。

在訓練的RPN網路時,採取如下三個規則判定anchor內是否有目標:

1)假如某anchor與任一目標區域的IOU最大,則該anchor判定為有目標;2)假如某anchor與任一目標區域的IOU>0.7,則判定為有目標;

3)假如某anchor與任一目標區域的IOU<0.3,則判定為背景。

最後,作者採用交替訓練(Alternating training)階段卷積層特徵共享對網路進行聯合訓練:

1)訓練RPN網路,網路參數是用ImageNet預訓練模型載入的,微調後用於區域建議任務;

2)訓練Fast-RCNN網路,利用1)RPN網路生成的候選區域作為輸入,由Fast R-CNN訓練一個單獨的檢測網路,這個檢測網路同樣是由ImageNet預訓練的模型載入的。截止到目前,兩個網路還沒有進行共享參數,只是各自單獨訓練訓練;

3)我們用檢測網路初始化RPN訓練,此時固定共享的卷積層,也就是網路公共部分的參數,只更新RPN獨有層的參數,現在兩個網路已經共享卷積層;

4)保持共享的卷積層固定,用RPN的結果再次微調Fast-RCNN網路,固定網路公共部分的參數,只更新Fast-RCNN獨有部分的參數。兩個網路共享相同的卷積層,構成一個統一的網路。


Faster R-CNN的由來

R-CNN是Ross Girshick等在2013年底提出的(Rich feature hierarchies for accurate object detection and semantic segmentation,arXiv:1311.2524),R-CNN是Regions with CNN features(CNN特徵區域)的縮寫。R-CNN使用選擇性搜索(Selective Search)演算法建議可能的感興趣區域(regions of interest),並應用卷積神經網路來分類和調整這些區域。

2015年初,在R-CNN的基礎上,Ross Girshick進一步提出了Fast R-CNN(Fast R-CNN arXiv:1504.08083),採用了一些創新技術顯著提升了RNN的訓練和測試速度,以及精確度

2015年夏,Shaoqing Ren、Kaiming He、Ross Girshick、Jian Sun提出了Faster R-CNN(Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks,arXiv:1506.01497),和R-CNN、Fast R-CNN的區別在於,Faster R-CNN是完全可微的。

Faster R-CNN架構

下圖為Faster R-CNN的架構。

從下往上,我們可以看到,Faster R-CNN模型的輸入是一張圖像。使用卷積層提取圖像特徵,得到特徵映射。然後將特徵映射傳給區域建議網路(Region Proposal Network),由區域建議網路計算出可能的感興趣區域(建議),結合建議與特徵映射,所得傳給分類器——其中使用了感興趣區域池化(RoI Pooling)技術進行優化。

區域建議網路的架構如下圖。

上圖中藍色的為帶錨包圍盒(anchor box),簡單來說就是各種可能的不同形狀和大小的包圍盒。

至於感興趣區域池化,簡單來說,這是一種優化技術,通過共享耗時長久的運算提升模型速度。

最後,下圖直觀地展現了Fast R-CNN的效果。

Faster R-CNN(本回答中的圖片均取自Faster R-CNN 論文,arXiv:1506.01497)


推薦閱讀:
相关文章