全新的目標(biāo)檢測(cè)范式Sparse R-CNN。
本文主要介紹一下我們最近的一篇工作:
沿著目標(biāo)檢測(cè)領(lǐng)域中 Dense 和 Dense-to-Sparse 的框架,Sparse R-CNN 建立了一種徹底的 Sparse 框架, 脫離 anchor box,reference point,Region Proposal Network(RPN) 等概念,無(wú)需 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://arxiv.org/abs/2011.12450
Code: https://github.com/PeizeSun/SparseR-CNN
1. Motivation
我們先簡(jiǎn)單回顧一下目標(biāo)檢測(cè)領(lǐng)域中主流的兩大類(lèi)方法。
第一大類(lèi)是從非 Deep 時(shí)代就被廣泛應(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ù)測(cè)這些 candidates 到 gt 的 scaling/offest 和物體類(lèi)別。
第二大類(lèi)是 dense-to-sparse detector,例如,R-CNN 家族。這類(lèi)方法的特點(diǎn)是對(duì)一組 sparse 的 candidates 預(yù)測(cè)回歸和分類(lèi),而這組 sparse 的 candidates 來(lái)自于 dense detector。
這兩類(lèi)框架推動(dòng)了整個(gè)領(lǐng)域的學(xué)術(shù)研究和工業(yè)應(yīng)用。目標(biāo)檢測(cè)領(lǐng)域看似已經(jīng)飽和,然而 dense 屬性的一些固有局限總讓人難以滿意:
NMS 后處理
many-to-one 正負(fù)樣本分配
prior candidates 的設(shè)計(jì)
所以,一個(gè)很自然的思考方向就是:能不能設(shè)計(jì)一種徹底的 sparse 框架?最近,DETR 給出了一種 sparse 的設(shè)計(jì)方案。candidates 是一組 sparse 的 learnable object queries,正負(fù)樣本分配是 one-to-one 的 optimal bipartite matching,無(wú)需 nms 直接輸出最終的檢測(cè)結(jié)果。然而,DETR 中每個(gè) object query 都和全局的特征圖做 attention 交互,這本質(zhì)上也是 dense。而我們認(rèn)為,sparse 的檢測(cè)框架應(yīng)該體現(xiàn)在兩個(gè)方面:sparse candidates 和 sparse feature interaction。基于此,我們提出了 Sparse R-CNN。
Sparse R-CNN 拋棄了 anchor boxes 或者 reference point 等 dense 概念,直接從 a sparse set of learnable proposals 出發(fā),沒(méi)有 NMS 后處理,整個(gè)網(wǎng)絡(luò)異常干凈和簡(jiǎn)潔,可以看做是一個(gè)全新的檢測(cè)范式。
2.Sparse R-CNN
Sparse R-CNN 的 object candidates 是一組可學(xué)習(xí)的參數(shù),N*4,N 代表 object candidates 的個(gè)數(shù),一般為 100~300,4 代表物體框的四個(gè)邊界。這組參數(shù)和整個(gè)網(wǎng)絡(luò)中的其他參數(shù)一起被訓(xùn)練優(yōu)化。That's it,完全沒(méi)有 dense detector 中成千上萬(wàn)的枚舉。這組 sparse 的 object candidates 作為 proposal boxes 用以提取 Region of Interest(RoI),預(yù)測(cè)回歸和分類(lèi)。
這組學(xué)習(xí)到的 proposal boxes 可以理解為圖像中可能出現(xiàn)物體的位置的統(tǒng)計(jì)值,這樣 coarse 的表征提取出來(lái)的 RoI feature 顯然不足以精確定位和分類(lèi)物體。于是,我們引入一種特征層面的 candidates,proposal features,這也是一組可學(xué)習(xí)的參數(shù),N*d,N 代表 object candidates 的個(gè)數(shù),與 proposal boxes 一一對(duì)應(yīng),d 代表 feature 的維度,一般為 256。這組 proposal features 與 proposal boxes 提取出來(lái)的 RoI feature 做一對(duì)一的交互,從而使得 RoI feature 的特征更有利于定位和分類(lèi)物體。相比于原始的 2-fc Head,我們的設(shè)計(jì)稱為 Dynamic Instance Interactive Head。
Sparse R-CNN 的兩個(gè)顯著特點(diǎn)就是 sparse object candidates 和 sparse feature interaction,既沒(méi)有 dense 的成千上萬(wàn)的 candidates,也沒(méi)有 dense 的 global feature interaction。Sparse R-CNN 可以看作是目標(biāo)檢測(cè)框架從 dense 到 dense-to-sparse 到 sparse 的一個(gè)方向拓展。
3. Architecture Design
Sparse R-CNN 的網(wǎng)絡(luò)設(shè)計(jì)原型是 R-CNN 家族。
Backbone 是基于 ResNet 的 FPN。
Head 是一組 iterative 的 Dynamic Instance Interactive Head,上一個(gè) head 的 output features 和 output boxes 作為下一個(gè) 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 做比較(很多方法沒(méi)有報(bào)道 3x 的性能,所以沒(méi)有列出)。同時(shí),我們也列出了同樣不需要 NMS 后處理的 DETR 和 Deformable DETR 的性能。Sparse R-CNN 在檢測(cè)精度,推理時(shí)間和訓(xùn)練收斂速度都展現(xiàn)了相當(dāng)有競(jìng)爭(zhēng)力的性能。
5. Conclusion
R-CNN 和 Fast R-CNN 出現(xiàn)后的一段時(shí)期內(nèi),目標(biāo)檢測(cè)領(lǐng)域的一個(gè)重要研究方向是提出更高效的 region proposal generator。Faster R-CNN 和 RPN 作為其中的佼佼者展現(xiàn)出廣泛而持續(xù)的影響力。Sparse R-CNN 首次展示了簡(jiǎn)單的一組可學(xué)習(xí)的參數(shù)作為 proposal boxes 即可達(dá)到 comparable 的性能。我們希望我們的工作能夠帶給大家一些關(guān)于 end-to-end object detection 的啟發(fā)。