&論文概述
獲取地址:https://arxiv.org/abs/1912.04260
代碼地址:https://github.com/open-mmlab/mmdetection
&總結與個人觀點
本文提出Side-Aware Boundary Localization(SABL)以取代傳統的bbox回歸。提取關注於邊界內容的邊緣感知特征用來定位。提出使用該特征的輕量級two-step bucketing方法以精確定位目標。同時引入重打分(rescore)機制,利用bucket的置信度來保留高質量的bbox。在各種目標檢測流程中,SABL均展現了一致且重大的性能提升。
本文通過對回歸方法的分析,觀察到更簡單精確回歸到邊界框的方法,設計的整體框架很精巧,思路很清晰,而且每個方法的提出都很明確,值得一觀。
&貢獻
- 使用Side-Aware Boundary Localization(SABL)取代之前的bbox regression分支,對bbox的每條邊分別定位,提高了定位的精度;
- 使用Bucketing scheme進行細粒度目標定位以及對分類進行rescore,降低高精度bbox的抑制率;
- 在COCO數據集中,在Faster R-CNN、RetinaNet以及Cascade R-CNN的基礎上替換回歸分支,最終分別提升了3.0、1.6以及0.9個點。
&擬解決的問題
問題:精確的定位需要對bbox的每條邊都精准地放置,然而,主流方法只關注於預測中心以及size,並不是完成這個任務最高效的方法,尤其是在anchor與目標間存在多種displacements時。
分析:bbox回歸用於將附近的候選區域與目標對齊。當前的回歸方法大多是使用對中心偏移以及尺度因子的預測,雖然高效但卻限制了整體檢測的性能。基於觀察:當標注目標的bbox時,使box的每條邊與目標邊界對齊相較於整體移動box以及修正size更簡便。
因此,提出使用對bbox的每條邊基於其周圍的上下文信息分別定位的SABL結構。
&框架及主要方法
1、 Main Structure
暫且不看每個部分的具體實現,上圖展示了當前模型的整體實現流程。可見,所有操作是在特征提取完成后進行的,對於提取出的RoI特征先計算分類得分,同時通過邊緣感知特征提取方法提取出具有邊緣感知的特征,然后使用Bucketing邊緣定位做初步粗略回歸,根據每個Bucketing的置信度作平均來對分類得分再次計算得到NMS score,然后通過特征對齊精煉預測邊界偏移,同樣將其整合到當前的NMS score中得到最終的得分。
2、 Side-Aware Feature Extraction
圖中給出的邊緣感知的特征提取方法相當明確:
1)將RoI特征經過2個3×3的卷積,然后分別用不同的1×1卷積得到Mx/My,分別表示X方向上的特征以及Y方向上的特征的映射,然后使用softmax方法分別沿Y/X方向進行正則化,再將對應特征乘回原先的特征中分別得到X/Y方向的特征圖(此處使用自注意力機制);
2)沿Y/X方向相加經過1×3/3×1卷積得到對應的1×k/k×1大小的1D特征圖Fx、Fy,經過以采樣因子為2進行解卷積上采樣后得到1×2k/2k×1大小的特征,分別表示水平和豎直方向;
3)經過分割分別獲得Fleft、Fright、Ftop、Fdown四邊的特征。
3、 Boundary Localization with Bucketing
在使用Bucketing做回歸的過程中使用了two-step bucketing操作:
1) 對於給與的候選框(Bleft、Bright、Btop、Bdown),先使用σ(σ>1)放大候選框以覆蓋整個目標。(不過即便放大了,也不一定就能覆蓋整個目標哎?)然后將候選區域分成2k個bucket,分別對應之前得到的4個邊界特征的位置,在粗定位階段,直接基於邊界感知的特征使用二分類器來預測當前目標的邊界是否在當前bucket中或距離最近;
2) 在精細定位階段,使用回歸器預測所選擇的bucket的中心線與ground-truth邊界的偏移量。
對於之前使用的粗定位,將距離邊界最近的bucket標記為1,其余標記為0,為了減少訓練中的二義性,在每條邊上,由於距離邊界第二近的bucket很難與positive的進行區分,因此將其視為ignore。然后在精確定位階段,偏移的預測應當在positive與ignore之間。
4、 Bucketing-Guided Rescoring
在粗定位時會對每個bucket預測一個置信度,而為了在NMS階段保留更多精確定位的bbox,使用這些置信度進行二次打分。使用4個邊界的bucket的平均置信與先前的多類標簽得分相乘得到NMS scores。
二次打分能夠保留有着高類別置信度以及精確定位的最好的box。
5、 Feature-Aligned Refinement( FAR )
直接多次級聯定位head能夠有效提高性能,但也引入了較大的計算開銷。本文直接復用通過SAFE提取出的邊緣感知特征以減少計算開銷。
對於每條邊的位置預測,通過對相應的side-aware feature進行線性插值(因為預測的偏移是小數,需要通過插值來獲得當前位置特征)能夠獲得與預測的位置對齊的特征,回歸器依賴於這些位置對齊的特征能夠獲得更精確的邊緣預測,此外,采用二分類以抑制低精度的bbox的NMS得分。
在proposals經過Boundary Localization with Bucketing定位邊界后,在這些邊界上FAR訓練兩個額外分支:回歸與二分類。對於每條邊,邊界與響應的ground truth的偏移小於對應的bucket的長/寬時,視為正樣本,否則為負樣本。在每條邊上回歸的值視為正樣本與ground-truth間的displacement。
6、 Application to Single-Stage Detector
Single-Stage Detector沒有proposal的提取操作,經過FPN的特征直接進入兩個分支預測,其他的地方與先前的步驟相似。
7、 Experiments
1) 對比實驗:在COCO test-dev數據集上與其他方法的對比。整體來說,在對速度方面影響不是太大的情況下,使用SABL的效果均提高了1-3個點。
2) 消融實驗:每個模塊的消融結果,SAFE(Side-Aware Feature Extraction)、BLB(Boundary Localization with Bucketing)、LGR(Bucketing-Guided Rescoring)、FAR(Feature-Aligned Refinement)。以及使用Ignore標記的消融,在FAR上的兩分支的消融。
3) 對比實驗:
卷積層的數量對Side-Aware Feature Extraction的影響。2D Conv表示在F前的3×3卷積層的數量,1D Conv表示在Fx與Fy前1×3和3×1卷積層的數量。實驗結果表明,如SAFE的結構圖所示,使用2個2D conv以及1個1D conv的效果能夠達到最佳。
將2D的RoI特征聚集到1D特征的不同方法的對比。實驗表明,使用注意力掩模方法的效果優於最大池化以及平均池化。
Side-Aware Feature Extraction模塊中特征大小的不同設置的比較。實驗表明,k的值為7時效果已經能夠達到較優的水准。
不同的定位方法的實驗對比,從實驗結果中可以看出,只使用Bucketing機制的效果與使用回歸分支的結果相差較大,再回歸分支上再加上Bucketing預測的效果略優於只使用回歸的方法。右圖表明使用Bucketing機制能夠有效較低候選區域與ground-truth邊界間displacement的均值以及多樣性。
不同的參數的設置實驗對比。
&思考與啟發
這種自注意力的使用可以考慮加入到FPN中,每個特征中都存在上下文信息、語義信息以及空間信息。(當前在做FPN模塊,之后需要重新研讀)