介紹
區域建議網路(RPN)將一個圖像(任意大小)作為輸入,輸出矩形目標建議框的集合,每個框有一個objectness得分。我們用全卷積網路對這個過程構建模型,本章會詳細描述。因為我們的最終目標是和Fast R-CNN目標檢測網路共享計算,所以假設這兩個網路共享一系列卷積層。在實驗中,我們詳細研究Zeiler和Fergus的模型(ZF),它有5個可共享的卷積層,以及Simonyan和Zisserman的模型(VGG),它有13個可共享的卷積層。
為了生成區域建議框,我們在最後一個共享的卷積層輸出的卷積特徵映射上滑動小網路,這個網路全連線到輸入卷積特徵映射的nxn的空間視窗上。每個滑動視窗映射到一個低維向量上(對於ZF是256-d,對於VGG是512-d,每個特徵映射的一個滑動視窗對應一個數值)。這個向量輸出給兩個同級的全連線的層——包圍盒回歸層(reg)和包圍盒分類層(cls)。本文中n=3,注意圖像的有效感受野很大(ZF是171像素,VGG是228像素)。
區域建議網路的構建
採用全卷積網路模型來構建區域建議網路,主要目的是為了便於和全卷積分割網路共享計算資源。實驗在 Zeiler 和 Fergus所提出的網路模型上做出修改,得到所需要的全卷積神經網路,即 ZF_FCN 網路。
區域建議框的產生同樣是一個卷積的過程。使用一個 n × n 的滑動視窗在共享卷積層末端的輸出特徵圖上進行卷積操作,每一個滑動視窗都將作為一個輸入被送入一個小型的網路中。該小型網路將傳入的特徵映射到一個 256 - d 的向量上並將這個向量傳輸給 2個同級的 1 × 1 卷積層。這 2 個卷積層分別為分類層(cls)和回歸層(reg) 。
滑動視窗的中心位置定義為錨點,通常每個滑動位置對應著 3種尺度和 3 種長寬比,這樣每個滑動位置都會有 k= 9 個錨點,每個滑動視窗產生 k個區域建議框。因此,回歸層會有 4k 個輸出(每個區域建議框的坐標包含 4個參數),分類層會有 2k 個輸出(每個區域建議框是否為目標的機率估計)。具體的區域建議網路如圖 1 所示。
損失函式
為了訓練RPN,我們給每個anchor分配一個二進制的標籤(是不是目標)。我們分配 正標籤給兩類anchor:
(i)與某個groundtruth(GT)包圍盒有最高的IoU(Intersection-over-Union,交集並集之比)重疊的anchor(也許不到0.7)。
(ii)與任意GT包圍盒有大於0.7的IoU交疊的anchor。注意到一個GT包圍盒可能分配正標籤給多個anchor。我們分配 負標籤給與所有GT包圍盒的IoU比率都低於0.3的anchor。非正非負的anchor對訓練目標沒有任何作用。
有了這些定義,我們遵循Fast R-CNN中的多任務損失,最小化目標函式。我們對一個圖像的損失函式定義為: