王 帥,蒲寶明,李相澤,楊 朔,常戰(zhàn)國
1(中國科學院大學,北京 100039)2(中國科學院 沈陽計算技術(shù)研究所,沈陽 110168)3(東北大學 計算機科學與工程學院,沈陽 110819)
顯著性檢測是計算機視覺領(lǐng)域一個基礎(chǔ)性的研究問題,通過模擬人的視覺注意力系統(tǒng)來突出圖片中顯著的區(qū)域或者物體.在過去的幾十年中,顯著性檢測吸引了很多的研究人員.它在很多的圖像處理問題中作為預處理中的重要一步.在模式識別和圖像處理中有很多的應用場景,例如:物體檢測、物體識別、物體分割、運動檢測、圖像匹配、圖像視頻壓縮以及視覺追蹤等[1].在絕大多數(shù)的應用中都是對2D圖片進行處理,但是顯著性檢測在3D視覺中也有相應的應用場景,其中也需要對2D圖像進行分析.因此二維圖像的顯著性檢測就尤為重要.
生物學家證明與周圍環(huán)境有很好的區(qū)分度的視覺區(qū)域更會吸引人的注意,很多的算法都是在根據(jù)這個原理來解決顯著性檢測問題,其中有根據(jù)低級特征計算區(qū)域?qū)Ρ榷群透鶕?jù)背景特征計算區(qū)域?qū)Ρ榷葋淼玫斤@著性圖.但是這些模型會在背景和物體沒有明顯的對比度的情況下就經(jīng)常失效.因此引入深度信息就顯得十分有用.深度信息在人的視覺系統(tǒng)中起到了很大的作用,但是傳統(tǒng)的模型沒有引入深度信息,只是使用了RGB圖像的信息.同時大量的3-D傳感器能夠很方便的獲取到RGB-D圖像.因此需把深度信息融入到顯著性檢測中來研究高效的顯著性檢測算法.目前已經(jīng)有一些研究使用的深度信息[3-8],但是還存在一些問題.例如,使用單一的深度圖信息、使用低級的RGB特征和深度特征.還有一種使用卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)的顯著性檢測方法[9],這種方法計算量太大難以在一些嵌入式應用中使用.本文就是基于這種背景下提出了基于RGB-D圖像的循環(huán)區(qū)域聚類顯著性物體檢測算法.
圖1 算法流程圖Fig.1 Flow diagram of algorithm
本文根據(jù)在RGBD顯著性檢測領(lǐng)域的問題,提出一種基于區(qū)域特征聚類[10]的RGBD顯著性物體檢測算法.圖1顯示了本算法的流程圖.首先使用gRGBDSLIC超像素算法對圖片分割.然后提取分割后每個區(qū)域的特征構(gòu)成特征向量.使用十個不同帶寬的MeanShift算法對特征向量聚類得到聚類的圖.再對十個聚類后的圖進行顯著性計算.通過神經(jīng)網(wǎng)絡(luò)把十個顯著性圖合并成一個顯著性圖.然后把該顯著性圖作為一個新特征加到上面提到在特征向量中.繼續(xù)計算顯著性圖,直道循環(huán)達到十次.輸出最終的顯著性圖.本文最后通過和七個算法進行對比,顯示出本算法有更好的性能.
本文中把顯著性檢測分為三類:自底向上的RGB顯著性檢測、自頂向下的RGB顯著性檢測以及基于RGBD的顯著性檢測.
這種方法主要考慮了低等級的視覺特征,通過研究人類視覺系統(tǒng)的原理提取的一些特征[11-14]以及一些傳統(tǒng)的處理圖像的技術(shù)提取出來的特征[15-19].視覺系統(tǒng)更容易被高對比度的圖像刺激[19],基于此在文獻[11]中提出了基于全局對比度的顯著性區(qū)域檢測,通過計算當前區(qū)域和其他區(qū)域的對比度得到顯著性圖.人們拍照的時候更喜歡把重要的物體放在圖片中間,文獻[12]提出了一種結(jié)合小區(qū)域與邊界關(guān)系和對比度的算法.結(jié)合傳統(tǒng)處理圖像的技術(shù)和一些區(qū)域特征,文獻[20]提出了一種多特征自適應融合的顯著性檢測方法.
隨著深度學習技術(shù)的發(fā)展,越來越多的研究人員提出了更種各樣的深度學習框架來進行顯著性檢測.同時也取得了更好的檢測效果.例如:文獻[9]首次把CNN引入到顯著性檢測中.首先對圖像進行多尺度超像素切割,得到三個序列(超像素序列,一個空間核矩陣.一個范圍核矩陣).然后將三個序列送入三個卷積網(wǎng)絡(luò)中進行訓練,實現(xiàn)CNN的多通道輸入.得到三個顯著性圖.最后把三個顯著性圖合并到一起得到最終的顯著性圖.文獻[21]提出一個端到端的深度對比網(wǎng)絡(luò).網(wǎng)絡(luò)包括兩個部分,一個像素級全卷積流和一個圖像分割空間池化流.第一步產(chǎn)生一個顯著圖,第二步產(chǎn)生 分割特征和顯著性間斷點.最后使用一個全連接CRF對兩個顯著性圖合并.文獻[22]提出了一種編碼全卷積神經(jīng)網(wǎng)絡(luò)和一個相應的解碼全連接神經(jīng)網(wǎng)絡(luò)來進行顯著性物體檢測.
和RGB顯著性檢測相比,研究RGB-D顯著性檢測的研究人員較少.在文獻[3]中,提出了使用顏色和深度信息來計算顯著性.文獻[8]公開了基于RGB-D進行顯著性檢測的數(shù)據(jù)集,并且提出了一種簡單的框架來進行顯著性檢測.文獻[4]提出了一種各向異性中心環(huán)繞差分方法來對深度圖進行顯著性檢測.文獻[23]提出了一種結(jié)合進化策略來進行顯著性檢測的方法.
傳統(tǒng)的基于像素的算法計算復雜、忽略區(qū)域特征,本文中算法首先使用超像素算法把圖片分割成300個超像素.經(jīng)典的SLIC[24]算法使用灰度或者Lab圖像進行超像素分割,本文在該算法中引入了圖像的深度信息[25].通過引入dddg使得圖像的深度信息也用于超像素計算.分割效果更好.兩個像素點的距離定義為D:
(1)
其中,dc是兩個像素Lab顏色空間的歐式距離,dddg是兩個像素深度幅度d和梯度方向ddgrad的歐式距離,ds是兩個像素位置的歐式距離.它們的計算公式如下:
(2)
(3)
(4)
在使用RGBDSLIC算法時發(fā)現(xiàn)其速度比較慢,500×400的圖像需要0.23秒,像素更大的計算需要更多的時間.為了加快其運行速度使用了文獻[26]中g(shù)SLICr的方法,該方法中使用CUDA來進行計算超像素,計算時間提高了70倍左右.經(jīng)過實際對比,引入GPU計算的gRGBDSLIC比只使用CPU計算的算法快50倍左右.
圖2是分別使用SLIC和RGBDSLIC算法對原始圖像進行分割的結(jié)果.從圖2中可以看出,RGBDSLIC算法在兩個馬腿交叉的地方分割的更好.這是因為深度圖信息在這個部位起到了一定的作用.會把兩個腿交叉的地方合并到一個超像素中.而不是SLIC算法中該處的右前大腿和背景在一個超像素中.
算法第二步是提取第一部中分割圖像I得到的各個超像素{S1,S2,…,SN}的特征,其中包括:CIELab三個顏色通道、圖片深度信息、兩個深度圖像的區(qū)域特征以及兩個RGB圖像的區(qū)域特征圖.以上特征組成了四個低級特征{fl,fa,fb,fD}以及四個高級特征圖{cGCD,cBCD,cGC,cBC}.同時考慮了顏色信息、亮度信息、深度信息、區(qū)域?qū)Ρ榷刃畔ⅰ⒁约氨尘皩Ρ榷刃畔?使用這些信息能夠更好的區(qū)分背景和顯著性物體.下一步的聚類算法能夠更好的把背景聚類到一起、顯著性物體聚類到一起.
圖2 SLIC算法和RGBDSLIC算法對比圖Fig.2 SLIC algorithm and RGBDSLIC algorithm comparison chart
低級特征通過對每個超像素SiLab_D四個通道的值求平均,得到了{fl,fa,fb,fD}.四個高級特征是全局對比度和背景對比度方法得到的.對比度特征反映了物體和背景的顯著性,它能夠很好的區(qū)分相同的區(qū)域和不同的區(qū)域.本文中使用這八個特征作為聚類使用的特征向量.全局對比度特征是由文獻[11]提出的.對于超像素Sj,計算其和其他超像素Si的歐式距離D.公式如下:
(5)
(6)
其中,ω(Si)是超像素Si中像素的個數(shù),用來強調(diào)大的超像素.cGC是RGB圖像的全局對比度特征,cGCD是深度圖像的全局對比度特征.
背景對比度方法由文獻[12]提出.該算法通過引入邊界信息,更能夠突出中心的物體.計算方法如下:
(7)
(8)
通過以上步驟得到了每個超像素Si的八個特征值{fl,fa,fb,fD,cGCD,cBCD,cGC,cBC}.
Mean Shift算法[27]是一種無參數(shù)的聚類算法,使用時只需要提供控制核函數(shù)尺度的參數(shù)即可.而不需要提供聚類個數(shù)等參數(shù).由于算法復雜度為O(N2)所以本文中選取300個超像素來進行計算.這樣比直接使用原圖減少了大量的計算消耗.從而加快運算速度.在圖像聚類中還需要提供超像素的位置特征{x,y}.這樣和上一節(jié)中的八個特征就組成了MeanShift算法的特征向量{fl,fa,fb,fD,cGCD,cBCD,cGC,cBC,x,y}.使用的時候?qū)ζ溥M行歸一化.
傳統(tǒng)的Mean Shift圖像分割算法使用的是一維灰度或者三維RGB信息來結(jié)合位置信息進行計算的.本文中是使用兩個位置特征和八個超像素特征來進行多元核Mean Shift聚類的.其核函數(shù)是:
(9)
(10)
hS、hr是核函數(shù)帶寬.通過控制這兩個參數(shù)的來獲取不同帶寬下的聚類結(jié)果.hS、hr計算方法使用文獻[10]獲得.分別取10個值,從而獲得不同帶寬核函數(shù)的聚類圖.hS、hr的值越小聚類出來的種類越多能夠突出小物體,hS、hr值越大聚類出來的種類越少能夠突出大物體.并且經(jīng)過實驗驗證10組值正好能從大物體到小物體都能夠覆蓋,增強算法性能.組數(shù)多了增加計算量,組數(shù)少了不能夠廣泛的覆蓋大小物體.10組值聚類效果如圖3所示.
圖3 MeanShift聚類結(jié)果圖Fig.3 MeanShift clustering result graph
由上一節(jié)得到的聚類圖根據(jù)其顯著性物體與邊界的關(guān)系,本文中使用背景連通方法Boundary Connectivity(BC)[12]來計算每個超像素的顯著性值.又因為空間位置對顯著性物體有很大的影響,在此基礎(chǔ)上引入了一個新的空間權(quán)重來適應上一步得到的聚類圖,進而計算顯著性圖.改進的BC方法[10]公式如下:
(11)
十個經(jīng)過不同核帶寬聚類得到的圖像經(jīng)過公式(11)得到EBC的值,然后通過公式(12)計算顯著性值:
(12)
通過以上步驟得到了十個顯著性圖,本文通過帶有一個隱含層的神經(jīng)網(wǎng)絡(luò)訓練得到權(quán)重把這十個顯著性圖合并為一個顯著性圖.每個顯著性圖的第i個像素的值組成一個向量作為神經(jīng)網(wǎng)絡(luò)的輸入.經(jīng)過一個十個節(jié)點的隱含層得到合并后的顯著性圖.神經(jīng)網(wǎng)絡(luò)訓練權(quán)重使用的是不進行3.5節(jié)循環(huán)計算的顯著性圖.圖4左邊是是個不同帶寬MeanShift算法聚類圖計算得到的顯著性圖.右邊是通過神經(jīng)網(wǎng)絡(luò)把十個顯著性圖合成一個顯著性圖的結(jié)果.可以看到中間的馬和左上角的房子都被明顯的顯示出來.
圖4 左邊:10個不同帶寬聚類得到的顯著性圖,右邊:把左邊合成的顯著性圖Fig.4 Left:significant plots with 10 different bandwidth clusters,right:significant plots with left-side synthesis
為了進一步突出顯著性物體,提高算法的性能.把上一節(jié)中最后得到的顯著性圖使用3.1節(jié)中的超像素分割結(jié)果計算每個超像素區(qū)域的平均顯著性值,來作為3.3節(jié)中Mean Shift算法的一個新的特征值,加入到已有的特征中得到新的特征向量{fl,fa,fb,fD,cGCD,cBCD,cGC,cBC,Sc,x,y}.重復3.3、3.4中的過程10次.經(jīng)過實驗驗證十次重復過程能夠很好的突出顯著性物體,同時由于增加次數(shù)會使得計算量增加,因此最后選擇十次來得到最終的顯著性圖.有些比較明顯的顯著性物體在循環(huán)7次的時候已經(jīng)能很好的區(qū)分出來顯著性物體,但是為了能夠適應各種環(huán)境下的顯著性物體檢測因此選了絕大部分物體都能夠很好的凸顯的非常好的次數(shù).圖5展示了循環(huán)3次、6次以及最后得到的顯著性圖.可以看到通過循環(huán)的方法,使得顯著性物體更加突出.可以更加方便的得到最終的二值化的顯著性圖.
圖5 左:循環(huán)3次結(jié)果 中:循環(huán)6次結(jié)果 右:循環(huán)10次結(jié)果,即最終的顯著性圖Fig.5 Left:cycle 3 times results:cycle 6 times results right:loop 10 times,the final saliency map
本文中測試的系統(tǒng)環(huán)境為:Windows 10,軟件環(huán)境為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算法結(jié)果、RBD算法結(jié)果、RC算法結(jié)果、MB+算法結(jié)果、MST算法結(jié)果、DRFI*算法結(jié)果、本文算法結(jié)果以及真值圖.從圖中我們可以看出圖中顯著性物體和背景存在相差比較大的對比度的時候算法都能很好的檢測出顯著性物體.但是再對比度相差不大的時候算法檢測出顯著性物體比較困難.比如第5張圖片,顯示的是一個人,但是他的帽子和背景比較相像,而且他的黑色的衣服也很容易被檢測位背景.本文中的算法由于結(jié)合了深度信息,能夠很好的反應圖像中人物的輪廓.這樣就能夠很方便的把背景和人分離開.PCA算法更適合檢測中間的物體,邊上的物體很難被檢測出來.RBD算法檢測高對比度的圖像效果都挺好,但是再檢測人的時候出現(xiàn)了多檢,把背景也作為了顯著性物體,并且衣服難以檢測出來.RC算法考慮了對比度,這樣使得高對比度的地方也容易被檢測為顯著性物體,比如狗的圖像的右上角.人的帽子和背景對比度相似,因此沒有檢測出來.MB+和MST算法在第一張和第五章中也出現(xiàn)了檢測多的問題,并且MST算法在第七張中把一個對比度明顯的紅瓶子漏掉了.DRFI算法整體表現(xiàn)的非常好,它通過對很對的特征訓練得到了很好的效果.但是在人的帽子的檢測中也漏掉了.本文算法整體表現(xiàn)較好,并且通過引入深度信息能夠更好的描繪顯著性物體的輪廓.并能夠檢測出和背景相似的帽子.
本文使用三個公開數(shù)據(jù)集來驗證算法.NLPR 數(shù)據(jù)集[8]、NJUD2000 數(shù)據(jù)集[6]以及LFSD 數(shù)據(jù)集[4].NLPR 數(shù)據(jù)集:NLPR RGBD數(shù)據(jù)集包括1000個通過微軟Kinect采集的圖像.NJUD2000 數(shù)據(jù)集:NJUD2000數(shù)據(jù)集包括2000個光影、深度和顯著性標注圖像.深度圖使用光流法得到的.LFSD 數(shù)據(jù)集:LFSD數(shù)據(jù)集包括100個深度和顯著性圖.深度圖通過Lytro光影照相機得到.
本文通過實驗比較七個算法得到的顯著性圖的準確率(Precision)、召回率( recall)、F-measure值(F-score)以及MAE(mean absolute error)平均絕對誤差.這樣能夠直觀的比較幾種算法的效果.
首先把顯著性圖S轉(zhuǎn)化成二值顯著性圖M.二值化在算法評估中是一個重要的步驟,我們使用的是文獻[13]中的方法.通過計算一個閾值來對顯著性圖S進行二值化為M.閾值計算公式如下:
(13)
其中,W、H是圖像的寬和高.
設(shè)為是實際顯著性圖,則準確率(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)的時候出現(xiàn)了分母為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求平均就得到了一種算法在數(shù)據(jù)集中的MAE.MAE反映了最終的顯著性圖和真值圖的差別.越小越好,表明越和真值圖相近.如圖9所示,本文中算法計算出來的顯著性圖,顯著性物體和背景有明顯的區(qū)別所以在MAE上表現(xiàn)比較好.
圖9 MAE柱狀圖Fig.9 MAE histogram
針對顯著性檢測算法中的檢測效果、深度學習算法無法在嵌入式設(shè)備中使用以及很多算法缺乏是使用深度圖信息的問題,本文提出了一種基于區(qū)域聚類RGBD顯著性檢測算法.首先使用超像素算法對圖像分割,然后對分割的算法求取特征向量.再使用多帶寬無參聚類算法對特征向量聚類,然后得到十個帶寬下的顯著性圖.通過神經(jīng)網(wǎng)絡(luò)對顯著性圖進行合并.把最后得到的顯著性圖作為一個新的特征再次重復以上過程.重復十次后得到最終的顯著性圖.通過實驗表明,本算法和其他算法比較,在效果、準確率、召回率、F值以及MAE上都有提高.