全新的目標(biāo)檢測范式Sparse R-CNN,。
本文主要介紹一下我們最近的一篇工作:
沿著目標(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://arxiv.org/abs/2011.12450
Code: https://github.com/PeizeSun/SparseR-CNN
1. Motivation
我們先簡單回顧一下目標(biāo)檢測領(lǐng)域中主流的兩大類方法。
第一大類是從非 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ù)測這些 candidates 到 gt 的 scaling/offest 和物體類別,。
第二大類是 dense-to-sparse detector,,例如,R-CNN 家族,。這類方法的特點(diǎn)是對一組 sparse 的 candidates 預(yù)測回歸和分類,,而這組 sparse 的 candidates 來自于 dense detector。
這兩類框架推動(dòng)了整個(gè)領(lǐng)域的學(xué)術(shù)研究和工業(yè)應(yīng)用,。目標(biāo)檢測領(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,,無需 nms 直接輸出最終的檢測結(jié)果。然而,,DETR 中每個(gè) object query 都和全局的特征圖做 attention 交互,,這本質(zhì)上也是 dense。而我們認(rèn)為,,sparse 的檢測框架應(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ā),,沒有 NMS 后處理,,整個(gè)網(wǎng)絡(luò)異常干凈和簡潔,可以看做是一個(gè)全新的檢測范式,。
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,,完全沒有 dense detector 中成千上萬的枚舉。這組 sparse 的 object candidates 作為 proposal boxes 用以提取 Region of Interest(RoI),,預(yù)測回歸和分類,。
這組學(xué)習(xí)到的 proposal boxes 可以理解為圖像中可能出現(xiàn)物體的位置的統(tǒng)計(jì)值,這樣 coarse 的表征提取出來的 RoI feature 顯然不足以精確定位和分類物體,。于是,,我們引入一種特征層面的 candidates,proposal features,,這也是一組可學(xué)習(xí)的參數(shù),,N*d,N 代表 object candidates 的個(gè)數(shù),,與 proposal boxes 一一對應(yīng),,d 代表 feature 的維度,一般為 256,。這組 proposal features 與 proposal boxes 提取出來的 RoI feature 做一對一的交互,,從而使得 RoI feature 的特征更有利于定位和分類物體。相比于原始的 2-fc Head,,我們的設(shè)計(jì)稱為 Dynamic Instance Interactive Head,。
Sparse R-CNN 的兩個(gè)顯著特點(diǎn)就是 sparse object candidates 和 sparse feature interaction,既沒有 dense 的成千上萬的 candidates,,也沒有 dense 的 global feature interaction,。Sparse R-CNN 可以看作是目標(biāo)檢測框架從 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 做比較(很多方法沒有報(bào)道 3x 的性能,所以沒有列出),。同時(shí),,我們也列出了同樣不需要 NMS 后處理的 DETR 和 Deformable DETR 的性能。Sparse R-CNN 在檢測精度,,推理時(shí)間和訓(xùn)練收斂速度都展現(xiàn)了相當(dāng)有競爭力的性能,。
5. Conclusion
R-CNN 和 Fast R-CNN 出現(xiàn)后的一段時(shí)期內(nèi),目標(biāo)檢測領(lǐng)域的一個(gè)重要研究方向是提出更高效的 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ā),。