?

基于區域特征聚類的RGBD顯著性物體檢測

2019-05-05 06:29蒲寶明李相澤常戰國
小型微型計算機系統 2019年4期
關鍵詞:顯著性聚類像素

王 帥,蒲寶明,李相澤,楊 朔,常戰國

1(中國科學院大學,北京 100039)2(中國科學院 沈陽計算技術研究所,沈陽 110168)3(東北大學 計算機科學與工程學院,沈陽 110819)

1 引 言

顯著性檢測是計算機視覺領域一個基礎性的研究問題,通過模擬人的視覺注意力系統來突出圖片中顯著的區域或者物體.在過去的幾十年中,顯著性檢測吸引了很多的研究人員.它在很多的圖像處理問題中作為預處理中的重要一步.在模式識別和圖像處理中有很多的應用場景,例如:物體檢測、物體識別、物體分割、運動檢測、圖像匹配、圖像視頻壓縮以及視覺追蹤等[1].在絕大多數的應用中都是對2D圖片進行處理,但是顯著性檢測在3D視覺中也有相應的應用場景,其中也需要對2D圖像進行分析.因此二維圖像的顯著性檢測就尤為重要.

生物學家證明與周圍環境有很好的區分度的視覺區域更會吸引人的注意,很多的算法都是在根據這個原理來解決顯著性檢測問題,其中有根據低級特征計算區域對比度和根據背景特征計算區域對比度來得到顯著性圖.但是這些模型會在背景和物體沒有明顯的對比度的情況下就經常失效.因此引入深度信息就顯得十分有用.深度信息在人的視覺系統中起到了很大的作用,但是傳統的模型沒有引入深度信息,只是使用了RGB圖像的信息.同時大量的3-D傳感器能夠很方便的獲取到RGB-D圖像.因此需把深度信息融入到顯著性檢測中來研究高效的顯著性檢測算法.目前已經有一些研究使用的深度信息[3-8],但是還存在一些問題.例如,使用單一的深度圖信息、使用低級的RGB特征和深度特征.還有一種使用卷積神經網絡實現的顯著性檢測方法[9],這種方法計算量太大難以在一些嵌入式應用中使用.本文就是基于這種背景下提出了基于RGB-D圖像的循環區域聚類顯著性物體檢測算法.

圖1 算法流程圖Fig.1 Flow diagram of algorithm

本文根據在RGBD顯著性檢測領域的問題,提出一種基于區域特征聚類[10]的RGBD顯著性物體檢測算法.圖1顯示了本算法的流程圖.首先使用gRGBDSLIC超像素算法對圖片分割.然后提取分割后每個區域的特征構成特征向量.使用十個不同帶寬的MeanShift算法對特征向量聚類得到聚類的圖.再對十個聚類后的圖進行顯著性計算.通過神經網絡把十個顯著性圖合并成一個顯著性圖.然后把該顯著性圖作為一個新特征加到上面提到在特征向量中.繼續計算顯著性圖,直道循環達到十次.輸出最終的顯著性圖.本文最后通過和七個算法進行對比,顯示出本算法有更好的性能.

2 相關研究

本文中把顯著性檢測分為三類:自底向上的RGB顯著性檢測、自頂向下的RGB顯著性檢測以及基于RGBD的顯著性檢測.

2.1 自底向上的RGB顯著性檢測

這種方法主要考慮了低等級的視覺特征,通過研究人類視覺系統的原理提取的一些特征[11-14]以及一些傳統的處理圖像的技術提取出來的特征[15-19].視覺系統更容易被高對比度的圖像刺激[19],基于此在文獻[11]中提出了基于全局對比度的顯著性區域檢測,通過計算當前區域和其他區域的對比度得到顯著性圖.人們拍照的時候更喜歡把重要的物體放在圖片中間,文獻[12]提出了一種結合小區域與邊界關系和對比度的算法.結合傳統處理圖像的技術和一些區域特征,文獻[20]提出了一種多特征自適應融合的顯著性檢測方法.

