孟 恬 全紅艷
(華東師范大學(xué)計(jì)算機(jī)科學(xué)與軟件工程學(xué)院 上海 200062)
?
基于快速行進(jìn)算法的深度圖像增強(qiáng)算法
孟 恬 全紅艷
(華東師范大學(xué)計(jì)算機(jī)科學(xué)與軟件工程學(xué)院 上海 200062)
由于Kinect設(shè)備采集的深度圖像存在空洞,傳統(tǒng)的算法無法對(duì)空洞進(jìn)行有效地填充,針對(duì)這一問題研究了一種基于快速行進(jìn)FMM(Fast Marching Method)的深度圖像增強(qiáng)算法。該算法首先將彩色圖像作為輸入,計(jì)算各像素與鄰域像素的多尺度結(jié)構(gòu)相似性MSSIM(Multiple-Scale Structural Similarity);然后利用MSSIM構(gòu)造擴(kuò)散函數(shù),通過改進(jìn)的FMM算法,估計(jì)深度圖像空洞區(qū)域像素的深度信息;最后為了突出深度圖像中物體邊緣信息,采用改進(jìn)的引導(dǎo)濾波算法對(duì)修復(fù)后的深度圖像進(jìn)行增強(qiáng),使得修復(fù)的深度圖像具有保持邊緣的特性。實(shí)驗(yàn)結(jié)果表明,該算法可以準(zhǔn)確地填補(bǔ)深度圖像的空洞,并且能夠有效地保持物體邊緣細(xì)節(jié),解決了Kinect設(shè)備采集中存在深度圖像空洞問題,并能促進(jìn)三維重建技術(shù)的研究及應(yīng)用。
深度圖 空洞 FMM MSSIM 擴(kuò)散函數(shù) 自適應(yīng) 引導(dǎo)濾波
近年來,微軟公司研究了體感捕獲設(shè)備Kinect,利用該設(shè)備可以獲取包括RGB彩色圖像和深度圖像的樣本,為三維重建問題提供了一種便捷的解決方案。然而,由于測(cè)量時(shí)場(chǎng)景光照變化等原因,使采集的深度圖像出現(xiàn)空洞現(xiàn)象[1],導(dǎo)致人們?cè)谘芯恐胁荒艿玫嚼硐氲娜S重建結(jié)果。因此對(duì)于深度圖像中的空洞問題,研究人員展開了一系列的研究,并取得了一定的進(jìn)展。文獻(xiàn)[2]利用高斯濾波的方法進(jìn)行空洞修復(fù),雖然可以對(duì)空洞進(jìn)行修復(fù),但是只考慮了像素的位置信息,沒有考慮邊緣像素的特殊性,從而造成圖像中物體邊緣信息的丟失。為了彌補(bǔ)高斯濾波方法的不足,文獻(xiàn)[3]提出了雙邊濾波修復(fù)方法,該方法同時(shí)考慮了像素的位置信息和像素的灰度信息,相比高斯濾波修復(fù)方法,雙邊濾波修復(fù)方法可以保持物體邊緣細(xì)節(jié)。但是該方法完全根據(jù)深度圖像計(jì)算濾波的權(quán)值,這將無法填充較大面積的空洞。文獻(xiàn)[4]在雙邊濾波修復(fù)方法的基礎(chǔ)上,根據(jù)彩色圖像計(jì)算得到像素差值的權(quán)值,提出了聯(lián)合雙邊濾波的空洞修復(fù)方法。由于其計(jì)算得到的權(quán)值不是最佳的,雖然能夠修復(fù)圖像中的較大空洞,但修復(fù)后圖像物體邊緣尚不清晰,且計(jì)算比較復(fù)雜。
針對(duì)上述問題,本文提出了一種基于FMM的深度圖像增強(qiáng)算法,較好地解決了上述問題。
本文提出的算法基本思路是:將彩色圖像作為輸入,求解每個(gè)像素點(diǎn)和N×N鄰域像素的MSSIM值,利用像素的MSSIM構(gòu)造擴(kuò)散函數(shù),通過改進(jìn)的FMM算法對(duì)深度圖像空洞進(jìn)行填充,最后對(duì)修復(fù)后的深度圖像采用改進(jìn)的引導(dǎo)濾波算法進(jìn)行增強(qiáng),得到最終增強(qiáng)的深度圖像。本文算法框架如圖1所示。
圖1 基于FMM的深度圖像增強(qiáng)算法框架
1.1 多尺度結(jié)構(gòu)相似性
一幅圖像中像素之間都有很強(qiáng)的相關(guān)性,特別是空域中鄰近的像素,這種相關(guān)性蘊(yùn)含著視覺場(chǎng)景中物體結(jié)構(gòu)的重要信息[5]。結(jié)構(gòu)相似性SSIM(Structural Similarity)是用來衡量?jī)煞鶊D像相似性的指標(biāo)。對(duì)于SSIM是主要是從亮度、對(duì)比度、以及結(jié)構(gòu)3個(gè)方面衡量原圖像X與對(duì)應(yīng)的失真圖像Y之間的相似程度。為了獲取X和Y的結(jié)構(gòu)相似性,首先將原圖像X和失真圖像Y劃分成若干個(gè)像素塊,然后計(jì)算參考圖像的第i個(gè)分塊xi與失真圖像的第i個(gè)分塊yi之間的結(jié)構(gòu)相似度SSIM(xi,yi),表達(dá)式如下所示:SSIM(xi,yi)=[l(xi,yi)]α·[c(xi,yi)]β·[s(xi,yi)]γ
(1)
其中亮度比較函數(shù)l(xi,yi)、對(duì)比度比較函數(shù)c(xi,yi)、以及結(jié)構(gòu)比較函數(shù)s(xi,yi)表示分別如下:
(2)
(3)
(4)
其中uxi和uyi分別是xi與yi中像素的均值,σxi和σyi分別是xi與yi中像素的方差,σxiyi是xi與yi像素的協(xié)方差。C1、C2、C3分別是保證分母非零的常數(shù),用來防止分母等于或太接近0,其中α、β、γ分別是三個(gè)比較函數(shù)的重要性因子,均大于0。
本文算法將結(jié)構(gòu)相似性的適用范圍進(jìn)行了改進(jìn)。將它應(yīng)用在一副圖像中的兩個(gè)像素點(diǎn)上,如圖2所示,將一副彩色圖像作為輸入,定義p點(diǎn)為N×N鄰域像素塊的中心像素,qi(iN×N-1)為p的鄰域像素。它的N×N鄰域像素塊為Bi。分別求解以p為中心的像素塊B1和以qi為中心的圖像塊Bi的結(jié)構(gòu)相似性SSIM(p,qi),其中p點(diǎn)鄰域表示如圖2所示。
圖2 p點(diǎn)與鄰域的表示
定義p點(diǎn)與鄰域的多尺度結(jié)構(gòu)相似性MSSIMp,求解公式如下:
(5)
將求解的MSSIMp作為衡量p點(diǎn)與鄰域像素的相似程度。
1.2 改進(jìn)的FMM算法
圖3 FMM算法圖像修補(bǔ)示意圖
像素深度估計(jì)公式如下:
(6)
其中,qi是p點(diǎn)的鄰域像素,Dqi表示qi點(diǎn)的深度,▽Dq代表像素點(diǎn)qi的梯度,w(p,qi)用來衡量p點(diǎn)與鄰域像素qi相似程度。
由于深度圖像相比于彩色圖像,信息量比較少,因此,可以利用彩色圖像的顏色相似項(xiàng)對(duì)深度圖像進(jìn)行估計(jì)??紤]到彩色圖像的在深度填充過程中起引導(dǎo)作用,本文對(duì)傳統(tǒng)的FMM算法在兩方面分別進(jìn)行了改進(jìn):
1) 將彩色圖像的顏色和像素的多尺度結(jié)構(gòu)相似性引入到式(6)的權(quán)重項(xiàng)w(p,qi)的設(shè)計(jì)中。
2) 利用彩色圖像像素的多尺度結(jié)構(gòu)相似性,通過自適應(yīng)調(diào)整距離圖T,引導(dǎo)深度圖像進(jìn)行空洞填充,即在空洞的邊緣區(qū)域減緩圖像的修補(bǔ),在深度圖像空洞的平滑區(qū)域,加快深度圖像的修補(bǔ)。
針對(duì)改進(jìn)辦法1),本文首先利用彩色圖像,結(jié)合雙邊濾波的設(shè)計(jì)方式,將w(p,qi)設(shè)計(jì)為三個(gè)權(quán)重因子的乘積。三個(gè)權(quán)重因子分別由空間距離項(xiàng)wdst(p,qi),顏色相似項(xiàng)wclr(q,qi),以及結(jié)構(gòu)相似項(xiàng)wMSSIM(p,qi)組成,表達(dá)式如下:
w(p,qi)=wdst(p,qi)·wclr(p,qi)·wMSSIM(p,qi)
(7)
(8)
(9)
(10)
(11)
為了獲得需要填充的空洞像素點(diǎn),首先根據(jù)式(11)和已知的擴(kuò)散函數(shù)Fp,求解距離圖T,然后根據(jù)空洞像素的T值來判斷空洞填充過程中像素點(diǎn)的填充次序。最后選擇T值最小的像素利用式(6)進(jìn)行深度估計(jì)。對(duì)于式(11)中的擴(kuò)散函數(shù)的定義如下:
(12)
其中GMSSIM表示對(duì)圖像所有像素的MSSIM進(jìn)行高斯濾波的函數(shù)。假設(shè)p點(diǎn)的坐標(biāo)為(x,y),根據(jù)文獻(xiàn)[7]提出的方法對(duì)式(11)進(jìn)行求解。
(13)
其中:
(14)
(15)
算法1:改進(jìn)的FMM算法1:?Ω是待修補(bǔ)區(qū)域的邊緣,p是待修補(bǔ)的空洞像素2:while?Ω不為空且空洞個(gè)數(shù)num不等于03: p(x,y)←Head(Band);4:for(m,n)in(x+1,y),(x,y+1),(x-1,y),(x,y-1)5:ifflag(m,n)不等于KNOW6:ifflag(m,n)等于INSIDE7:flag(m,n)←BAND8:inpaint(m,n)9:endif10:F(m,n)←-11+‖GMSSIM(m,n)‖211:T(m,n)←min(Solve(x-1,y,x,y-1),12:Solve(x-1,y,x,y+1),13:Solve(x+1,y,x,y-1),14:Solve(x+1,y,x,y+1))除以F(m,n)15:Insert(m,n)inBand;16:endif17:endfor18:endwhile
首先將像素分為三類,BAND表示δΩ上的像素; KNOWN表示δΩ外部不需要修復(fù)的像素;INSIDE表示δΩ內(nèi)部等待修復(fù)的像素。p表示待填充的像素,Band是自定義的數(shù)據(jù)結(jié)構(gòu),用來存放p的鄰域像素pi,并且按照像素的T值升序排列。Head函數(shù)用來提取T值最小的像素。Inpaint函數(shù)采用式(6)的方法進(jìn)行填充。Solve函數(shù)利用文獻(xiàn)[7]提出的方法求解。
根據(jù)圖4可以看出,傳統(tǒng)的FMM算法沒有結(jié)合彩色圖像的多尺度結(jié)構(gòu)相似性進(jìn)行指導(dǎo),在物體邊緣區(qū)域填充不準(zhǔn)確,而本文提出的方法卻可以有效地保持物體邊緣信息。
(a) 原始深度圖 (b) 傳統(tǒng)FMM結(jié)果 (c) 本文結(jié)果圖4 空洞填充對(duì)比結(jié)果
1.3 改進(jìn)的引導(dǎo)濾波算法
通過改進(jìn)的FMM算法,使得每一個(gè)待修補(bǔ)區(qū)域的像素都得到一個(gè)適當(dāng)?shù)纳疃戎?。但是,修?fù)的深度圖中部分空洞區(qū)域仍然存在噪聲,因此,為了增加空洞像素點(diǎn)深度值的精度,本文采用改進(jìn)的引導(dǎo)濾波算法對(duì)填充的深度圖像進(jìn)行增強(qiáng)。引導(dǎo)圖像的濾波原理如圖5所示。
圖5 引導(dǎo)濾波流程示意圖
將彩色圖像I作為引導(dǎo)圖像,將修復(fù)后深度圖像p作為待濾波圖像,輸出圖像為q,定義Wk是以像素i為中心并且窗口半徑大小為K的鄰域,假設(shè)在該窗口中滿足以下局部線性模型:
qi=akIi+bk?i∈wk
(16)
其中ak與bk均為窗口Wk中的常量,對(duì)式(16)兩邊進(jìn)行求導(dǎo),結(jié)果如下:
▽q=a▽I
(17)
可以看出,引導(dǎo)圖像I和輸出圖像q之間的梯度成正比,因此,求解濾波的結(jié)果,其實(shí)就是令窗口Wk內(nèi)的能量函數(shù)最小,定義公式如下所示:
(18)
其中,ε為規(guī)整化因子,用來防止系數(shù)ak過大。對(duì)式(18)采用最小二乘法進(jìn)行求解結(jié)果如下:
(19)
(20)
由于傳統(tǒng)的引導(dǎo)濾波對(duì)不同的窗口采用相同的規(guī)整化因子ε,卻沒有考慮不同窗口中像素間的差異性。對(duì)于深度圖像的邊緣區(qū)域,由于式(18)中a的值比較大,因此需要比較小的ε進(jìn)行調(diào)節(jié),對(duì)于平滑區(qū)域,則需要比較大的ε進(jìn)行調(diào)節(jié)。由于邊緣區(qū)域像素點(diǎn)的MSSIM比較小,平滑區(qū)域像素點(diǎn)的MSSIM比較大,因此,利用邊緣區(qū)域和平滑區(qū)域MSSIM的差異性,可以實(shí)現(xiàn)自適應(yīng)調(diào)整,并且可以增強(qiáng)算法的魯棒性。
(21)
相對(duì)于原始的引導(dǎo)濾波,ak由于受到i點(diǎn)MSSIMi的調(diào)節(jié),會(huì)使結(jié)果更加的穩(wěn)定,并且修復(fù)的圖像能夠更好地保持物體邊緣。
我們運(yùn)用本文提出的算法, 在Windows 7操作系統(tǒng)的PC機(jī)上進(jìn)行實(shí)驗(yàn),硬件配置是1.80 GHz Inter? CoreTMi5-3337U CPU、4 GB RAM。實(shí)驗(yàn)平臺(tái)是VS2010,使用C++編程實(shí)現(xiàn)。在本文實(shí)驗(yàn)求解像素的MSSIM時(shí),設(shè)定的求解窗口大小為3×3。
為驗(yàn)證本文方法的可行性與有效性,實(shí)驗(yàn)分別采用Kinect獲取的深度數(shù)據(jù)以及Middlebury[9]庫提供的teddy,Reindeer, Lampshadel數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。Kinect采集的深度圖像分辨率為640×480,彩色圖像的分辨率為1 280×1 024,實(shí)驗(yàn)前,首先對(duì)Kinect進(jìn)行標(biāo)定使得采集的深度圖像和彩色圖像對(duì)齊。Middlebury庫提供的teddy,Reindeer, Lampshade數(shù)據(jù)集的分辨率分別為688×544、344×272、172×136。
2.1 實(shí)驗(yàn)1
本文利用Middlebury庫中提供的Art、Book、Moebius數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),并與聯(lián)合雙邊濾波(JBF)[10],自適聯(lián)合雙邊濾波(NAFDU)[11],基于MRF插值算法(MRFs)[12]算法進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)過程中,對(duì)不同的數(shù)據(jù)集,使用不同的采樣倍數(shù)將獲得不同的最小均方差值。表1是本文實(shí)驗(yàn)方法和真實(shí)實(shí)驗(yàn)的數(shù)值之間的最小均方誤差,即MSE值。
表1 最小均方誤差對(duì)比(MSE)
通過表1可以看出,采樣倍數(shù)越小,求解的最小均方差值越小,并且本文算法MSE值明顯低于MRFs、JBF,以及NAFDU方法求解的MSE值。并且從而證明了本文算法的可行性。
為了進(jìn)一步驗(yàn)證本文算法的可行性,利用數(shù)據(jù)庫中的Reindeer進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖6所示。從圖6可以看出聯(lián)合雙邊濾波,以及MRFs算法均在物體邊緣處存在很多“毛邊”。這是因?yàn)楫?dāng)深度圖邊緣像素的深度值相差不大時(shí),僅僅依靠彩色圖像的顏色進(jìn)行約束,會(huì)使得物體邊緣處的出現(xiàn)邊緣擴(kuò)散現(xiàn)象。雖然NAFDU算法雖然解決了以上問題,但是使用該方法填充后的深度卻在邊緣處存在過平滑現(xiàn)象。而使用本文算法填充的深度圖像有效地解決了以上方法出現(xiàn)的邊緣擴(kuò)散和過平滑問題。
圖6 Reindeer深度圖修復(fù)結(jié)果
2.2 實(shí)驗(yàn)2
為了驗(yàn)證本文算法的有效性,利用Kinect采集的深度圖像進(jìn)行空洞的填充,并與文獻(xiàn)[13]提出的方法進(jìn)行對(duì)比。圖7(a)是利用Kinect采集的深度圖像,圖7(b)是使用文獻(xiàn)[13]修復(fù)的深度圖像,圖7(c)是使用本文算法修復(fù)的深度圖像。從實(shí)驗(yàn)結(jié)果中可以看出,利用本文算法修復(fù)的深度圖像可以有效地保持物體邊緣信息。
圖7 Kinect深度數(shù)據(jù)修復(fù)對(duì)比圖
2.3 實(shí)驗(yàn)3
選用5×5模板計(jì)算彩色圖像邊緣處像素的多尺度結(jié)構(gòu)相似度,其中圖8(a)標(biāo)記的方框中心像素為邊緣像素,圖8(b)標(biāo)記的方塊中心像素為前景區(qū)域,圖8(c)標(biāo)記的方塊中心像素為背景區(qū)域。單純地僅從像素的顏色值上很難判斷它們屬于前景還是背景區(qū)域,但是它們的多尺度結(jié)構(gòu)相似度卻有著比較大的差異。
(a) R=54 G=20 B=21 (b) R=56 G=23 B=18 (c) R=57 G=22 B=29MSSIM=0.5 MSSIM=0.9 MSSIM =0.8圖8 圖像與鄰域的多尺度結(jié)構(gòu)相似性
對(duì)圖8中的物體利用Canny算子進(jìn)行邊緣檢測(cè),然后統(tǒng)計(jì)物體邊緣附近像素的多尺度結(jié)構(gòu)相似度,統(tǒng)計(jì)結(jié)果如圖9所示,其中橫軸表示邊緣像素的個(gè)數(shù),縱軸表示像素的MSSIM值。
圖9 多尺度結(jié)構(gòu)相似度系數(shù)
從圖9的結(jié)果中可以看出,物體邊緣處像素與周圍鄰域像素的MSSIM均值低于0.65,而物體平滑區(qū)域像素與周圍鄰域像素的MSSIM均值高于0.65。因此可以將像素的MSSIM作為空洞填充過程中的衡量標(biāo)準(zhǔn),引導(dǎo)深度圖像進(jìn)行自適應(yīng)的空洞填充。
深度圖像的出現(xiàn)為各類計(jì)算機(jī)視覺的應(yīng)用開辟了新的道路,并在物體識(shí)別、三維重建、場(chǎng)景理解等應(yīng)用中發(fā)揮著重要的作用[14]。本文針對(duì)Kinect設(shè)備采集的深度圖像存在空洞這一問題,研究了一種基于結(jié)構(gòu)相似性的FMM深度圖像空洞填充算法。該算法首先將彩色圖像作為輸入,利用結(jié)構(gòu)相似性MSSIM計(jì)算一幅圖像中每個(gè)像素與鄰域像素的相似性;在對(duì)深度圖像空洞進(jìn)行填補(bǔ)時(shí),利用改進(jìn)的FMM算法估計(jì)深度圖像空洞區(qū)域的深度信息;最后采用改進(jìn)的引導(dǎo)濾波算法對(duì)修復(fù)后的深度圖像進(jìn)行增強(qiáng)。根據(jù)實(shí)驗(yàn)結(jié)果可以看出本文提出的算法有效地解決了深度圖像存在的大面積空洞問題,并且從填充結(jié)果可以看出,該算法可以有效地保持物體邊緣信息,為以后三維重建過程中的配準(zhǔn)等工作研究起到了非常重要的作用。
本文雖然在Kinect獲取的深度圖像修復(fù)中取得了階段性的成果,但是還需要進(jìn)一步的改進(jìn):例如不能實(shí)時(shí)地對(duì)獲取的深度圖像進(jìn)行修復(fù),時(shí)間復(fù)雜度比較高等。
[1] Vijayanagar K R, Loghman M, Kim J. Refinement of depth maps generated by low-cost depth sensors[C]// International Soc Design Conference. 2012:355-358.
[2] Yang Q Q, Wang L H, Li D X, et al. Hierarchical Joint Bilateral Filtering for Depth Post-Processing[C]// International Conference on Image & Graphics. 2011:129-134.
[3] Min K P, Cho J H, Jang I Y, et al. An iterative joint bilateral filtering for depth refinement of a 3D model[C]// SIGGRAPH Asia 2011 Posters. ACM, 2011:1-1.
[4] Kopf J, Cohen M F, Lischinski D, et al. Joint bilateral upsampling[J]. Acm Transactions on Graphics, 2007, 26(3):96.
[5] Wang Z, Bovik A C, Sheikh H R, et al. Image quality assessment: from error visibility to structural similarity[J]. IEEE Transactions on Image Processing, 2004, 13(4):600-612.
[6] Alexandru Telea. An Image Inpainting Technique Based on the Fast Marching Method[J]. Journal of Graphics Tools, 2004, 9(1):23-34.
[7] Sethian J A. A fast marching level set method for monotonically advancing fronts[J]. Proceedings of the National Academy of Sciences of the United States of America, 1996, 93(4):1591.
[8] Liu N, Zhao D. Detail enhancement for high-dynamic-range infrared images based on guided image filter[J]. Infrared Physics & Technology, 2014, 67:138-147.
[9] Scharstein D, Szeliski R. A Taxonomy and Evaluation of Dense Two-Frame Stereo Correspondence Algorithms[J]. International Journal of Computer Vision, 2002, 47(1-3):7-42.
[10] Kopf J, Cohen M F, Lischinski D, et al. Joint bilateral upsampling[J]. Acm Transactions on Graphics, 2007, 26(3):96.
[11] Chan D, Buisman H, Theobalt C, et al. A Noise-Aware Filter for Real-Time Depth Upsampling[C]// The Workshop on Multi-Camera & Multi-Modal Sensor Fusion Algorithms & Applications. 2008.
[12] Diebel J, Thrun S. An Application of Markov Random Fields to Range Sensing.[J]. Advances in Neural Information Processing Systems, 2005:291-298.
[13] Bapat A,Ravi A,Raman S.An iterative non-local approach for restoting depth maps in RGB-D images[C]// National Conference on Communications. 2015:1-6.
[14] 孫怡.Kinect深度圖像修復(fù)技術(shù)研究[D].大連:大連理工大學(xué)電子與通信工程,2013.
DEPTHIMAGEENHANCEMENTALGORITHMBASEDONFASTMARCHINGMETHOD
Meng Tian Quan Hongyan
(SchoolofComputerScienceandSoftwareEngineering,EastChinaNormalUniversity,Shanghai200062,China)
In order to solve the problem of existing holes in depth images captured by Kinect, we proposed an enhancement algorithm based on the Fast Marching Method. First, we used the color image as input to calculate the Multiple-Scale Structural Similarity of each pixel with their neighbors. Then we used MSSIM to construct the diffusion function, through the improved FMM algorithm, to estimate the depth information to fill depth holes. Finally, to highlight the details of edge features, we used an improved guide filtering algorithm to enhance the edge details. Experimental results show that the algorithm can accurately fill the holes of the depth image and can effectively keep the edge details of the object. With this algorithm, we can solve the problem and can promote the research and application of the 3D reconstruction.
Depth map Hole filling FMM MSSIM Spread function Adaptive Guided bilateral filtering
2016-09-13。孟恬,碩士,主研領(lǐng)域:計(jì)算機(jī)視覺。全紅艷,副教授。
TP391.41
A
10.3969/j.issn.1000-386x.2017.08.040