目標(biāo)檢測(cè)是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)基礎(chǔ)研究主題,它利用每張圖像的預(yù)定義類標(biāo)簽來預(yù)測(cè)邊界框。大多數(shù)主流檢測(cè)器使用的是基于錨的標(biāo)簽分配和非極大值抑制(NMS)等手動(dòng)設(shè)計(jì)。近來,很多研究者提出方法通過距離感知和基于分布的標(biāo)簽分類來消除預(yù)定義的錨框集。盡管這些方法取得了顯著的進(jìn)展和優(yōu)越的性能,但拋棄手動(dòng)設(shè)計(jì)的 NMS 后處理可能阻礙完全的端到端訓(xùn)練。
基于這些問題,研究人員相繼提出了 Learnable NMS、Soft NMS 和 CenterNet 等,它們能夠提升重復(fù)刪除效果,但依然無法提供有效的端到端訓(xùn)練策略。之后,F(xiàn)acebook AI 研究者提出的 DETR 將 Transformer 用到了目標(biāo)檢測(cè)任務(wù)中,還取得了可以媲美 Faster R-CNN 的效果。但是,DETR 的訓(xùn)練時(shí)間卻大大延長,在小目標(biāo)上的性能也相對(duì)較低。
所以,在本文中,來自曠視科技和西安交通大學(xué)的研究者提出了一個(gè)新穎問題:全卷積網(wǎng)絡(luò)是否可以實(shí)現(xiàn)良好的端到端目標(biāo)檢測(cè)效果?并從標(biāo)簽分配和網(wǎng)絡(luò)架構(gòu)兩個(gè)方面回答并驗(yàn)證了這一問題。
論文鏈接:https://arxiv.org/pdf/2012.03544.pdf
項(xiàng)目代碼:https://github.com/Megvii-BaseDetection/DeFCN (內(nèi)部代碼遷移 + 審查中,后續(xù)放出)
具體而言,研究者基于 FCOS,首次在 dense prediction 上利用全卷積結(jié)構(gòu)做到 E2E,即無 NMS 后處理。研究者首先分析了常見的 dense prediction 方法(如 RetinaNet、FCOS、ATSS 等),并且認(rèn)為 one-to-many 的 label assignment 是依賴 NMS 的關(guān)鍵。受到 DETR 的啟發(fā),研究者設(shè)計(jì)了一種 prediction-aware one-to-one assignment 方法。
此外,研究者還提出了 3D Max Filtering 以增強(qiáng) feature 在 local 區(qū)域的表征能力,并提出用 one-to-many auxiliary loss 加速收斂。本文方法基本不修改模型結(jié)構(gòu),不需要更長的訓(xùn)練時(shí)間,可以基于現(xiàn)有 dense prediction 方法平滑過渡。本文方法在無 NMS 的情況下,在 COCO 數(shù)據(jù)集上達(dá)到了與有 NMS 的 FCOS 相當(dāng)?shù)男阅?;在代表了密集場景?CrowdHuman 數(shù)據(jù)集上,本文方法的 recall 超越了依賴 NMS 方法的理論上限。
整體方法流程如下圖所示:
One-to-many vs. one-to-one
自 anchor-free 方法出現(xiàn)以來,NMS 作為網(wǎng)絡(luò)中最后一個(gè) heuristic 環(huán)節(jié),一直是實(shí)現(xiàn) E2E dense prediction 的最大阻礙。但其實(shí)可以發(fā)現(xiàn),從 RPN、SSD、RetinaNet 等開始,大家一直遵循著這樣一個(gè)流程:先對(duì)每個(gè)目標(biāo)生成多個(gè)預(yù)測(cè)(one-to-many),再將多個(gè)預(yù)測(cè)去重(many-to-one)。所以,如果不對(duì)前一步 label assignment 動(dòng)刀,就必須要保留去重的環(huán)節(jié),即便去重的方法不是 NMS,也會(huì)是 NMS 的替代物(如 RelationNet,如 CenterNet 的 max pooling)。
那直接做 one-to-one assignment 的方法是否存在呢?其實(shí)是有的。上古時(shí)代有一個(gè)方法叫 MultiBox,對(duì)每個(gè)目標(biāo)和每個(gè)預(yù)測(cè)做了 bipartite matching,DETR 其實(shí)就是將該方法的網(wǎng)絡(luò)換成了 Transformer。此外還有一個(gè)大家熟知的方法:YOLO,YOLO 也是對(duì)每個(gè)目標(biāo)只匹配一個(gè) grid[1] ,只不過它是采用中心點(diǎn)做的匹配,而且有 ignore 區(qū)域。
Prediction-aware one-to-one
于是接下來的問題就是,在 dense prediction 上能不能只依賴 one-to-one label assignment,比較完美地去掉 NMS?研究者首先基于去掉 centerness 分支的 FCOS,統(tǒng)一網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方法,用 Focal Loss + GIoU Loss,做了如下分析實(shí)驗(yàn):
研究者設(shè)計(jì)了兩種 hand-crafted one-to-one assignment 方法,分別模仿 RetinaNet(基于 anchor box)和 FCOS(基于 center 點(diǎn)),盡可能做最小改動(dòng),發(fā)現(xiàn)已經(jīng)可以將有無 NMS 的 mAP 差距縮小到 4 個(gè)點(diǎn)以內(nèi)。
但研究者認(rèn)為手工設(shè)計(jì)的 label assignment 規(guī)則會(huì)較大地影響 one-to-one 的性能,比方說 center 規(guī)則對(duì)于一個(gè)偏心的物體就不夠友好,而且在這種情況下 one-to-one 規(guī)則會(huì)比 one-to-many 規(guī)則的魯棒性更差。所以認(rèn)為規(guī)則應(yīng)該是 prediction-aware 的。研究者首先嘗試了 DETR 的思路,直接采用 loss 做 bipartite matching 的 cost[2] ,發(fā)現(xiàn)無論是絕對(duì)性能還是有無 NMS 的差距,都得到了進(jìn)一步的改善。
但他們知道,loss 和 metrics 往往并不一致,它常常要為優(yōu)化問題做一些妥協(xié)(比如做一些加權(quán)等等)。也就是說,loss 并不一定是 bipartite matching 的最佳 cost。因而研究者提出了一個(gè)非常簡單的 cost:
看起來稍微有點(diǎn)復(fù)雜,但其實(shí)就是用網(wǎng)絡(luò)輸出的 prob 代表分類,網(wǎng)絡(luò)輸出和 gt 的 IoU 代表回歸,做了加權(quán)幾何平均,再加一個(gè)類似于 inside gt box 的空間先驗(yàn)。加權(quán)幾何平均和空間先驗(yàn)在后面都分別做了 ablation。
這就是研究者提出的 POTO 策略,它進(jìn)一步地提升了無 NMS 下的性能,也側(cè)面驗(yàn)證了 loss 并不一定是最好的 cost[3]。但從 Table 1 中也發(fā)現(xiàn)了,POTO 的性能依舊不能匹敵 one-to-many+NMS 組合。研究者認(rèn)為問題出在兩個(gè)方面:
one-to-one 需要網(wǎng)絡(luò)輸出的 feature 非常 sharp,這對(duì) CNN 提出了較嚴(yán)苛的要求(這也是 Transformer 的優(yōu)勢(shì));
one-to-many 帶來了更強(qiáng)的監(jiān)督和更快的收斂速度。
于是分別用 3D Max Filtering 和 one-to-many auxiliary loss 緩解如上問題。
3D Max Filtering
如 Figure 3 所示,這個(gè)模塊只采用了卷積、插值、max pooling 3d,速度非??欤膊恍枰獙?cuda kernel。
One-to-many auxiliary loss
針對(duì)第二點(diǎn)監(jiān)督不夠強(qiáng)、收斂速度慢,研究者依舊采用 one-to-many assignment 設(shè)計(jì)了 auxiliary loss 做監(jiān)督,該 loss 只包含分類 loss,沒有回歸 loss。assignment 本身沒什么可說的,appendix 的實(shí)驗(yàn)也表明多種做法都可以 work。這里想提醒大家的是注意看 Figure 2 的乘法,它是 auxiliary loss 可以 work 的關(guān)鍵。在乘法前的一路加上 one-to-many auxiliary loss,乘法后是 one-to-one 的常規(guī) loss。由于 1*0=0,1*1=1,所以只需要大致保證 one-to-one assignment 的正樣本在 one-to-many 中依然是正樣本即可。
實(shí)驗(yàn)
最主要的實(shí)驗(yàn)結(jié)果已經(jīng)在 Table 1 中呈現(xiàn)了,此外還有一些 ablation 實(shí)驗(yàn)。
這里 highlight 幾點(diǎn):
α越低,分類權(quán)重越大,有無 NMS 的差距越小,但絕對(duì)性能也會(huì)降低 [4];α太高也不好,后續(xù)所有實(shí)驗(yàn)用α=0.8;
在α合理的情況下,空間先驗(yàn)不是必須的,但空間先驗(yàn)?zāi)軌蛟谄ヅ溥^程中幫助排除不好的區(qū)域,提升絕對(duì)性能;研究者在 COCO 實(shí)驗(yàn)中采用 center sampling radius=1.5,在 CrowdHuman 實(shí)驗(yàn)中采用 inside gt box[5];
加權(quán)幾何平均數(shù)(Mul)[6]比加權(quán)算術(shù)平均數(shù)(Add)[7]更好。
去掉 NMS 的最大收益其實(shí)是 crowd 場景,這在 COCO 上并不能很好地體現(xiàn)出來。所以又在 CrowdHuman 上做了實(shí)驗(yàn)如下:
請(qǐng)注意 CrowdHuman 的 ground-truth 做 NMS threshold=0.6,只有 95.1% 的 Recall,這也是 NMS 方法的理論上限。而本文方法沒有采用 NMS,于是輕易超越了這一上限。
研究者還做了其它一些實(shí)驗(yàn)和分析,歡迎看原文。
可視化
經(jīng)過以上改進(jìn),研究者成功把 one-to-one 的性能提升到了與 one-to-many+NMS 方法 comparable 的水平。此外還可視化了 score map,可以發(fā)現(xiàn) FCN 是有能力學(xué)出非常 sharp 的表示的,這也是很讓研究者驚奇的一點(diǎn)。
結(jié)果圖中比較明顯的改善出現(xiàn)在多峰 case 上。比如兩個(gè)物體有一定的 overlap(但又沒有特別重合),這個(gè)時(shí)候 one-to-many+NMS 方法經(jīng)常出現(xiàn)的情況是,除了兩個(gè)物體分別出了一個(gè)框之外,在兩個(gè)物體中間也出了一個(gè)框,這個(gè)框與前兩個(gè)框的 IoU 不足以達(dá)到 NMS threshold,但置信度又比較高。這類典型的多峰問題在 POTO 中得到了較大的緩解。
Others
有些人可能比較關(guān)心訓(xùn)練時(shí)間,因?yàn)闈撘庾R(shí)里在 dense prediction 上做 bipartite matching 應(yīng)該是很慢的。然而實(shí)際上依賴于 scipy 對(duì) linear_sum_assignment 的優(yōu)化,實(shí)際訓(xùn)練時(shí)間僅僅下降了 10% 左右。
如果對(duì)這一時(shí)間依然敏感,可以用 topk(k=1)代替 bipartite matching;在 dense prediction 里 top1 實(shí)際上是 bipartite matching 的近似解 [8] 。相似地,k》1 的情況對(duì)應(yīng)了 one-to-many 的一種新做法,研究者也對(duì)此做了一些工作,后續(xù)可能會(huì)放出來。
責(zé)任編輯:PSY
-
檢測(cè)
+關(guān)注
關(guān)注
5文章
4492瀏覽量
91521 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1698瀏覽量
46017 -
全卷積網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
7瀏覽量
2029
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論