Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

計算機視覺研究院專欄

作者:Edison_G

Sparse R-CNN拋棄了anchor boxes或者reference point等dense概念,直接從a sparse set of learnable proposals出發,沒有NMS後處理,整個網路異常乾淨和簡潔,可以看做是一個全新的檢測正規化。

公眾號ID

|ComputerVisionGzq

學習群

掃碼在主頁獲取加入方式

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

1

簡要

目前目標檢測成熟的演算法都是基於Dense prior(密集的先驗,比如anchors、reference points),但密集的先驗存在很多問題:1)會檢測出很多相似的結果,需要後處理(比如NMS)來過濾;2)many-to-one label assignment 問題(作者描述為 many-to-one 正負樣本分配),猜測意思是我們在設定pred和gt時,一般不是一對一的關係,可能是有多個preds,看看哪個與gt更符合;3)檢測結果與先驗的關係非常密切(anchors的數量、大小,reference points的密級程度、proposal生成的數量)。

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

所以,有研究者提出了稀疏RCNN(

Sparse R-CNN

),一種影象中目標檢測的純稀疏方法。現有的目標檢測工作很大程度上依賴於密集的候選目標,如所有H×W的影象特徵圖網格上預定義的k個anchor boxes。

然而,在新提出的方法中,提供了一套固定的稀疏的學習候選目標,總長度N,給目標檢測頭進行分類和定位。透過消除H*W*k(多達數十萬)手工設計的候選目標到N(例如100)可學習的建議,

Sparse R-CNN完全避免了所

有與候選目標的設計和多對一的標籤分配相關的工作。更重要的是,最終的預測是直接輸出的,而沒有非極大抑制的後處理。SparseR-CNN證明了準確性、執行時和訓練收斂效能,與具有挑戰性的COCO資料集上建立的檢測器基線相當,例如,在標準3×訓練計劃中實現45。0AP,並使用ResNet-50FPN模型以22fps的速度執行。

作者是希望新的框架能夠激發人們重新思考目標檢測器中密集先驗的慣例。

2

背景

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

不同目標檢測pipelines的比較。(a)Dense,HWk候選目標列舉在所有的影象網格上,例如。RetinaNet;(b)Dense-to-Sparse,它們從密集的HWk候選目標中選擇一小組N個候選目標,然後透過池化操作提取相應區域內的影象特徵,如Faster R-CNN;(c)研究者提出的Sparse R-CNN,直接提供了一小組N個學習的候選目標,這裡N遠小於

HWk

DenseNet

是CVPR2017的oral,非常厲害。文章提出的DenseNet(Dense Convolutional Network)主要還是和ResNet及Inception網路做對比,思想上有借鑑,但卻是全新的結構,網路結構並不複雜,卻非常有效!眾所周知,最近一兩年卷積神經網路提高效果的方向,要麼深(比如ResNet,解決了網路深時候的梯度消失問題)要麼寬(比如GoogleNet的Inception),而作者則是從feature入手,透過對feature的極致利用達到更好的效果和更少的引數。主要最佳化

減輕了vanishing-gradient(梯度消失)

加強了feature的傳遞

更有效地利用了feature

一定程度上較少了引數數量

在深度學習網路中,隨著網路深度的加深,梯度消失問題會愈加明顯,目前很多論文都針對這個問題提出瞭解決方案,比如ResNet,Highway Networks,Stochastic depth,FractalNets等,儘管這些演算法的網路結構有差別,但是核心都在於:create short paths from early layers to later layers。那麼作者是怎麼做呢?延續這個思路,那就是在保證網路中層與層之間最大程度的資訊傳輸的前提下,直接將所有層連線起來!

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

RetinaNet

提出一個新的損失函式,在解決類別不均衡問題上比之前的方法更有效。損失函式是動態縮放的交叉熵損失,其中縮放因子隨著對正確類別的置信度增加而衰減到零(如下圖)。直觀地說,這個縮放因子可以自動降低訓練過程中簡單樣本的貢獻,並快速將模型集中在困難樣本上。實驗發現,Focal Loss在one-stage檢測器上的精確度勝過之前的state-of-art的啟發式取樣和困難樣本挖掘。最後,focal loss的具體公式形式不是關鍵的,其它的示例可以達到類似的結果。

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

設計了一個名叫RetinaNet的one-stage物件檢測器來說明focalloss的有效性,RetinaNet命名來源於在輸入影象上的密集取樣。它基於ResNet-101- FPN主幹網,以5fps的執行速度下,在COCO test-dev上取得了39。1 AP的成績,超過目前公開的單一模型在one-stage和two-stage檢測器上取得的最好成績。

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

3

新框架

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

資料輸入包括an image, a set of proposal boxes and proposal features

使用FPN作為Backbone,處理影象

下圖中的Proposal Boxes: N*4是一組引數,跟backbone沒啥關係

下圖中的proposals features和backbone也沒啥關係

Learnable porposal box

跟backbone沒有什麼關係

可以看成是物體潛在位置的統計機率

訓練的時候可以更新引數

Learnable proposal feature

跟backbone沒有什麼關係

之前的proposal box是一個比較簡潔、卻的方法來描述物體,但缺少了很多資訊,比如物體的形狀與姿態

proposal feature就是用來表示更多的物體資訊。

Dynamic instance interactive head

透過proposal boxes以及ROI方法獲取每個物體的特徵,然後與proposal feature結合得到最終預測結果

Head的數量與learnable box的數量相同,即head/learnable proposal box/learnable proposal feature一一對應

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

Sparse R-CNN的兩個顯著特點

就是

sparse object candidates

sparse feature interaction

,既沒有dense的成千上萬的candidates,也沒有dense的global feature interaction。

Sparse R-CNN可以看作是目標檢測框架從dense到dense-to-sparse到sparse的一個方向拓展。

4

實驗&視覺化

COCO 2017 val set測試結果

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

COCO 2017 test-dev set

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

視覺化迭代架構中每個階段的預測框,包括學習到的候選框。學習到的候選框以

白色

繪製。顯示了分類分數超過0。3的預測框。同一候選類的框以相同顏色繪製,學習到的候選框被隨機分佈在影象上,並一起覆蓋整個影象。迭代頭逐漸細化邊界框位置,刪除重複的。

上圖顯示了

con

verged model的學習到的候選框。這些方框被隨機分佈在影象上,以覆蓋整個影象區域。這保證了在稀疏候選條件下的召回效能。此外,每個階段的級聯頭逐漸細化

邊界框

的位置,並刪除重複的位置。這就導致了高精度的效能。上圖還顯示了

Sparse R-CNN在罕見場景和人群場景中都表現出穩健的效能

。對於罕見場景中的目標,其重複的方框將在幾個階段內被刪除。擁擠的場景需要更多的階段來細化,但最終每個目標都被精確而唯一地檢測到。

© THE END

轉載請聯絡本公眾號獲得授權

Sparse R-CNN:稀疏框架,端到端的目標檢測(附原始碼)

計算機視覺研究院學習群等你加入!

計算機視覺研究院主要涉及深度學習領域,主要致力於人臉檢測、人臉識別,多目標檢測、目標跟蹤、影象分割等研究方向。研究院接下來會不斷分享最新的論文演算法新框架,我們這次改革不同點就是,我們要著重”

計算機視覺研究院

深度學習

人臉檢測、人臉識別,多目標檢測、目標跟蹤、影象分割等

研究院

研究院

公眾號ID

研究

原始碼下載

| 回覆“

“。之後我們會針對相應領域分享實踐過程,讓大家真正體會

”獲取原始碼下載

擺脫理論