2.2 自頂向下的RGB顯著性檢測

隨著深度學習技術的發展,越來越多的研究人員提出了更種各樣的深度學習框架來進行顯著性檢測.同時也取得了更好的檢測效果.例如:文獻[9]首次把CNN引入到顯著性檢測中.首先對圖像進行多尺度超像素切割,得到三個序列(超像素序列,一個空間核矩陣.一個范圍核矩陣).然后將三個序列送入三個卷積網絡中進行訓練,實現CNN的多通道輸入.得到三個顯著性圖.最后把三個顯著性圖合并到一起得到最終的顯著性圖.文獻[21]提出一個端到端的深度對比網絡.網絡包括兩個部分,一個像素級全卷積流和一個圖像分割空間池化流.第一步產生一個顯著圖,第二步產生 分割特征和顯著性間斷點.最后使用一個全連接CRF對兩個顯著性圖合并.文獻[22]提出了一種編碼全卷積神經網絡和一個相應的解碼全連接神經網絡來進行顯著性物體檢測.

2.3 基于RGBD的顯著性檢測

和RGB顯著性檢測相比,研究RGB-D顯著性檢測的研究人員較少.在文獻[3]中,提出了使用顏色和深度信息來計算顯著性.文獻[8]公開了基于RGB-D進行顯著性檢測的數據集,并且提出了一種簡單的框架來進行顯著性檢測.文獻[4]提出了一種各向異性中心環繞差分方法來對深度圖進行顯著性檢測.文獻[23]提出了一種結合進化策略來進行顯著性檢測的方法.

3 算 法

3.1 基于SLIC算法的RGBD圖像超像素分割

傳統的基于像素的算法計算復雜、忽略區域特征,本文中算法首先使用超像素算法把圖片分割成300個超像素.經典的SLIC[24]算法使用灰度或者Lab圖像進行超像素分割,本文在該算法中引入了圖像的深度信息[25].通過引入dddg使得圖像的深度信息也用于超像素計算.分割效果更好.兩個像素點的距離定義為D:

(1)

其中,dc是兩個像素Lab顏色空間的歐式距離,dddg是兩個像素深度幅度d和梯度方向ddgrad的歐式距離,ds是兩個像素位置的歐式距離.它們的計算公式如下:

(2)

(3)

(4)

在使用RGBDSLIC算法時發現其速度比較慢,500×400的圖像需要0.23秒,像素更大的計算需要更多的時間.為了加快其運行速度使用了文獻[26]中gSLICr的方法,該方法中使用CUDA來進行計算超像素,計算時間提高了70倍左右.經過實際對比,引入GPU計算的gRGBDSLIC比只使用CPU計算的算法快50倍左右.

圖2是分別使用SLIC和RGBDSLIC算法對原始圖像進行分割的結果.從圖2中可以看出,RGBDSLIC算法在兩個馬腿交叉的地方分割的更好.這是因為深度圖信息在這個部位起到了一定的作用.會把兩個腿交叉的地方合并到一個超像素中.而不是SLIC算法中該處的右前大腿和背景在一個超像素中.

3.2 RGBD特征提取

算法第二步是提取第一部中分割圖像I得到的各個超像素{S1,S2,…,SN}的特征,其中包括:CIELab三個顏色通道、圖片深度信息、兩個深度圖像的區域特征以及兩個RGB圖像的區域特征圖.以上特征組成了四個低級特征{fl,fa,fb,fD}以及四個高級特征圖{cGCD,cBCD,cGC,cBC}.同時考慮了顏色信息、亮度信息、深度信息、區域對比度信息、以及背景對比度信息.使用這些信息能夠更好的區分背景和顯著性物體.下一步的聚類算法能夠更好的把背景聚類到一起、顯著性物體聚類到一起.

圖2 SLIC算法和RGBDSLIC算法對比圖Fig.2 SLIC algorithm and RGBDSLIC algorithm comparison chart

