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è)全新的檢測范式。
1 簡(jiǎn)要
目前目標檢測成熟的算法都是基于Dense prior(密集的先驗,比如anchors、reference points),但密集的先驗存在很多問(wèn)題:1)會(huì )檢測出很多相似的結果,需要后處理(比如NMS)來(lái)過(guò)濾;2)many-to-one label assignment 問(wèn)題(作者描述為 many-to-one 正負樣本分配),猜測意思是我們在設置pred和gt時(shí),一般不是一對一的關(guān)系,可能是有多個(gè)preds,看看哪個(gè)與gt更符合;3)檢測結果與先驗的關(guān)系非常密切(anchors的數量、大小,reference points的密級程度、proposal生成的數量)。
所以,有研究者提出了稀疏RCNN(Sparse R-CNN),一種圖像中目標檢測的純稀疏方法?,F有的目標檢測工作很大程度上依賴(lài)于密集的候選目標,如所有H×W的圖像特征圖網(wǎng)格上預定義的k個(gè)anchor boxes。
然而,在新提出的方法中,提供了一套固定的稀疏的學(xué)習候選目標,總長(cháng)度N,給目標檢測頭進(jìn)行分類(lèi)和定位。通過(guò)消除H*W*k(多達數十萬(wàn))手工設計的候選目標到N(例如100)可學(xué)習的建議,Sparse R-CNN完全避免了所有與候選目標的設計和多對一的標簽分配相關(guān)的工作。更重要的是,最終的預測是直接輸出的,而沒(méi)有非極大抑制的后處理。SparseR-CNN證明了準確性、運行時(shí)和訓練收斂性能,與具有挑戰性的COCO數據集上建立的檢測器基線(xiàn)相當,例如,在標準3×訓練計劃中實(shí)現45.0AP,并使用ResNet-50FPN模型以22fps的速度運行。
作者是希望新的框架能夠激發(fā)人們重新思考目標檢測器中密集先驗的慣例。
2 背景
不同目標檢測pipelines的比較。(a)Dense,HWk候選目標枚舉在所有的圖像網(wǎng)格上,例如。RetinaNet;(b)Dense-to-Sparse,它們從密集的HWk候選目標中選擇一小組N個(gè)候選目標,然后通過(guò)池化操作提取相應區域內的圖像特征,如Faster R-CNN;(c)研究者提出的Sparse R-CNN,直接提供了一小組N個(gè)學(xué)習的候選目標,這里N遠小于HWk。
DenseNet
是CVPR2017的oral,非常厲害。文章提出的DenseNet(Dense Convolutional Network)主要還是和ResNet及Inception網(wǎng)絡(luò )做對比,思想上有借鑒,但卻是全新的結構,網(wǎng)絡(luò )結構并不復雜,卻非常有效!眾所周知,最近一兩年卷積神經(jīng)網(wǎng)絡(luò )提高效果的方向,要么深(比如ResNet,解決了網(wǎng)絡(luò )深時(shí)候的梯度消失問(wèn)題)要么寬(比如GoogleNet的Inception),而作者則是從feature入手,通過(guò)對feature的極致利用達到更好的效果和更少的參數。主要優(yōu)化:
減輕了vanishing-gradient(梯度消失)
加強了feature的傳遞
更有效地利用了feature
一定程度上較少了參數數量
在深度學(xué)習網(wǎng)絡(luò )中,隨著(zhù)網(wǎng)絡(luò )深度的加深,梯度消失問(wèn)題會(huì )愈加明顯,目前很多論文都針對這個(gè)問(wèn)題提出了解決方案,比如ResNet,Highway Networks,Stochastic depth,FractalNets等,盡管這些算法的網(wǎng)絡(luò )結構有差別,但是核心都在于:create short paths from early layers to later layers。那么作者是怎么做呢?延續這個(gè)思路,那就是在保證網(wǎng)絡(luò )中層與層之間最大程度的信息傳輸的前提下,直接將所有層連接起來(lái)!
RetinaNet
提出一個(gè)新的損失函數,在解決類(lèi)別不均衡問(wèn)題上比之前的方法更有效。損失函數是動(dòng)態(tài)縮放的交叉熵損失,其中縮放因子隨著(zhù)對正確類(lèi)別的置信度增加而衰減到零(如下圖)。直觀(guān)地說(shuō),這個(gè)縮放因子可以自動(dòng)降低訓練過(guò)程中簡(jiǎn)單樣本的貢獻,并快速將模型集中在困難樣本上。實(shí)驗發(fā)現,Focal Loss在one-stage檢測器上的精確度勝過(guò)之前的state-of-art的啟發(fā)式采樣和困難樣本挖掘。最后,focal loss的具體公式形式不是關(guān)鍵的,其它的示例可以達到類(lèi)似的結果。
設計了一個(gè)名叫RetinaNet的one-stage對象檢測器來(lái)說(shuō)明focalloss的有效性,RetinaNet命名來(lái)源于在輸入圖像上的密集采樣。它基于ResNet-101- FPN主干網(wǎng),以5fps的運行速度下,在COCO test-dev上取得了39.1 AP的成績(jì),超過(guò)目前公開(kāi)的單一模型在one-stage和two-stage檢測器上取得的最好成績(jì)。
3 新框架
數據輸入包括an image, a set of proposal boxes and proposal features
使用FPN作為Backbone,處理圖像
下圖中的Proposal Boxes: N*4是一組參數,跟backbone沒(méi)啥關(guān)系
下圖中的proposals features和backbone也沒(méi)啥關(guān)系
Learnable porposal box
跟backbone沒(méi)有什么關(guān)系
可以看成是物體潛在位置的統計概率
訓練的時(shí)候可以更新參數
Learnable proposal feature
跟backbone沒(méi)有什么關(guān)系
之前的proposal box是一個(gè)比較簡(jiǎn)潔、卻的方法來(lái)描述物體,但缺少了很多信息,比如物體的形狀與姿態(tài)
proposal feature就是用來(lái)表示更多的物體信息。
Dynamic instance interactive head
通過(guò)proposal boxes以及ROI方法獲取每個(gè)物體的特征,然后與proposal feature結合得到最終預測結果
Head的數量與learnable box的數量相同,即head/learnable proposal box/learnable proposal feature一一對應
Sparse R-CNN的兩個(gè)顯著(zhù)特點(diǎn)就是sparse object candidates和sparse feature interaction,既沒(méi)有dense的成千上萬(wàn)的candidates,也沒(méi)有dense的global feature interaction。Sparse R-CNN可以看作是目標檢測框架從dense到dense-to-sparse到sparse的一個(gè)方向拓展。
4 實(shí)驗&可視化
COCO 2017 val set測試結果
COCO 2017 test-dev set
可視化迭代架構中每個(gè)階段的預測框,包括學(xué)習到的候選框。學(xué)習到的候選框以白色繪制。顯示了分類(lèi)分數超過(guò)0.3的預測框。同一候選類(lèi)的框以相同顏色繪制,學(xué)習到的候選框被隨機分布在圖像上,并一起覆蓋整個(gè)圖像。迭代頭逐漸細化邊界框位置,刪除重復的。
上圖顯示了converged model的學(xué)習到的候選框。這些方框被隨機分布在圖像上,以覆蓋整個(gè)圖像區域。這保證了在稀疏候選條件下的召回性能。此外,每個(gè)階段的級聯(lián)頭逐漸細化邊界框的位置,并刪除重復的位置。這就導致了高精度的性能。上圖還顯示了Sparse R-CNN在罕見(jiàn)場(chǎng)景和人群場(chǎng)景中都表現出穩健的性能。對于罕見(jiàn)場(chǎng)景中的目標,其重復的方框將在幾個(gè)階段內被刪除。擁擠的場(chǎng)景需要更多的階段來(lái)細化,但最終每個(gè)目標都被精確而唯一地檢測到。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。