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