低級特征通過對每個超像素SiLab_D四個通道的值求平均,得到了{fl,fa,fb,fD}.四個高級特征是全局對比度和背景對比度方法得到的.對比度特征反映了物體和背景的顯著性,它能夠很好的區分相同的區域和不同的區域.本文中使用這八個特征作為聚類使用的特征向量.全局對比度特征是由文獻[11]提出的.對于超像素Sj,計算其和其他超像素Si的歐式距離D.公式如下:

(5)

(6)

其中,ω(Si)是超像素Si中像素的個數,用來強調大的超像素.cGC是RGB圖像的全局對比度特征,cGCD是深度圖像的全局對比度特征.

背景對比度方法由文獻[12]提出.該算法通過引入邊界信息,更能夠突出中心的物體.計算方法如下:

(7)

(8)

通過以上步驟得到了每個超像素Si的八個特征值{fl,fa,fb,fD,cGCD,cBCD,cGC,cBC}.

3.3 Mean Shift聚類

Mean Shift算法[27]是一種無參數的聚類算法,使用時只需要提供控制核函數尺度的參數即可.而不需要提供聚類個數等參數.由于算法復雜度為O(N2)所以本文中選取300個超像素來進行計算.這樣比直接使用原圖減少了大量的計算消耗.從而加快運算速度.在圖像聚類中還需要提供超像素的位置特征{x,y}.這樣和上一節中的八個特征就組成了MeanShift算法的特征向量{fl,fa,fb,fD,cGCD,cBCD,cGC,cBC,x,y}.使用的時候對其進行歸一化.

傳統的Mean Shift圖像分割算法使用的是一維灰度或者三維RGB信息來結合位置信息進行計算的.本文中是使用兩個位置特征和八個超像素特征來進行多元核Mean Shift聚類的.其核函數是:

(9)

(10)

hS、hr是核函數帶寬.通過控制這兩個參數的來獲取不同帶寬下的聚類結果.hS、hr計算方法使用文獻[10]獲得.分別取10個值,從而獲得不同帶寬核函數的聚類圖.hS、hr的值越小聚類出來的種類越多能夠突出小物體,hS、hr值越大聚類出來的種類越少能夠突出大物體.并且經過實驗驗證10組值正好能從大物體到小物體都能夠覆蓋,增強算法性能.組數多了增加計算量,組數少了不能夠廣泛的覆蓋大小物體.10組值聚類效果如圖3所示.

圖3 MeanShift聚類結果圖Fig.3 MeanShift clustering result graph

3.4 EBC計算每個聚類的顯著圖

由上一節得到的聚類圖根據其顯著性物體與邊界的關系,本文中使用背景連通方法Boundary Connectivity(BC)[12]來計算每個超像素的顯著性值.又因為空間位置對顯著性物體有很大的影響,在此基礎上引入了一個新的空間權重來適應上一步得到的聚類圖,進而計算顯著性圖.改進的BC方法[10]公式如下:

(11)

十個經過不同核帶寬聚類得到的圖像經過公式(11)得到EBC的值,然后通過公式(12)計算顯著性值:

(12)

通過以上步驟得到了十個顯著性圖,本文通過帶有一個隱含層的神經網絡訓練得到權重把這十個顯著性圖合并為一個顯著性圖.每個顯著性圖的第i個像素的值組成一個向量作為神經網絡的輸入.經過一個十個節點的隱含層得到合并后的顯著性圖.神經網絡訓練權重使用的是不進行3.5節循環計算的顯著性圖.圖4左邊是是個不同帶寬MeanShift算法聚類圖計算得到的顯著性圖.右邊是通過神經網絡把十個顯著性圖合成一個顯著性圖的結果.可以看到中間的馬和左上角的房子都被明顯的顯示出來.

圖4 左邊:10個不同帶寬聚類得到的顯著性圖,右邊:把左邊合成的顯著性圖Fig.4 Left:significant plots with 10 different bandwidth clusters,right:significant plots with left-side synthesis

3.5 循環

