論文閱讀 | Region Proposal by Guided Anchoring
相關鏈接
論文地址:https://arxiv.org/abs/1901.03278
概述
眾所周知,anchor策略是目標檢測領域的基石。很多目標檢測算法的高精度檢測都依賴於密集的anchor策略,也就是在空間域上以預設的尺度和寬高比做均勻采樣。但是,由於anchor策略產生大量冗余的anchor box,生成數目巨大的低質量負樣本,導致正負樣本嚴重失衡,而且還有IoU閾值設置、超參數設計困難等一系列問題。文章提出Guided Anchoring,基於語義特征指導anchor生成。主要思想是定位可能的目標中心點,然后根據中心點設置最優的anchor box。該方法聯合預測各個位置可能的目標的中心點以及相應的尺度和寬高比。相比於RPN baseline,使用Guided Anchoring方法在MS COCO數據集上的anchor減少了90%,而召回率則提升了9.1%。此外,將其用於Fast-RCNN、Faster R-CNN以及RetinaNet,檢測mAP分別提升了2.2%、2.7%和1.2%。
Guided Anchoring
Guided Anchoring框架如圖1所示:
預定義的anchor尺度和寬高比對於不同的數據集和算法需要單獨調整。怎樣生成稀疏且形狀自適應的anchor呢?注意到目標在圖像中的分布不均勻,而且目標的尺度也與圖像內容、場景的位置和幾何形狀密切相關。因此分兩步生成稀疏的子區域:首先識別可能包含對象的子區域,然后確定不同位置的尺度和寬高比。
將目標的位置和形狀用一個四元組表示:(x, y, w, h),其中(x, y)是目標中心坐標,w和h分別是寬和高。則其分布滿足:
從上面公式可以發現:給定一幅圖像I,目標可能只存在於確定的區域;目標的形狀與它的位置密切相關。
anchor產生模塊示意圖如圖1紅框內。該模塊包括位置和形狀預測兩個部分。首先根據一幅圖像I生成feature map FI。top部分,位置預測分支產生目標可能位置的概率圖,形狀預測分支預測位置相關的形狀。根據設定閾值選擇位置以及對應位置的最可能的形狀生成anchor。考慮到anchor形狀不固定,采用一個Feature Adaption模塊進行調整。
1.Anchor Location Prediction
anchor預測分支產生一個與feature map FI大小相同的概率圖,每個p(i, j | FI)對應圖像I的坐標((i + 0.5)s, (j + 0.5)s),其中s是feature map的步長。對基礎feature map先通過1*1卷積,然后逐元素Sigmoid轉換為概率值。然后根據閾值篩選,可以過濾掉90%的區域而保持相同的召回率。
2.Anchor Shape Prediction
給定一個feature map FI,預測每個位置的最優形狀(w, h),也就是與最近的groundtruth的bounding box的IoU最大的shape。考慮到w和h的取值范圍較大,所以先做如下轉化:
其中s是步長,σ是經驗尺度因子(文中取8)。可以將[0, 1000]壓縮至[-1, 1]。該分支輸出dw和dh。首先通過1*1卷積層產生兩個通道的map(包括dw和dh的值),然后經過逐元素轉換層實現w和h的轉化。
得益於任意形狀的anchor,所以對於寬高比誇張的目標也具有更好的效果(比如火車等)。
3.Anchor-Guided Feature Adaptation
由於每個位置的形狀不同,大的anchor對應較大感受野,小的anchor對應小的感受野。所以不能像之前基於anchor的方法那樣直接對feature map進行卷積來預測,而是要對feature map進行feature adaptation。作者利用變形卷積的思想,根據形狀對各個位置單獨進行轉換:
其中,fi是第i個位置的特征,(wi, hi)是對應的anchor形狀。NT通過3*3的變形卷積實現。首先通過形狀預測分支預測offset field,然后對帶偏移的原始feature map做變形卷積獲得adapted features。之后進一步做分類和bounding box回歸。
4.Training
采用多任務loss進行端到端的訓練,損失函數為:
(1)anchor location
利用groundtruth bounding box來指導label生成,1代表有效位置,0代表無效位置。中心附近的anchor應該較多,而遠離中心的anchor數目應該少一些。假定R(x, y, w, h)表示以(x, y)為中心,w和h分別為寬高的矩形區域。將groundtruth的bbox(xg, yg, wg, hg)映射到feature map的尺度得到(x'g, y'g, w'g, h'g)。
a.定義中心區域CR=R(x'g, y'g, σ1w', σ1h'),CR區域內的像素標記為正樣本;
b.定義ignore區域IR=R(x'g, y'g, σ2w', σ2h')\CR,該區域的像素標記為ignore;
c.其余區域標記為外部區域OR,該區域所有像素標記為負樣本。
考慮到基於FPN利用了多層feature,所以只有當feature map與目標的尺度范圍匹配時才標記為CR,而臨近層相同區域標記為IR,如圖2所示。文中使用Focal Loss來訓練定位分支。
(2)anchor shape
首先將anchor與groundtruth的bbox匹配,然后計算最佳寬和高(可以最大化IoU)。定義變化的anchor與gt bbox的IoU:
變化anchor:awh=(x0, y0, w, h)
groundtruth bbox:gt=(xg, yg, wg, hg)
其中IoUnormal是IoU的常規定義,w和h是變量。采用近似的方法,采樣一些可能的w和h。文中采樣了9組常見的w、h。實驗表明結果對sample的組數不敏感。文中采用有界IoU損失來最大化IoU。
作者使用Guided Anchoring策略來改進RPN(稱為GA-RPN)。圖3對比了RPN和GA-RPN產生的proposal的IoU分布:
很顯然,GA-RPN產生的正樣本數目更多,而且高IoU的proposal占的比例更大。訓練時相比於RPN,GA-RPN采用更高的閾值、使用更少的樣本(使用高質量proposal的前提是根據proposal的分布調整訓練樣本的分布)。
實驗
數據集:MS COCO 2017
backbone:ResNet-50+FPN
image scale:1333*800,σ1 = 0.2,σ2 = 0.5,λ1 = 1, λ2 = 0.1,batchsize:16
各個模塊的對照實驗(其中AR*表示每幅圖像*個proposal的平均召回率,ARS、ARM、ARL是在100 proposal計算的):
下圖顯示了滑窗法、GA以及gt產生的anchor的尺度和寬高比分布情況:
可見,GA方法產生的anchor分布更接近groundtruth。
總結
總的來講,文章貢獻主要有以下幾點:
提出了一種新的anchor策略,用於產生稀疏的任意形狀的anchor;
設計了基於anchor形狀的特征適應模塊來refine特征;
提出了一種改進模型性能的方案.