萬 琴,朱曉林 ,陳國泉,肖岳平
1.湖南工程學(xué)院 電氣與信息工程學(xué)院,湖南 湘潭 411104
2.湖南大學(xué) 機(jī)器人視覺感知與控制技術(shù)國家工程實(shí)驗(yàn)室,長沙 410082
在三維重建[1]、人機(jī)交互(Human-Computer Interaction,HCI)[2]和汽車輔助駕駛[3]等圖像分割、目標(biāo)檢測、物體跟蹤領(lǐng)域中三維深度信息是三維場景信息的重要特征[4]。自微軟公司發(fā)布Kinect體感設(shè)備以來,深度信息的獲取更成為研究熱點(diǎn),深度圖能夠直接反映出場景物體到相機(jī)的距離,但目前三維深度相機(jī)(例如Kinect 和Time of Flight,ToF)獲取的深度圖通常存在分辨率低、深度值缺失和噪聲污染等問題。
到目前為止,獲取深度信息的兩類主要方法[5]:被動方法和主動方法。立體匹配(被動方法)是在多視圖中進(jìn)行對應(yīng)像素點(diǎn)匹配,然后估計像素點(diǎn)的視差求取深度,是獲取深度信息的經(jīng)典方法。該方法不依賴于復(fù)雜的設(shè)備,只需要拍攝雙視圖或多視圖圖像計算估計深度信息,如通過立體匹配[6]和三角測量[7]計算圖像的深度信息,但在實(shí)際應(yīng)用中仍然存在圖像校正算法精度低以及無紋理區(qū)域效率低等問題。與被動方法不同,獲取深度信息的主動方法是通過基于3D飛行時間相機(jī)(例如,3D-ToF[8]、Kinect v2[1])和基于結(jié)構(gòu)光相機(jī)(例如,Kinect v1[4])來實(shí)現(xiàn)動態(tài)場景的深度信息實(shí)時獲取。ToF 相機(jī)可以獲取實(shí)時動態(tài)場景的深度信息,但是存在分辨率低和噪聲干擾等問題。而Kinect 相機(jī)生成的深度圖通常容易產(chǎn)生與深度距離相關(guān)的測量誤差,導(dǎo)致深度不連續(xù)、彩色圖像中邊緣之間的不匹配,以及由于無效測量引起的各種空洞[9]。
針對ToF相機(jī)存在的問題,現(xiàn)有方法主要通過擴(kuò)大空間分辨率和平滑噪聲來進(jìn)行深度修復(fù)[10];而針對Kinect相機(jī)深度不連續(xù)和空洞問題,主要利用丟失的深度值來填充空洞進(jìn)行深度修復(fù)[11],如吳倩等人[12]結(jié)合彩色圖像引導(dǎo)濾波對深度圖進(jìn)一步填充、平滑、去噪。雖然這兩種深度圖的修復(fù)任務(wù)不同,但Yang等人[5]指出這兩種深度圖的退化可以用相同的法則來制定,這意味著ToF深度圖恢復(fù)的大多數(shù)方法也適用于Kinect深度圖恢復(fù)。例如Yang等人[5]的工作可用于ToF和Kinect深度圖恢復(fù)。Park等人[8]的工作提出的ToF深度圖修復(fù)也被證明適用于Kinect深度圖修復(fù)的擴(kuò)展工作[13]。
針對以上兩種深度圖像的修復(fù)問題,國內(nèi)外研究者在不同的研究領(lǐng)域都提出可用于以上深度圖中深度數(shù)據(jù)的優(yōu)化算法。聯(lián)合雙邊濾波(Joint Bilateral Filtering,JBF)[14]和擴(kuò)展雙邊濾波器(Bilateral Filtering,BF)[15]可有效用于深度圖修復(fù),基于彩色圖像引導(dǎo)設(shè)定雙邊權(quán)重,但忽略了深度圖像的邊緣信息/紋理信息。在基于方向的聯(lián)合雙邊濾波器的基礎(chǔ)上,文獻(xiàn)[16]將深度數(shù)據(jù)的時間相關(guān)性和空間相關(guān)性進(jìn)行結(jié)合,提高深度數(shù)據(jù)修復(fù)效果,深度圖像質(zhì)量明顯提高;文獻(xiàn)[17]提出融合超像素的自適應(yīng)濾波窗口,定性定量地對深度圖進(jìn)行修復(fù)和優(yōu)化。但以上研究工作由于沒有充分考慮彩色紋理信息,容易產(chǎn)生紋理偽像和深度不連續(xù)性問題。而由于深度圖的待修復(fù)區(qū)域主要分布在發(fā)生遮擋區(qū)域和無紋理區(qū)域,其他區(qū)域是單獨(dú)的小噪聲像素,聯(lián)合雙邊濾波器[14]窗口尺寸大小固定,小尺寸窗口處理大空洞區(qū)域效果有限,采用大尺寸窗口則會增加算法的處理時間,造成邊緣模糊和紋理偽像。
針對上述研究中深度圖修復(fù)存在邊緣模糊、紋理偽像以及耗時長等問題,本文提出一種基于深度置信度的分層聯(lián)合雙邊濾波深度圖修復(fù)算法,總體框架圖如圖1所示。首先提出RGB-D 相機(jī)深度退化模型;其次對獲取的深度圖進(jìn)行深度像素置信度分類,然后在聯(lián)合雙邊濾波的基礎(chǔ)上結(jié)合深度置信度測量機(jī)制提出分層聯(lián)合雙邊濾波;最后進(jìn)行定性對比實(shí)驗(yàn)和定量結(jié)果分析表明,本文算法提高了深度圖修復(fù)的邊緣保持效果和深度值連續(xù)性,能進(jìn)一步獲取高精度的三維深度圖。
圖1 算法總體框架圖
雖然RGB-D 傳感器技術(shù)的發(fā)展迅速,但獲取的三維深度信息精度不高。Kinect 深度圖可能會隨機(jī)丟失深度數(shù)據(jù),而ToF深度圖經(jīng)常會出現(xiàn)分辨率低和噪聲污染退化問題,導(dǎo)致觀測的深度圖比深度真實(shí)圖像素數(shù)少。故針對最常見的隨機(jī)深度缺失和結(jié)構(gòu)性深度缺失兩種退化形式,建立了深度退化模型如下。
假設(shè)I和I0分別表示深度信息實(shí)際值(Ground Truth)和深度相機(jī)設(shè)備捕獲的深度圖,深度退化模型可以表示為:
式中,P表示觀測矩陣,n是隨機(jī)產(chǎn)生的噪聲。觀測矩陣P在不同類型的深度相機(jī)設(shè)備、不同的場景環(huán)境中采用不同的矩陣形式。
為了能提高深度修復(fù)的處理速度和精度,本文在深度圖退化模型的基礎(chǔ)上進(jìn)一步提出深度置信度測量。但是通常深度圖中大多數(shù)像素是具有高置信度可正常獲取的像素,確定強(qiáng)大而有效的置信度分類度量,能極大地提高置信度測量的穩(wěn)定性和精確性。深度像素的置信度測量主要是通過左右一致性[18](Left Right Consistency,LRC)檢查進(jìn)行判斷,參考文獻(xiàn)[18]主要是通過單個像素之間進(jìn)行LRC 計算,忽略了深度像素之間的關(guān)聯(lián)性。本文方法結(jié)合感興趣空洞區(qū)域窗口化和深度像素范圍搜索特點(diǎn),提出深度像素鄰域化計算LRC。為提高算法的魯棒性和精確性,將單個像素之間的LRC計算擴(kuò)展至鄰域大小為3×3。Pi( )x,y,d表示深度值為d的一個像素,PR( )xR,y,dR表示Pi像素右鄰域的像素,同樣PL( )xL,y,dL表示Pi像素左鄰域的像素,左右一致性LRC可以被定義為:
式中計算得到的CLRC小于預(yù)先設(shè)定的閾值時被判定為高置信度像素;大于預(yù)先設(shè)定的閾值時被判定為低置信度像素;當(dāng)CLRC大于閾值?maxLRC認(rèn)定為被遮擋像素。圖2是深度置信度測量流程框架圖,通過引入深度置信度測量機(jī)制,對待修復(fù)深度像素進(jìn)行置信度大小分類,區(qū)分出了高置信度像素、低置信度像素、被遮擋像素,有利于提高后續(xù)深度修復(fù)速度和精度。
圖2 深度置信度測量流程框架圖
本文通過置信度測量機(jī)制從高置信度像素到低置信度像素的方式對需修復(fù)的深度圖進(jìn)行處理。生成深度置信度用于后續(xù)聯(lián)合雙邊濾波處理,動態(tài)估計深度像素的權(quán)重。提出的分層聯(lián)合雙邊濾波算法重點(diǎn)關(guān)注低置信度和被遮擋的像素,在聯(lián)合雙邊濾波基礎(chǔ)上結(jié)合置信度分層機(jī)制,提高像素級別的深度修復(fù)的上下文適應(yīng)性。
設(shè)p表示濾波圖像J的一個像素,則雙邊濾波器可表示為:
式中,q是p的鄰域 Ω 中的像素,當(dāng)像素q和p之間的空間距離增加時,兩個內(nèi)核計算的權(quán)重會取較小的值,不同的相鄰像素被空間距離分開,可以很好地保留圖像邊緣。
但雙邊濾波器的權(quán)重值并不穩(wěn)定,在邊緣區(qū)域?yàn)V除噪聲能力弱,為了改善雙邊濾波器的穩(wěn)定性問題,通過使用空間近似度σS和亮度相似度σR計算相鄰像素的權(quán)重值,并通過加權(quán)平均值對缺失像素進(jìn)行插值。設(shè)D和d分別表示上采樣深度圖和給定的低分辨率深度圖。然后根據(jù)下式計算深度圖中的p位置處的深度值:
式中,j是相鄰像素的像素索引號,qj是相鄰像素對應(yīng)位置,dqj是qj處像素的深度值。式(5)的權(quán)重值H表示為:
式中,Ip和Iqj分別是p和qj處的顏色強(qiáng)度。參數(shù)σS和σR分別調(diào)整空間相似度和亮度相似度來改變權(quán)重值。
由于聯(lián)合雙邊濾波只是通過空間相似度σS和亮度相似度σR設(shè)置變化的權(quán)重值,并未改變不同深度像素之間以及像素鄰域之間的權(quán)重值。分層聯(lián)合雙邊濾波在引入深度像素分類機(jī)制的基礎(chǔ)上,通過空間相似度σS和像素鄰域化關(guān)聯(lián)重新定義像素的權(quán)重。分層濾波器窗口尺寸范圍內(nèi)的像素權(quán)重值一般有多種方式表示,例如有相距中心像素的距離[4]、基于預(yù)先設(shè)置的比例函數(shù)[13]等。為了簡化算法處理和提高算法的處理效率,本文通過比例函數(shù)將高置信度深度像素的濾波器窗口權(quán)重值設(shè)置為1,則分層聯(lián)合雙邊濾波的權(quán)重值Q(?)定義為:
式中,L是距濾波器中心像素的距離,在深度置信度測量機(jī)制的基礎(chǔ)上,對不同置信度的深度像素計算相應(yīng)的權(quán)重。用Di表示第i個濾波器窗口的深度值,Ii表示輸入的待修復(fù)彩色圖,則本文設(shè)計的分層聯(lián)合雙邊濾波器可以表示為:
其中,Wi是第i個濾波器窗口的加權(quán)函數(shù):
式(9)中GσR采用高斯核形式計算:
置信度像素的權(quán)重值分配在分層濾波方法中起著重要作用,公式(7)對原始深度圖像中的高置信度像素分配高權(quán)重;低置信度像素分配零權(quán)重,可以抑制濾波器窗口中的異常值。
圖3 Art、Moebius和Aloe深度圖修復(fù)對比
整個算法實(shí)現(xiàn)可以分為以下幾個步驟:
輸入:RGB-D傳感器獲取深度圖。
輸出:本文算法修復(fù)后的深度圖。
步驟1針對當(dāng)前深度圖for eachp∈D(p)do。
步驟2在已有的深度退化模新的基礎(chǔ)上,計算深度像素的左右一致性CLRC(式(2))。
步驟3設(shè)定像素置信度分類的閾值、,將深度像素分成三種類別。
步驟4結(jié)合深度像素置信度分類機(jī)制,確定分層聯(lián)合雙邊濾波的權(quán)重值Q(?),并同時選擇相應(yīng)的filter_size(式(7)和式(11))。
步驟5根據(jù)當(dāng)前像素類別、權(quán)重值、filter_size,對不同置信度類別的深度像素采用分層聯(lián)合濾波進(jìn)行深度修復(fù),獲得高質(zhì)量、高分辨率的深度圖(式(8)~(10))。
為驗(yàn)證本文所提出的深度修復(fù)算法的有效性,實(shí)驗(yàn)選取Middlebury標(biāo)準(zhǔn)數(shù)據(jù)庫[5]的Art、Moebius和Aloe深度圖和實(shí)驗(yàn)室拍攝采集的數(shù)據(jù)庫在PC機(jī)上進(jìn)行深度圖修復(fù)仿真,將本文算法同BF[15]、JBF[14]、JABDU[19](Joint Adaptive Bilateral Depth map Upsampling)的修復(fù)效果進(jìn)行對比。為了保證實(shí)驗(yàn)仿真的可對比性,將BF 和JBF 的方差參數(shù)設(shè)為σS=3 ,σR=0.5 ,表1 是本文算法參數(shù)值;由于小窗口填充大空洞效果不好,大窗口不能較好地保留邊緣細(xì)節(jié)信息,將濾波窗口大小統(tǒng)一設(shè)為5×5。實(shí)驗(yàn)結(jié)果證明所有方法都能正確有效地平滑小噪聲區(qū)域。然而當(dāng)涉及到大范圍空洞區(qū)域時,這四種方法表現(xiàn)出不同的性能,但采用本文算法進(jìn)行深度修復(fù)過的深度圖邊緣更加清晰合理,基本上不存在邊緣模糊和紋理偽像,提高了深度圖修復(fù)精度。
采用Middlebury標(biāo)準(zhǔn)數(shù)據(jù)庫提供的Art、Moebius和Aloe 深度圖進(jìn)行評估和模擬Kinect 退化模型的深度修復(fù)的效果,并將本文算法同BF、JBF、JABDU 的修復(fù)效果進(jìn)行對比。如圖3(a)和(b)所示為數(shù)據(jù)集的彩色圖和原深度圖,分辨率為數(shù)據(jù)集的半尺寸x×5551Middlebury數(shù)據(jù)集提供三種分辨率:全尺寸(寬度:1 240…1 396,高度:1 110)、半尺寸(寬度:620…698,高度:555)和第三種尺寸(寬度:413…465,高度:370)。;經(jīng)BF 算法和JBF算法修復(fù)處理的深度圖分別如圖3(c)和(d)所示,雖然能有效處理小噪聲、小空洞區(qū)域和較好保留邊緣信息,但物體的輪廓邊緣模糊,產(chǎn)生紋理偽像;對比圖3(e)和(f)的深度修復(fù)效果,本文算法在整體深度修復(fù)處理上優(yōu)于前三種算法,提高了深度數(shù)據(jù)修復(fù)效果,深度圖像質(zhì)量明顯提高。用紅色矩形框突出深度修復(fù)明顯區(qū)域,為了進(jìn)一步體現(xiàn)本文算法的優(yōu)勢,圖4 是四種算法深度修復(fù)的局部采樣放大圖,分別采樣180×110和140×165的修復(fù)區(qū)域進(jìn)行局部放大。以Art深度圖為例,重點(diǎn)關(guān)注筆桿和杯把手邊緣交叉處和黑色的木棍。為了更好進(jìn)行視覺比較,同時根據(jù)深度退化模型的不同觀測矩陣P計算均方誤差MAE,圖5是相應(yīng)的誤差圖,本文方法在邊緣的深度連續(xù)性表現(xiàn)更好,產(chǎn)生的誤差低于其他方法。實(shí)驗(yàn)結(jié)果表明本文算法能夠有效去除噪聲和空洞,同時具有局部自適應(yīng)能力,得到光滑的邊緣和避免產(chǎn)生邊緣模糊。
表1 算法參數(shù)表
圖4 Art深度圖局部采樣放大對比
圖5 Art深度圖的誤差圖對比
為了量化深度圖的修復(fù)效果,引入峰值信噪比(Peak Signal Noise Ratio,PSNR)和均方根誤差(Root Mean Square Error,RMSE)兩個修復(fù)效果的客觀評價指標(biāo)。將本文四種算法計算結(jié)果同文獻(xiàn)[5]的自回歸(Auto-Regressive,AR)模型進(jìn)行對比,圖6 是基于Middlebury數(shù)據(jù)集的RMSE值對比,本文算法在Art、Moebius和Aloe深度圖進(jìn)行修復(fù)后將RMSE值降低5倍以上,并且本文算法在三張測試圖像的RMSE值平均值為3.73,低于魯棒RMSE 參考值5,具有魯棒的修復(fù)性能。特別是對前景和背景顏色相似的Aloe深度圖也具有不錯的修復(fù)效果,將原始輸入的RMSE值從30.16減少至6.82。圖7是基于Middlebury數(shù)據(jù)集的PSNR值對比,PSNR為圖像抗噪質(zhì)量評價指標(biāo),數(shù)值越大表示深度圖失真越小。實(shí)驗(yàn)數(shù)據(jù)圖可以看出,本文算法在Middlebury數(shù)據(jù)集上量化評價指標(biāo)優(yōu)于其他四種算法,且本文算法的PSNR值均高于參考值55,因此本文所提算法對深度圖的修復(fù)具有整體優(yōu)良性,提高了深度圖修復(fù)精度。
圖6 基于Middlebury數(shù)據(jù)集的RMSE值對比
圖7 基于Middlebury數(shù)據(jù)集的PSNR值對比
同時針對ToF 相機(jī)獲取深度圖存在噪聲干擾的問題,本文模擬ToF 深度退化,將方差為σ=5 的高斯噪聲加到Middlebury原始數(shù)據(jù)集Books和Dolls上,如圖8(d)和(e)所示是JBF和本文算法處理ToF深度退化對比圖,可見本文方法具有更好的去噪能力。為了更好地展示本文算法的結(jié)果,圖9為通過BF、JBF、JABDU和本文方法在進(jìn)行4 倍上采樣時深度修復(fù)。通過兩種修復(fù)方法(BF和JBF)恢復(fù)的深度圖仍然包含大量重復(fù)噪聲,例如馴鹿的耳朵處,本文的方法能夠有效消除上采樣中的噪聲,同時避免帶來新噪聲。Yang等人[5]指出這兩種深度圖的退化可以用相同的算法法則來修復(fù),本文算法同樣可用于ToF和Kinect深度圖恢復(fù),以及處理隨機(jī)深度缺失和結(jié)構(gòu)性深度缺失兩種退化問題,可有效提高深度圖的質(zhì)量。
圖8 Books和Dolls ToF深度修復(fù)圖
圖9 帶高斯噪聲4倍上采樣深度修復(fù)對比
為進(jìn)一步比較各深度圖修復(fù)算法的時間復(fù)雜度,采用算法運(yùn)行時間進(jìn)行量化比較,結(jié)果如表2和表3所示。本文算法在Kinect退化下的平均運(yùn)行時間為14.23 ms,對比基于BF、JBF、JABDU深度圖修復(fù)算法的運(yùn)行時間分別減少29.71 ms、19.73 ms、5.27 ms。本文算法在ToF退化下最快運(yùn)行時間為9.82 ms,平均運(yùn)行時間為10.51 ms。實(shí)驗(yàn)結(jié)果表明,對比其他3 種算法針對5 種圖像的運(yùn)行時間均減少,本文算法在深度圖修復(fù)的運(yùn)行時間上具有明顯優(yōu)勢。
表2 Kinect退化各深度修復(fù)算法運(yùn)行時間對比ms
表3 ToF退化各深度修復(fù)算法運(yùn)行時間對比 ms
基于結(jié)構(gòu)光的微軟Kinect v1 RGB-D傳感器設(shè)備,配有彩色攝像頭和深度傳感器(紅外發(fā)射攝像頭和紅外接收攝像頭)能實(shí)時動態(tài)獲取相同分辨率640×480的圖像對(彩色圖和與之對應(yīng)的深度圖),通過右手傳感器坐標(biāo)系定義Kinect面向的方向?yàn)檎齔方向,右側(cè)方向被定義為正X方向。在相同視角獲取尺寸為640×480 的深度圖和彩色圖,圖10 中(a)和(b)分別是Kinect v1 采集的彩色圖和深度圖,其中(c)和(d)分別是JBF和本文算法修復(fù)效果的對比。表4 是兩種算法在RMSE 值和PSNR值的對比,深度圖的RMSE值減少將近6倍,本文算法的修復(fù)效果明顯優(yōu)于JBF算法,在綠色框區(qū)域?qū)ξ矬w邊緣效果保持效果更好,基本上不存在紋理偽像,可有效提高深度圖的質(zhì)量。圖11 比較了選擇不同參數(shù)L分別做2倍、4倍、8倍采樣時RMSE值。實(shí)驗(yàn)表明,使用濾波器中心像素距離為5(L=5)進(jìn)行深度圖修復(fù)在自采數(shù)據(jù)上效果最理想,同時并非所有的小尺寸濾波器窗口L=3 都有利于深度不連續(xù)性的修復(fù),大空洞區(qū)域需要大尺寸濾波器窗口進(jìn)行修復(fù)。
表4 不同算法數(shù)據(jù)對比
圖10 Kinect v1采集深度圖修復(fù)
圖11 不同參數(shù)L 的RMSE值對比
本文針對RGB-D 傳感器獲取深度信息存在分辨率低、深度值的缺失和噪音污染等問題,提出一種基于深度置信度的分層聯(lián)合雙邊濾波深度圖修復(fù)算法,通過基于深度信息獲取存在的問題提出相應(yīng)的深度退化模型,再采用深度置信度測量對深度像素進(jìn)行置信度分類,根據(jù)深度置信度確定濾波器窗口權(quán)重值,最后利用提出的分層聯(lián)合雙邊濾波算法對修復(fù)區(qū)域完成深度圖修復(fù)。將本文算法同其他三種算法的修復(fù)效果進(jìn)行實(shí)驗(yàn)對比,通過RMSE 和PSNR 值定量分析修復(fù)效果,不同數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明本文算法在邊緣保持效果、深度值連續(xù)性上更有整體優(yōu)良性,提高了深度圖修復(fù)精度。
本文對單幀深度圖進(jìn)行深度修復(fù)有了一定的成果,通過定義不同像素的權(quán)重以及置信度像素的權(quán)重值分配機(jī)制,降低了深度圖的RMSE 值,提高了PSNR 值。但是,該算法對于前景背景顏色相似的深度圖修復(fù)以及同色不同距離的空洞處理效果還存在不足,希望下一步研究工作在這一方面尋求突破,同時后期的研究工作將進(jìn)一步改進(jìn)算法將其應(yīng)用于三維場景建模及三維目標(biāo)檢測識別。