為了進一步突出顯著性物體,提高算法的性能.把上一節中最后得到的顯著性圖使用3.1節中的超像素分割結果計算每個超像素區域的平均顯著性值,來作為3.3節中Mean Shift算法的一個新的特征值,加入到已有的特征中得到新的特征向量{fl,fa,fb,fD,cGCD,cBCD,cGC,cBC,Sc,x,y}.重復3.3、3.4中的過程10次.經過實驗驗證十次重復過程能夠很好的突出顯著性物體,同時由于增加次數會使得計算量增加,因此最后選擇十次來得到最終的顯著性圖.有些比較明顯的顯著性物體在循環7次的時候已經能很好的區分出來顯著性物體,但是為了能夠適應各種環境下的顯著性物體檢測因此選了絕大部分物體都能夠很好的凸顯的非常好的次數.圖5展示了循環3次、6次以及最后得到的顯著性圖.可以看到通過循環的方法,使得顯著性物體更加突出.可以更加方便的得到最終的二值化的顯著性圖.

圖5 左:循環3次結果 中:循環6次結果 右:循環10次結果,即最終的顯著性圖Fig.5 Left:cycle 3 times results:cycle 6 times results right:loop 10 times,the final saliency map

4 實驗結果

本文中測試的系統環境為:Windows 10,軟件環境為Matlab 2017b.計算機CPU為intel i7-7700HQ 2.8Ghz.GPU為GTX 1060 Max-Q.為了評價本文提出的顯著性物體檢測算法,本文選擇了6個主流的方法進行比較,它們分別是PCA-2013[2]算法、RBD-2014[12]算法、RC-2015[11]算法、 MB+-2015[19]算法、 MST-2016[18]算法以及DRFI*-2017[20]算法.圖6是本文算法與以上六個算法的顯著性圖對比.

圖6 算法對比圖Fig.6 Algorithm comparison chart

圖6從左到右分別是:原圖、深度圖、PCA算法結果、RBD算法結果、RC算法結果、MB+算法結果、MST算法結果、DRFI*算法結果、本文算法結果以及真值圖.從圖中我們可以看出圖中顯著性物體和背景存在相差比較大的對比度的時候算法都能很好的檢測出顯著性物體.但是再對比度相差不大的時候算法檢測出顯著性物體比較困難.比如第5張圖片,顯示的是一個人,但是他的帽子和背景比較相像,而且他的黑色的衣服也很容易被檢測位背景.本文中的算法由于結合了深度信息,能夠很好的反應圖像中人物的輪廓.這樣就能夠很方便的把背景和人分離開.PCA算法更適合檢測中間的物體,邊上的物體很難被檢測出來.RBD算法檢測高對比度的圖像效果都挺好,但是再檢測人的時候出現了多檢,把背景也作為了顯著性物體,并且衣服難以檢測出來.RC算法考慮了對比度,這樣使得高對比度的地方也容易被檢測為顯著性物體,比如狗的圖像的右上角.人的帽子和背景對比度相似,因此沒有檢測出來.MB+和MST算法在第一張和第五章中也出現了檢測多的問題,并且MST算法在第七張中把一個對比度明顯的紅瓶子漏掉了.DRFI算法整體表現的非常好,它通過對很對的特征訓練得到了很好的效果.但是在人的帽子的檢測中也漏掉了.本文算法整體表現較好,并且通過引入深度信息能夠更好的描繪顯著性物體的輪廓.并能夠檢測出和背景相似的帽子.

4.1 數據集

本文使用三個公開數據集來驗證算法.NLPR 數據集[8]、NJUD2000 數據集[6]以及LFSD 數據集[4].NLPR 數據集:NLPR RGBD數據集包括1000個通過微軟Kinect采集的圖像.NJUD2000 數據集:NJUD2000數據集包括2000個光影、深度和顯著性標注圖像.深度圖使用光流法得到的.LFSD 數據集:LFSD數據集包括100個深度和顯著性圖.深度圖通過Lytro光影照相機得到.

4.2 評價方法

