Rethinking RGB-D Salient Object Detection: Models, Datasets, and Large-Scale Benchmarks
簡介
這是一篇程明明團隊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
model
提出的模型
模型圖如下
Depth Depurator Unit(DDU)
DDU模型的目的是爲了將深度圖分成合理的和低質量的圖,在後續的模型通道里不用差的深度圖。
如圖:
高質量深度圖中的獨立顯着對象通常以定義明確的封閉邊界爲特徵,並在其深度分佈中顯示出清晰的雙峯。
爲了剔除低質量深度圖,DDU模塊首先使用Otsu算法給每個輸入的深度圖Sd一個最佳閾值t*
(顯著區域大於t,非顯著區域小於t)。
然後使用H來衡量對象在顯着區域和非顯着區域之間的差異。 如果像素的顯着對象與背景明顯區分開,則H將很高。 H可以表示爲
(其中是深度圖顯著區域或者非顯著區域的平均值。)
再通過使用非顯着區域的方差來公式化深度圖的能量E:
最後進一步結合特徵H和E,因爲對於每個深度圖,一個簡單的組合特徵在技術上都是1D共同特徵(這句話目前沒懂)。爲了有效地淨化低質量深度圖,我們遵循迴歸樹的一般思想對深度圖像進行分類:
其中 , 是預測標籤(0表示低質量圖,1是正常圖)。,是GT標籤。θ是迴歸樹的參數。
Feature Learning Module(特徵學習模塊,FLM)
文章設計了FLM,當DDU輸出的Xd = 1的時候使用RGB - D 作爲特徵學習的輸入,否則只使用RGB。
爲了簡單起見,文章使用標準ResNet50模塊與幾塊並行的PDC(Pyramid Dilated Convolution)模塊級聯來提取空間特徵,但是空洞不同。如網絡結構圖下面一層所示,用一組並行的,空洞不同的卷積核對支路輸出F進行卷積來生成特徵圖爲了解決網絡退化問題,並且自動學習多尺度特徵文章聯合F和Q:
最後用一個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:使用交叉熵損失函數: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的特徵,結果這個更狠,直接踢掉了。。。