Abstract
- 提出了一個region-based, fully convolutional的網絡來準確高效的進行物體檢測。
- 不同於Faster R-CNN,本論文的region-based detector是完全卷積化的,幾乎一張圖像上所有的計算都是共享的。
- 爲了實現這一目標,我們提出position-sensitive score maps,以解決在圖像分類的平移不變性(translation-invariance)和物體檢測中的平移可變性(translation-variance)之間的困境。
Introduction
- 最近流行的用於目標檢測的深度學習框架依據RoI層的不同可以分爲兩大subnetworks:
- 一類是共享的、fully convolutional的subnetwork。
- 另一類是RoI-wise的subnetwork,不共享計算。
- 在圖像分類網絡中,一個convolutional subnetwork會以一個sptial pooling layer更隨着幾個fully-connected layer最爲結尾,所以圖像分類中的sptial pooling layer自然轉化爲目標檢測中的RoI pooling layer。
- ResNet和GoogleLeNets都被設計成fully convolutional的。
- 在ResNet論文中,Faster R-CNN中的RoI pooling layer被不自然的插入到兩個卷積層集之間,帶來了準確率的提升,但是速度由於unshared per-RoI計算降低。
- 假設圖像分類網絡中更深層的卷積層對translation不敏感。
- 爲了將translation variance結合到FCN中,我們通過使用一組專用卷積層作爲FCN輸出來構造一組位置敏感得分圖(position-sensitive score maps)。每一個得分圖將相對於相對空間位置(例如,“在對象的左邊”)的位置信息進行編碼。在這個FCN之上,我們附加一個位置敏感的RoI池層(position-sensitive RoI pooling layer),從這些得分圖中獲取信息,沒有跟隨的重量(卷積/ fc)層。
Our approach
本論文的方法參考與R-CNN,也是使用two-stage的目標檢測策略。
- region proposal
- region classification
雖然不依賴於region proposal的目標檢測方法確實存在,但是region-based system依舊在幾個基準上保持領先的準確性。
Overall architecture of R-FCN:
用RPN來提出candidate RoIs,然後這些RoIs被應用到score maps,在RPN和R-FCN之間共享特徵。
最後卷積層爲每個類別產生一組
k2 個position-sensitive score maps,因此具有帶有C個對象類別(背景爲+1)的k2(C+1) 通道的輸出層。每一個category有一個
k2 的score mapRPN以一個position-sensitive RoI pooling layer結束,該層聚合最後卷積層的輸出併產生每個RoI的分數。我們的position-sensitive RoI pooling layer進行選擇性合併,each of the k × k bin aggregates responses from only one score map out of the bank of k × k score maps。利用端到端訓練,這個RoI層管理最後的卷積層以學習專門的position-sensitive score maps。
Backbone architecture
- 本論文R-FCN基於ResNet-101。
- ResNet-101具有100個卷積層,後面是global average pooling和一個1000-class的fc層。我們移去了average pooling layer and the fc layer,僅使用convolutional layer來計算feature maps。
- 我們使用ResNet-101,在ImageNet上進行預訓練,ResNet-101中的最後一個卷積塊是2048-d,並且我們附加隨機初始化的1024-d 1×1卷積層以減小尺寸。然後,我們應用
k2(C+1) 通道卷積層來生成分數圖,如下所述。
Position-sensitive score maps & Position-sensitive RoI pooling.
- 爲了將位置信息顯式編碼到每個RoI中,我們將RoI矩形劃分爲k x k個bins。
- 構造最後的卷積層爲每個類別產生的
k2 個分數圖。 - 利用average pooling。
- bounding boxes regression。
Training
OHEM: online hard example mining
loss function:
在前向傳播中:每張圖片N個proposals。我們計算所有N個proposal的loss,排序,選擇最高的B個RoIs。然後在選中的proposal上進行反向傳播。
decay:0.0005
momentum:0.9
single-scale training。
B=128
lr = 0.001 ~20k, 0.0001 ~ 10k
同Faster R-CNN一趟,使用4步alternating training,在訓練RPN和訓練R-FCN之間。
Inference
- 爲公平期間,在300個RoIs上進行評估,結果之後用NMS進行處理,IoU閾值0.3
À trous and stride
- 將ResNet-10的有效stride從32減爲16像素,提高了score map的分辨率。
- Algorithme à trous