本文通過實驗比較七個算法得到的顯著性圖的準確率(Precision)、召回率( recall)、F-measure值(F-score)以及MAE(mean absolute error)平均絕對誤差.這樣能夠直觀的比較幾種算法的效果.

首先把顯著性圖S轉化成二值顯著性圖M.二值化在算法評估中是一個重要的步驟,我們使用的是文獻[13]中的方法.通過計算一個閾值來對顯著性圖S進行二值化為M.閾值計算公式如下:

(13)

其中,W、H是圖像的寬和高.

設為是實際顯著性圖,則準確率(Precision):

(14)

召回率( recall):

(15)

P-R曲線:算法得到的顯著性圖片I是灰度圖,讓閾值T取[0,255],得到二值顯著性圖M.又已知顯著性物體二值圖真值圖G.由公式(14)、公式(15)分別求取準確率(P)和召回率(R),得到P-R曲線.

圖7 P-R曲線Fig.7 P-R curve

首先對一張圖片使用7種算法得到七個顯著性圖.然后使用P-R曲線計算方法計算7種算法得到七個P-R曲線.最后對所有圖片的P-R曲線求平均就得到了圖7所示的曲線.如圖7所示,本文算法與其他算法相比,P-R曲線在其他算法的上方.有些算法在T值比較小的時候沒有曲線,這是因為在計算準確率(Precision)的時候出現了分母為0 的情況.

圖8 P-R-F柱狀圖Fig.8 P-R-F histogram

單獨的使用準確率和召回率都不能很好的估計顯著性的好壞.因此引入了F-measure值,它同時反映了準確率和召回率,計算公式如下:

(16)

其中,β2=0.3.

首先對圖片的顯著性圖使用公式(13)計算閾值,然后使用公式(14)、公式(15)計算準確率和召回率.再使用公式(16)計算Fβ.最后把所有圖片得到的Fβ求平均就得到了一個算法的Fβ值.圖8顯示了七個算法的準確率、召回率以及F值.圖中顯示出本文算法在召回率和F值都比其他算法高.而準確率和DIFI算法相同,比其他算法都大.

還有一種顯著性評價方法是平均絕對誤差(MAE).MAE值通過公式(17)計算:

(17)

首先對一個圖片求顯著性圖,然后使用公式(17)求該圖的平均絕對誤差MAE.然后對所有圖片的MAE求平均就得到了一種算法在數據集中的MAE.MAE反映了最終的顯著性圖和真值圖的差別.越小越好,表明越和真值圖相近.如圖9所示,本文中算法計算出來的顯著性圖,顯著性物體和背景有明顯的區別所以在MAE上表現比較好.

圖9 MAE柱狀圖Fig.9 MAE histogram

5 總 結

針對顯著性檢測算法中的檢測效果、深度學習算法無法在嵌入式設備中使用以及很多算法缺乏是使用深度圖信息的問題,本文提出了一種基于區域聚類RGBD顯著性檢測算法.首先使用超像素算法對圖像分割,然后對分割的算法求取特征向量.再使用多帶寬無參聚類算法對特征向量聚類,然后得到十個帶寬下的顯著性圖.通過神經網絡對顯著性圖進行合并.把最后得到的顯著性圖作為一個新的特征再次重復以上過程.重復十次后得到最終的顯著性圖.通過實驗表明,本算法和其他算法比較,在效果、準確率、召回率、F值以及MAE上都有提高.

猜你喜歡
顯著性聚類像素
一種傅里葉域海量數據高速譜聚類方法
像素前線之“幻影”2000
一種結合多尺度特征融合與像素損失加權的顯著性目標檢測方法
聲音商標顯著性認定研究
“像素”仙人掌
基于顯著性權重融合的圖像拼接算法
歐盟法院判決明確歐盟商標通過使用獲得顯著性的地域認定標準
面向WSN的聚類頭選舉與維護協議的研究綜述
改進K均值聚類算法
基于Spark平臺的K-means聚類算法改進及并行化實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合