來源: arXiv 2020
代碼: https://github.com/PeizeSun/SparseR-CNN

本文章針對的是傳統(tǒng)基于深度學(xué)習(xí)的目標(biāo)檢測方法中,采用dense candidate或者dense points策略導(dǎo)致的dense操作問題,提出使用sparse方法進(jìn)行替代。
abstract
本文提出一種純粹的用于目標(biāo)檢測的稀疏方法,稱之為Sparse R-CNN. 當(dāng)前目標(biāo)檢測已存的方法嚴(yán)重依賴于密集的目標(biāo)候選,比如在HxW的特征圖所有格點(diǎn)上預(yù)先定義的k個錨框等。但是,在本文方法中, 僅利用學(xué)習(xí)得到的固定大小N的proposals的稀疏集合用于目標(biāo)識別和目標(biāo)分類及定位。通過將HWk預(yù)先定義的目標(biāo)候選降到N個可學(xué)習(xí)的候選,Sparse R-CNN完全避免了目標(biāo)候選的設(shè)計困難以及分配標(biāo)簽是many-to-one的問題。更重要的是,最終的輸出可以直接得到,而不用使用NMS等后處理的手段。Sparse R-CNN證明了在精度,運(yùn)行時間,訓(xùn)練收斂性上虞密集方法的可比性。
Introduction
基于密集候選的檢測方法雖然獲得了較好的性能,但依然存在一些限制:
- 這類方法一般會產(chǎn)生大量的冗余結(jié)果,需采用NMS后處理的方式獲得好的結(jié)果。
- 標(biāo)簽分配是一種many-to-one的方式,導(dǎo)致網(wǎng)絡(luò)訓(xùn)練對于分配策略比較敏感。
- 最終的性能受制于size,長寬比,anchor box的個數(shù),或參考點(diǎn)的密度或者proposal的生成算法。
DETR將目標(biāo)檢測問題重新表述成稀疏集合的預(yù)測問題,輸入時100個學(xué)習(xí)的查詢目標(biāo),最終的預(yù)測集合不經(jīng)過后處理直接輸出。雖然該結(jié)構(gòu)簡單出色,但其需要計算每一個query與全局context的相關(guān)性(有點(diǎn)類似non-local attention).這個過程不僅降低了訓(xùn)練收斂速度還使其難以稱之為徹底的sparse目標(biāo)檢測流程。
這篇文章直接輸入4維可學(xué)習(xí)的proposal固定集合和固定feature的集合進(jìn)行訓(xùn)練,然后將這兩個集合送入推理環(huán)境進(jìn)行目標(biāo)檢測。
Sparse RCNN
Sparse RCNN的核心思路是使用小集合的proposal boxes取代來自于RPN的數(shù)以萬計的候選。 Sparse R-CNN的結(jié)構(gòu)如下圖所示,包含backbone、dynamic instance interactive head和兩個指定任務(wù)的預(yù)測層。結(jié)構(gòu)的輸入包括整幅圖像、可學(xué)習(xí)的proposal boxes和features集合。

Learnable proposal box
區(qū)間在0-1之間的4d可學(xué)習(xí)參數(shù)集合作為proposal boxes,表示每個box歸一化之后的中心點(diǎn)和寬、高。作者實(shí)驗發(fā)現(xiàn)初始化對性能影響不大。
概念上講,這些學(xué)習(xí)出的proposals其實(shí)是訓(xùn)練集上的目標(biāo)位置的統(tǒng)計結(jié)果,作為推理集合的初始猜測,能夠較好的猜測哪些部位最有可能有目標(biāo)。而RPN的方式則和圖像內(nèi)容相關(guān)。作者認(rèn)為使用RPN為第二階段產(chǎn)生粗濾的結(jié)果有點(diǎn)高射炮打蚊子過于奢侈了,而簡單的統(tǒng)計特性就能有較好的結(jié)果(我覺得這種想法不靠譜,比如訓(xùn)練集如果是個十字路口,那么有行人的位置統(tǒng)計肯定集中在中心,換做測試集是個環(huán)路場景,行人都在周圍,訓(xùn)練集的統(tǒng)計還有意義嗎??但是RPN無懼)
Learnable proposal feature
作者認(rèn)為proposal box的維度太小,嵌入的信息過于粗糙,必須使用更高的特征嵌入細(xì)節(jié)特征,于是提出了proposal feature(也是一種依賴于訓(xùn)練集的統(tǒng)計數(shù)據(jù))
Dynamic instance interactive head
給定N個proposal boxes, Sparse R-CNN首先使用ROIAlign抽取每個box的特征,每個特征通過prediction head生成最終的預(yù)測。
Dynamic instance interactive head的結(jié)構(gòu)如下圖所示:

對于每個一proposal來說,box通過ROIAlign獲得SxSxC的ROI特征,然后使用對應(yīng)的proposal feature
dynamic instance interactive head還可以采用迭代的方式進(jìn)行處理:以獲得的predicted box和特征作為下一階段的proposal boxes和features。
Our proposal feature is irrelevant to position and we demonstrate that our framework can work well without positional encoding. We provide further comparisons in the experimental section.
這句話我覺得有些瞎扯,雖然沒有顯示的編碼位置信息,但是統(tǒng)計特性就包含了位置信息。。。
Set prediction loss.
集合的預(yù)測損失包括匹配損失。匹配損失是指無法確定proposal box與gt的對應(yīng)關(guān)系時使用(iou?)二值匹配獲得最相似的計算損失:

其中
Experiments
關(guān)于檢測的細(xì)節(jié)就不說了。

Number of proposals這個對比實(shí)驗中,proposal個數(shù)越多AP性能越高,沒有分析原因,那豈不是稀疏proposal還是犧牲了精度??
總結(jié)
這篇文章其實(shí)是提出了一種從訓(xùn)練集學(xué)習(xí)box分布位置和特征統(tǒng)計特性的一種方法,將該統(tǒng)計特性應(yīng)用到推理中,并使用可迭代的dynamic instance interactive head不斷地細(xì)化前景目標(biāo)與候選框中特征的相似度,從而最終獲得較好的檢測結(jié)果。
個人感覺即使在常用的COCO這種數(shù)據(jù)庫上效果不錯,但實(shí)際場景中估計效果一般,因為這些統(tǒng)計特性是基于訓(xùn)練集中目標(biāo)分布位置決定的,而極限條件下一張圖片中任何位置和任何大小的目標(biāo)概率都應(yīng)該是相同的。