馮 策, 薄 中
(中國電子科學(xué)研究院,北京 100141)
深度信息的獲取是機(jī)器視覺中的重要步驟,無人機(jī)的碰撞檢測和傾斜測量、移動設(shè)備的人臉識別等都依賴于對深度圖像的分析。近些年,一些快速、經(jīng)濟(jì)型深度傳感器[1]的誕生,為人機(jī)交互和機(jī)器視覺領(lǐng)域帶來了一系列革命性的變化。由于深度信息與光和物體表面的反射特性無關(guān),所以與傳統(tǒng)圖像相比,深度圖像不受光照變化和陰影的影響。因此,深度圖像更容易表示對象的特征,適合于提高機(jī)器視覺任務(wù)的可靠性和實(shí)時(shí)性。
然而由于采集設(shè)備獲取的深度圖質(zhì)量不高,存在噪聲嚴(yán)重、邊緣缺失等問題,制約了其在工業(yè)領(lǐng)域的應(yīng)用。所以如何改善深度圖的質(zhì)量是本文所要研究的問題。
由傳感器獲取的深度信息主要存在以下三方面問題:
(1)深度圖像的分辨率較低,不及彩色圖像的分辨率;
(2)深度圖像噪聲干擾嚴(yán)重;
(3)深度圖像在物體的邊緣處容易出現(xiàn)缺失,通常是由于一個(gè)像素點(diǎn)所對應(yīng)的場景包含了不同的物體表面所引起的。
在深度圖像優(yōu)化方面,至今已經(jīng)提出了很多算法,文獻(xiàn)[2]聯(lián)合雙邊上采樣方法,是從雙邊濾波法改進(jìn)而來的,但是在引導(dǎo)圖顏色相似的地方會導(dǎo)致深度圖像的模糊,而且圖像質(zhì)量不高。文獻(xiàn)[3]中的聯(lián)合距離變換的方法改進(jìn)了自適應(yīng)核回歸算法,優(yōu)化了深度圖像細(xì)節(jié),但沒有修復(fù)深度圖像缺失。文獻(xiàn)[4]利用多傳感器數(shù)據(jù)融合和多向?yàn)V波器進(jìn)行深度圖像質(zhì)量優(yōu)化,但是需要基于多傳感器組合,系統(tǒng)構(gòu)建復(fù)雜。文獻(xiàn)[5]分別采用不同尺寸的窗體對深度圖像進(jìn)行中值濾波,雖然可以填補(bǔ)不同大小的缺失,但是對邊緣毛糙部分沒有做平滑處理。文獻(xiàn)[6]提出改進(jìn)聯(lián)合雙邊濾波法,引入梯度約束項(xiàng)進(jìn)行圖形優(yōu)化,梯度比色彩具有更強(qiáng)的特征表示能力,引導(dǎo)圖像梯度區(qū)域具有更好的約束作用。因此,針對傳統(tǒng)深度圖像增強(qiáng)算法存在的不足,本文提出了基于局部SVD的深度圖像增強(qiáng)算法,以引導(dǎo)圖像局部協(xié)方差矩陣分解后的奇異值作為增強(qiáng)標(biāo)準(zhǔn),自適應(yīng)的增強(qiáng)圖像,同時(shí)結(jié)合非線性濾波法進(jìn)一步優(yōu)化深度圖像的質(zhì)量。
本文算法的能量函數(shù)是基于引導(dǎo)濾波器的彩色圖像引導(dǎo)模式的,如式(1)所示。引導(dǎo)像濾波是何凱明提出線性保邊濾波算法[7],選取引導(dǎo)濾波法是因?yàn)槠渚哂幸韵聝?yōu)點(diǎn):
(1)線性濾波器,不依賴于濾波核大小,只依賴于像素?cái)?shù)量;
(2)基于窗口的濾波,適用于GPU并行計(jì)算方式;
(3)可以有效抑制圖像噪聲;
(4)邊緣以及細(xì)節(jié)的改善優(yōu)于傳統(tǒng)的保邊濾波算法。
引導(dǎo)濾波器是利用引導(dǎo)圖I來改善圖像p的質(zhì)量,在以像素點(diǎn)k為中心的窗口內(nèi)局部線性變換:
ε‖ak‖2
(1)
ak=(CIp)(CI+εU)-1
(3)
bk=(U-ak)uk
(4)
uk=1/η∑j∈ω(k)Ij
(7)
首先對待處理的深度圖像進(jìn)行鄰域插值,將待處理深度圖p的分辨率插值到與引導(dǎo)圖I相同,然后最小化能量函數(shù),確定線性系數(shù),使得輸出圖像q和輸入圖像I的差別最小。深度圖像包含三種類型的區(qū)域:邊緣區(qū)域、平坦區(qū)域和細(xì)節(jié)區(qū)域。本文主要工作是對細(xì)節(jié)和邊緣區(qū)域進(jìn)行增強(qiáng),濾除平坦區(qū)域的噪聲,改善深度圖像的質(zhì)量。
引導(dǎo)濾波器中,在I=p和ε>0的情況下:
對于“細(xì)節(jié)和邊緣區(qū)域”,也就是梯度值變化較大的窗口ωk,ak趨近于1,bk趨近于0。
通過以上分析,可知引導(dǎo)濾波器在梯度變化較大的區(qū)域,增強(qiáng)效果比較明顯,而在平坦區(qū)域,平滑效果比較明顯。深度圖像中梯度變化較大的區(qū)域,通常是前背景邊界處,但是這一部分在彩色引導(dǎo)圖中的梯度變化可能很小,如圖1(b)所示。因此,在這種區(qū)域,不僅達(dá)不到增強(qiáng)邊緣的效果,還會導(dǎo)致模糊邊緣的問題。
另一方面,在梯度變化較大的區(qū)域,引導(dǎo)圖I與深度圖p會很相似,如果此區(qū)域I的紋理比較復(fù)雜,而此區(qū)域的深度圖像只是一條簡單前背景分界線,濾波后的深度區(qū)域會因?yàn)榻咏贗,而影響深度信息準(zhǔn)確性,導(dǎo)致區(qū)域出現(xiàn)混淆的情況,“混淆”區(qū)域在濾波過程中出現(xiàn)的比較頻繁,是本文重點(diǎn)解決的問題。如圖2(b)所示:
圖1 “模糊”區(qū)域
圖2 “混淆”區(qū)域
總結(jié)起來,面向深度圖像的引導(dǎo)濾波器存在以下兩方面的問題:
(1)彩色引導(dǎo)圖的前景和背景邊緣部分顏色相似,導(dǎo)致濾波后的深度圖像邊緣部分模糊,無法區(qū)分前背景,如圖1所示。
(2)引導(dǎo)濾波器是引導(dǎo)圖像I與濾波輸出q的局部線性濾波器。紋理復(fù)雜的區(qū)域I與p會很相似,因此深度信息會受彩色圖像影響,導(dǎo)致區(qū)域“混淆”,如圖2所示。
由上節(jié)分析可知,系數(shù)ak主要決定濾波圖像的細(xì)節(jié)部分,當(dāng)增大ak值得時(shí)候,邊緣和細(xì)節(jié)部分會得到增強(qiáng),如圖3所示:
圖3 增大ak的效果
本文引入?yún)?shù)α來控制圖像增強(qiáng)的效果,ak變?yōu)椋?/p>
ak=α(CIp)(CI+εU)-1
(8)
隨著α增大,邊緣模糊的部分得到了增強(qiáng),這樣可以解決“模糊”區(qū)域的問題,但缺點(diǎn)是引導(dǎo)圖紋理對于深度信息的影響也會隨之增加,即“混淆”區(qū)域的增強(qiáng),如圖4中方框部分所示。為了解決“混淆”區(qū)域問題,本文引入了SVD分解算法。
SVD分解算法具有良好的穩(wěn)定性和不變性,其分解的奇異值反映數(shù)據(jù)的內(nèi)在屬性,通常用于降低噪聲,主元成份提取(PCA),圖像壓縮的算法,搜索引擎語義層次檢索的LSI。矩陣奇異值分解(SVD)屬于矩陣對角化分解的一種,是針對一般矩陣的對角化分解算法,定義如下。
設(shè)A∈Rm×n,則存在正交矩陣:
U=[u1,…,um]∈Rm×m,V=[v1,…,vn]∈Rn×n
使A=UDVT
U是m*m階酉矩陣,D為m*n階對角矩陣,VT是n*n階酉矩陣。其中:D=diag(s1,s2,s3,…,sn),s1,s2,s3,…,sn為矩陣的奇異值,s1≥s2≥s3…≥sn≥0。
本文將引導(dǎo)圖的局部協(xié)方差矩陣CI進(jìn)行SVD分解:
UDUT=SVD(CI)
(9)
ak變?yōu)椋?/p>
s1,s2,s3為CI的奇異值,代表局部區(qū)域梯度變化度的能量值,能量值越大,梯度變化越大,s1,s2,s3遞減排列,其代表的區(qū)域梯度變化值也呈遞減趨勢。通常情況下,邊緣區(qū)域是梯度變化較大區(qū)域,而混淆區(qū)域是相對邊緣區(qū)域變化稍弱的區(qū)域,因此,本文聯(lián)想到了利用奇異值所反映的屬性來找到混淆區(qū)域,這也是本文算法的關(guān)鍵。
嘗試縮小s2,濾波效果如圖4所示。隨著s2的減小,深度圖像的“混淆”區(qū)域逐漸增強(qiáng)。
圖4 減小s2的效果
由上圖可見,s2是代表CI中混淆部分的奇異值,混淆區(qū)域是濾波過程中想要去除的區(qū)域,這也是本文最為感興趣的部分,因此,可以利用這個(gè)特征來解決區(qū)域“混淆”的問題:
(1) 在s2較大的部分,即混淆的部分,α取較小值,減小“混淆”區(qū)域的增強(qiáng)。在s2較小的部分,即非混淆區(qū)域,α取較大值,增強(qiáng)非混淆區(qū)域。
(2) 增大奇異值s2和s3,削弱混淆和噪聲。
根據(jù)以上分析,本文改進(jìn)濾波模型,式(10)中的α改為自適應(yīng)參數(shù):
α=aexp(-s2τ)
(11)
α的值隨著s2的減小而增大,混淆區(qū)域的s2較大,則α較小。經(jīng)過一組圖片的試驗(yàn),式(11)中的參數(shù)a取3.5, τ取150。
式(10)中的D變?yōu)椋?/p>
(12)
這里參考了ShinshuUniv的算法[8],采用了指數(shù)模型對奇異值進(jìn)行縮放,實(shí)驗(yàn)中β和γ分別取0.8和0.5。
增強(qiáng)后的圖像質(zhì)量得到了改善,但是仍有部分混淆存在,如圖5方框中所示,因此需要進(jìn)一步的優(yōu)化。
圖5 未優(yōu)化的效果
經(jīng)典的保邊濾波算法雙邊濾波法[9],是在高斯濾波的基礎(chǔ)上進(jìn)行的改進(jìn),考慮了距離差異權(quán)重的同時(shí),也考慮到了周圍像素灰度差異權(quán)重。后期出現(xiàn)了聯(lián)合雙邊濾波法[10],聯(lián)合雙邊濾波法的灰度相似性權(quán)重是基于引導(dǎo)圖像進(jìn)行計(jì)算的,而不是基于輸入圖像的。如下式所示:
其中Ip為結(jié)果圖像,Iq為輸入圖像,g為灰度相似權(quán)重,d為幾何相似權(quán)重。
針對深度圖像的特點(diǎn)以及存在的問題,本文對雙邊濾波法進(jìn)行了改進(jìn),具有以下功能:
(1)平滑無用的細(xì)節(jié)和噪聲;
(2)聯(lián)合彩色引導(dǎo)圖對邊緣進(jìn)行優(yōu)化;
(3)填補(bǔ)深度圖像的缺失。
本文采用的聯(lián)合雙邊濾波法是基于Lab顏色空間,權(quán)重因子是三個(gè)通道顏色差值,濾波器模型如下:
空間濾波算法是利用鄰域像素的加權(quán)平均結(jié)果來填充中心像素,但是鄰域中存在無效像素:一種是缺失像素;第二種是與待填充的中心像素不處于同一物體上的鄰域像素。
處于同一物體上的像素可以利用顏色相似的權(quán)重因子來判斷。而缺失像素的灰度值通常較小,因此,可以設(shè)定深度閾值來判定像素的缺失,小于閾值的則為缺失像素,對中心像素?zé)o貢獻(xiàn)。因此,式(14)變?yōu)椋?/p>
(16)
本文基本算法流程如下:
圖6 算法流程圖
(1)根據(jù)引導(dǎo)濾波構(gòu)建算法能量函數(shù);
(2)對引導(dǎo)圖像進(jìn)行局部協(xié)方差矩陣分解;
(3)將得到的奇異值作為能量函數(shù)核心參數(shù)的修正標(biāo)準(zhǔn),自適應(yīng)的優(yōu)化圖像;
(4)最后結(jié)合改進(jìn)聯(lián)合雙邊濾波法進(jìn)一步優(yōu)化深度圖像的質(zhì)量。
在PC機(jī)器上,利用Python實(shí)現(xiàn)了本文提出的算法,計(jì)算機(jī)配置為Intel(R)Core(TM)i7CPU(3.3GHz) 8GB內(nèi)存。實(shí)驗(yàn)數(shù)據(jù)采用了middlebury[11]標(biāo)準(zhǔn)數(shù)據(jù)集。標(biāo)準(zhǔn)數(shù)據(jù)集的彩色圖像分辨率為1376×1088。
為驗(yàn)證本文方法的可行性與有效性, 就本文算法與聯(lián)合雙邊濾波法計(jì)算結(jié)果以及真實(shí)深度圖像進(jìn)行比較。由圖7(a)可見,原圖像分辨率較低,噪聲嚴(yán)重,質(zhì)量較差。經(jīng)過本文本算法優(yōu)化后,深度圖像的質(zhì)量得到有效地改善,如圖7(c)所示。與圖7(b)的聯(lián)合雙邊濾波法結(jié)果進(jìn)行比較,本文算法的結(jié)果更接近于真實(shí)的深度圖像。
圖7 算法效果對比
本文提出了基于局部SVD的深度圖像增強(qiáng)算法,對引導(dǎo)圖像局部協(xié)方差矩陣進(jìn)行SVD分解,并根據(jù)奇異值的大小自適應(yīng)的增強(qiáng)深度圖像,本文算法一方面增強(qiáng)了深度圖像的細(xì)節(jié),另一方面平滑了深度圖像的噪聲,有效地改善了深度圖像的質(zhì)量。在公開測試集上驗(yàn)證本文算法,并與真實(shí)深度信息以及聯(lián)合雙邊濾波法優(yōu)化結(jié)果進(jìn)行了比較,本文算法對于質(zhì)量較差(分辨率低,噪聲嚴(yán)重)的深度圖像優(yōu)化效果較為理想,對于細(xì)節(jié)部分給予了很好的增強(qiáng),但算法的缺點(diǎn)是在窗口尺寸較大的情況下比較耗時(shí)。