拋棄Anchor box和NMS,目標(biāo)檢測新范式開源:Sparse R-CNN

極市導(dǎo)讀
?Sparse R-CNN拋棄了anchor boxes或者reference point等概念,沒有NMS后處理,整個網(wǎng)絡(luò)異常干凈和簡潔,可以看做是一個全新的檢測范式。本文詳細(xì)介紹了Sparse R-CNN這一框架的原理、設(shè)計原型以及表現(xiàn)。?>>就在明天,鄭哲東:從行人重識別到無人機(jī)定位,重識別領(lǐng)域最強(qiáng)技術(shù)分享!
本文主要介紹一下我們最近的一篇工作:
Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
沿著目標(biāo)檢測領(lǐng)域中Dense和Dense-to-Sparse的框架,Sparse R-CNN建立了一種徹底的Sparse框架, 脫離anchor box,reference point,Region Proposal Network(RPN)等概念,無需Non-Maximum Suppression(NMS)后處理, 在標(biāo)準(zhǔn)的COCO benchmark上使用ResNet-50 FPN單模型在標(biāo)準(zhǔn)3x training schedule達(dá)到了44.5 AP和 22 FPS。
Paper: https://msc.berkeley.edu/research/autonomous-vehicle/sparse_rcnn.pdf
Code: https://github.com/PeizeSun/SparseR-CNN
1. Motivation

我們先簡單回顧一下目標(biāo)檢測領(lǐng)域中主流的兩大類方法。
第一大類是從非Deep時代就被廣泛應(yīng)用的dense detector,例如DPM,YOLO,RetinaNet,F(xiàn)COS。在dense detector中, 大量的object candidates例如sliding-windows,anchor-boxes, reference-points等被提前預(yù)設(shè)在圖像網(wǎng)格或者特征圖網(wǎng)格上,然后直接預(yù)測這些candidates到gt的scaling/offest和物體類別。 第二大類是dense-to-sparse detector,例如,R-CNN家族。這類方法的特點(diǎn)是對一組sparse的candidates預(yù)測回歸和分類,而這組sparse的candidates來自于dense detector。
這兩類框架推動了整個領(lǐng)域的學(xué)術(shù)研究和工業(yè)應(yīng)用。目標(biāo)檢測領(lǐng)域看似已經(jīng)飽和,然而dense屬性的一些固有局限總讓人難以滿意:
NMS 后處理 many-to-one 正負(fù)樣本分配 prior candidates的設(shè)計
所以,一個很自然的思考方向就是:能不能設(shè)計一種徹底的sparse框架?最近,DETR給出了一種sparse的設(shè)計方案。candidates是一組sparse的learnable object queries,正負(fù)樣本分配是one-to-one的optimal bipartite matching,無需nms直接輸出最終的檢測結(jié)果。然而,DETR中每個object query都和全局的特征圖做attention交互,這本質(zhì)上也是dense。而我們認(rèn)為,sparse的檢測框架應(yīng)該體現(xiàn)在兩個方面:sparse candidates和sparse feature interaction。基于此,我們提出了Sparse R-CNN。
Sparse R-CNN拋棄了anchor boxes或者reference point等dense概念,直接從a sparse set of learnable proposals出發(fā),沒有NMS后處理,整個網(wǎng)絡(luò)異常干凈和簡潔,可以看做是一個全新的檢測范式。

2.Sparse R-CNN
Sparse R-CNN的object candidates是一組可學(xué)習(xí)的參數(shù),N*4,N代表object candidates的個數(shù),一般為100~300,4代表物體框的四個邊界。這組參數(shù)和整個網(wǎng)絡(luò)中的其他參數(shù)一起被訓(xùn)練優(yōu)化。That's it,完全沒有dense detector中成千上萬的枚舉。這組sparse的object candidates作為proposal boxes用以提取Region of Interest(RoI),預(yù)測回歸和分類。

這組學(xué)習(xí)到的proposal boxes可以理解為圖像中可能出現(xiàn)物體的位置的統(tǒng)計值,這樣coarse的表征提取出來的RoI feature顯然不足以精確定位和分類物體。于是,我們引入一種特征層面的candidates,proposal features,這也是一組可學(xué)習(xí)的參數(shù),N*d,N代表object candidates的個數(shù),與proposal boxes一一對應(yīng),d代表feature的維度,一般為256。這組proposal features與proposal boxes提取出來的RoI feature做一對一的交互,從而使得RoI feature的特征更有利于定位和分類物體。相比于原始的2-fc Head,我們的設(shè)計稱為Dynamic Instance Interactive Head.

Sparse R-CNN的兩個顯著特點(diǎn)就是sparse object candidates和sparse feature interaction,既沒有dense的成千上萬的candidates,也沒有dense的global feature interaction。Sparse R-CNN可以看作是目標(biāo)檢測框架從dense到dense-to-sparse到sparse的一個方向拓展。
3. Architecture Design
Sparse R-CNN的網(wǎng)絡(luò)設(shè)計原型是R-CNN家族。
Backbone是基于ResNet的FPN。 Head是一組iterative的Dynamic Instance Interactive Head,上一個head的output features和output boxes作為下一個head的proposal features和proposal boxes。Proposal features在與RoI features交互之前做self-attention。 訓(xùn)練的損失函數(shù)是基于optimal bipartite matching的set prediction loss。

從Faster R-CNN(40.2 AP)出發(fā),直接將RPN替換為a sparse set of learnable proposal boxes,AP降到18.5;引入iterative結(jié)構(gòu)提升AP到32.2;引入dynamic instance interaction最終提升到42.3 AP。
4. Performance
我們沿用了Detectron2的3x training schedule,因此將Sparse R-CNN和Detectorn2中的detectors做比較(很多方法沒有報道3x的性能,所以沒有列出)。同時,我們也列出了同樣不需要NMS后處理的DETR和Deformable DETR的性能。Sparse R-CNN在檢測精度,推理時間和訓(xùn)練收斂速度都展現(xiàn)了相當(dāng)有競爭力的性能。

5. Conclusion
R-CNN和Fast R-CNN出現(xiàn)后的一段時期內(nèi),目標(biāo)檢測領(lǐng)域的一個重要研究方向是提出更高效的region proposal generator。Faster R-CNN和RPN作為其中的佼佼者展現(xiàn)出廣泛而持續(xù)的影響力。Sparse R-CNN首次展示了簡單的一組可學(xué)習(xí)的參數(shù)作為proposal boxes即可達(dá)到comparable的性能。我們希望我們的工作能夠帶給大家一些關(guān)于end-to-end object detection的啟發(fā)。
推薦閱讀
~感恩福利回饋~
關(guān)注極市平臺,回復(fù)關(guān)鍵詞“感恩福利”,領(lǐng)取進(jìn)階學(xué)習(xí)禮包!
截止時間:11月26日24:00


