顯著性檢測學習筆記(1):D3Net

簡介

這是一篇程明明團隊2019年發佈在arXiv上的一篇關於rgb-d顯著性檢測的文章。數據集和代碼均可在github上找到。

github:

https://github.com/DengPingFan/D3NetBenchmark

動機和貢獻

這篇文章的 動機 :因爲當前在3D顯著性檢測的研究工作中很少有真實世界人類活動的檢測,因此在這篇文章中,爲了填補這一缺陷做了如下三點貢獻:
1.蒐集了新的顯著人物(SIP)數據集,其中包含1k張高分辨率的從各種姿勢、角度、遮擋、照明、背景的現實世界場景蒐集的圖像。
2:提出了一種迄今爲止最爲全面的benchmark,該方法在這一領域已經缺失,因此可以用作未來的研究基準。
3.提出了一種簡單的baseline結構,稱爲Deep Depth-Depurator Network(D3Net)。其中包含了深度調試單元和特徵學習模塊,分別進行初始的低質量的深度圖濾波,和跨模態的特徵學習。

Related Works

數據集及model對比

datasets

Alt

model

各類模型對比

提出的模型

模型圖如下
模型圖

Depth Depurator Unit(DDU)

DDU模型的目的是爲了將深度圖分成合理的和低質量的圖,在後續的模型通道里不用差的深度圖。
如圖:在這裏插入圖片描述
高質量深度圖中的獨立顯着對象通常以定義明確的封閉邊界爲特徵,並在其深度分佈中顯示出清晰的雙峯。
爲了剔除低質量深度圖,DDU模塊首先使用Otsu算法給每個輸入的深度圖Sd一個最佳閾值t*
t=argmaxt(σSd>t2σSdt2) \mathbf{t}^{*}=\underset{\mathbf{t}}{\arg \max }\left(\sigma_{S_{d}>\mathbf{t}}^{2}-\sigma_{S_{d} \leq t}^{2}\right) (顯著區域大於t,非顯著區域小於t)。
然後使用H來衡量對象在顯着區域和非顯着區域之間的差異。 如果像素的顯着對象與背景明顯區分開,則H將很高。 H可以表示爲H=μ(Sdt)μ(Sd>t)H=\left|\mu\left(S_{d} \leq \mathbf{t}^{*}\right)-\mu\left(S_{d}>\mathbf{t}^{*}\right)\right|

(其中μ\mu是深度圖顯著區域或者非顯著區域的平均值。)
再通過使用非顯着區域的方差來公式化深度圖的能量E:
E=σ2(Sd>t) E=\sigma^{2}\left(S_{d}>\mathbf{t}^{*}\right)
最後進一步結合特徵H和E,因爲對於每個深度圖,一個簡單的組合特徵在技術上都是1D共同特徵HEd=[H,E]\mathbf{H E}_{d}=[\boldsymbol{H}, \boldsymbol{E}](這句話目前沒懂)。爲了有效地淨化低質量深度圖,我們遵循迴歸樹的一般思想對深度圖像進行分類:
xd=RTree(HEd,yd;θ) \mathbf{x}_{d}=\operatorname{RTree}\left(\mathbf{H E}_{d}, \mathbf{y}_{d} ; \boldsymbol{\theta}\right)
其中 xd{0,1}\mathbf{x}_{d} \in\{0,1\}, 是預測標籤(0表示低質量圖,1是正常圖)。yd{0,1}\mathbf{y}_{d} \in\{0,1\},是GT標籤。θ是迴歸樹的參數。

Feature Learning Module(特徵學習模塊,FLM)

文章設計了FLM,當DDU輸出的Xd = 1的時候使用RGB - D 作爲特徵學習的輸入,否則只使用RGB。
爲了簡單起見,文章使用標準ResNet50模塊與幾塊並行的PDC(Pyramid Dilated Convolution)模塊級聯來提取空間特徵,但是空洞不同。如網絡結構圖下面一層所示,用一組並行的,空洞不同的卷積核{Drk}k1K\left\{\mathbf{D}_{r_{k}}\right\}_{k-1}^{K}對支路輸出F進行卷積來生成特徵圖{PkRW×K×M}\left\{\mathbf{P}_{k} \in \mathbb{R}^{W \times K \times M}\right\}:Pk=DrkF \mathbf{P}_{k}=\mathbf{D}_{r_{k}} * \mathbf{F} 爲了解決網絡退化問題,並且自動學習多尺度特徵Q={Pk}k=1KQ=\left\{\mathbf{P}_{k}\right\}_{k=1}^{K}文章聯合F和Q:X=Q,F=[P1,P2,,PK,F] \mathbf{X}=|\mathbf{Q}, \mathbf{F}|=\left[\mathbf{P}_{1}, \mathbf{P}_{2}, \dots, \mathbf{P}_{K}, \mathbf{F}\right]
最後用一個3x3的512通道的卷積核和一個3x3的256通道的卷積核縮減維度,最後爲了生成特徵圖用一個1x1的一通道卷積核讀出,並且用sigmoid函數激活。
(作者還說自己的結構和ASPP很像,但是比後者大,可以採集更多不同尺度的信息。)

實施細節

DDU:文章爲了學習迴歸樹的參數θ,需要把每一張深度圖的質量標籤分配到訓練集裏。因此他們把S-measure<0.45的標記爲低質量(0),其他爲中、高質量(1)。文章隨機的從NJU2K數據集選擇1.4k作爲訓練圖,並把迴歸樹設置爲5級

PDC:VGG-16和Res-101可以作爲備用骨幹網絡。最後兩個模塊的卷積步長爲1,輸入圖像resize爲512x512。四個dilation factiors設置爲r0=1,rk=12*k(k=1,2,3)

LOSS Function:使用交叉熵損失函數:L(S,G)=1Ni=1N(gilog(si)+(1gi)log(1si)) L(\mathbf{S}, \mathbf{G})=-\frac{1}{N} \sum_{i=1}^{N}\left(g_{i} \log \left(s_{i}\right)+\left(1-g_{i}\right) \log \left(1-s_{i}\right)\right) S和G分別是顯著圖和GT圖,N是像素總數。

消融試驗

在這裏插入圖片描述
文章把D3Net模塊作爲baseline進行消融分析,並且把RGB和RGB-D分別作爲BASE1和BASE2。
(這裏是先不要DDU模塊,BASE1和2單獨跑數據集,最後再加上DDU進行整體的測試作爲比較)
最後發現DDU模塊對模型性能提升很大。

總結

這篇文章主要是提供了新的Datasets,並且提出了一種D3Net作爲Baseline,網絡標準ResNet50串聯一個並行的PDC提取空間特徵。最重要的部分我認爲是DDU模塊,這是數據篩選的一個重要過程,其實把表現很差的深度圖剔除掉,只用RGB圖的話,就不會讓差的圖去影響結果。我曾經想加上權重去分配D和RBG的特徵,結果這個更狠,直接踢掉了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章