劉漢偉 曹雛清
摘 ?要: 針對(duì)目前大多數(shù)深度相機(jī)采集到的深度圖像中含有大量噪點(diǎn)以及大面積的空洞問題,提出一種基于圖像融合的深度圖像修復(fù)算法。采用改進(jìn)分水嶺算法提取彩色圖像中的邊緣信息,基于KD樹近鄰算法依據(jù)深度圖像的梯度信息提取分類信息,將彩色圖像的邊緣信息與深度圖像像素點(diǎn)的分類信息相結(jié)合,得到精確地圖像分類結(jié)果,再對(duì)融合后的每一類進(jìn)行最小二乘法算法擬合空洞,修復(fù)深度圖像中出現(xiàn)的大面積空洞問題。實(shí)驗(yàn)結(jié)果表明,該方法在對(duì)物體邊緣處小面積空洞進(jìn)行較為準(zhǔn)確地修復(fù)的同時(shí),能夠?qū)ι疃葓D像中存在的大面積空洞問題進(jìn)行有效修復(fù)。
關(guān)鍵詞: 深度圖像修復(fù); 圖像融合; 提取邊緣信息; 圖像分類; 修復(fù)空洞; 對(duì)比驗(yàn)證
中圖分類號(hào): TN911.73?34 ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào): 1004?373X(2020)02?0182?05
Depth image restoration algorithm based on image fusion
LIU Hanwei1, CAO Chuqing2
Abstract: A depth image restoration algorithm based on image fusion is proposed to solve the problem that the depth images collected by most depth cameras contain a large number of noisy points and a large area of voids. The edge information of the color image is extracted by means of the improved watershed algorithm, and the classification information of the depth image is extracted accordingto the gradient information of it and based on the KD tree neighbor algorithm. The accurate image classification results are obtained in combination with the edge information of the color image and the classification information of the depth image pixels. For each class after fusion, the least square algorithm is used to fit the voids to repair the large?area voids in depth images. The experimental results show that the method can not only accurately repair small?area voids at the edge of the object, but also effectively repair large?area voids in the depth images.
Keywords: depth image restoration; image fusion; extract edge information; image classification; repair voids; comparison validation
近年來深度相機(jī)得到了廣泛的應(yīng)用,包含深度信息的深度圖像在人機(jī)交互、人臉技術(shù)、三維重建、AR等領(lǐng)域起到了關(guān)鍵作用。然而,目前大多數(shù)深度相機(jī)由于測(cè)量時(shí)的光照變化、物體材質(zhì)的紅外反射特性以及區(qū)域遮擋等原因,導(dǎo)致采集到的深度圖像含有大量噪點(diǎn)以及空洞[1],從而降低了深度圖像的質(zhì)量。
深度相機(jī)生成的深度圖像的空洞問題主要發(fā)生在物體邊緣和遮擋區(qū)域[2]。目前深度圖像修復(fù)方法大致分為兩類:一類是基于聯(lián)合雙邊濾波器的深度圖像濾波算法[3],該類方法可以很好地修復(fù)物體邊緣處的小面積空洞問題,但是對(duì)于深度圖像出現(xiàn)的大面積空洞問題,濾波器算法迭代次數(shù)多,修復(fù)時(shí)間長(zhǎng),修復(fù)產(chǎn)生的深度數(shù)據(jù)模糊[4];另一類基于加權(quán)最小二乘法算法的深度圖像修復(fù)算法[5],該方法可以修復(fù)深度圖像大面積空洞,但是由于擬合范圍廣,產(chǎn)生深度數(shù)據(jù)不穩(wěn)定,且在物體邊緣處的空洞修復(fù)結(jié)果往往產(chǎn)生過平滑的現(xiàn)象。因此,本文提出基于圖像融合的深度圖像修復(fù)方法,將彩色圖像中獲取的邊緣信息與深度圖像中依據(jù)梯度信息獲取的分類結(jié)果相融合,得到較為精確的分類結(jié)果,并對(duì)融合后每一類進(jìn)行最小二乘法擬合空洞,從而實(shí)現(xiàn)對(duì)深度圖像中存在的空洞問題進(jìn)行修復(fù)。
1 ?圖像處理
1.1 ?算法框架
本文首先獲取深度相機(jī)配準(zhǔn)[6]后的彩色圖像以及深度圖像,分別對(duì)彩色圖像以及深度圖像進(jìn)行處理,獲取各圖像粗略的分類信息,再將分類信息進(jìn)行融合獲取圖像較為精確的分類結(jié)果,最后對(duì)圖像中的每一類進(jìn)行最小二乘法擬合空洞獲取最終修復(fù)的深度圖像。本文算法框架如圖1所示。
1.2 ?彩色圖像處理
1.2.1 ?彩色圖像預(yù)處理
由于相機(jī)在采集圖像的過程中,易受到外界環(huán)境、設(shè)備本身等的影響,圖像會(huì)產(chǎn)生大量噪點(diǎn),而分水嶺分割算法易受到噪聲、梯度局部不規(guī)則等因素的影響導(dǎo)致過分割[7],所以在進(jìn)行彩色圖像分割前要進(jìn)行預(yù)處理。
目前,圖像去噪的方式大多采用低通濾波,但該類方法在平滑背景噪聲的同時(shí)模糊了圖像的重要邊緣[8],不利于圖像邊緣的提取。使用偏微分方程進(jìn)行圖像去噪,能夠更好地保持原始圖像的頻譜特性,特別是圖像邊緣處特性。本文建立如下偏微分方程:
設(shè)[l(u,v)]為理想不含噪圖像,[g(u,v)]為含噪圖像,為了除去彩色圖像中的噪點(diǎn),滿足如下方程:
[min E(x)=Ωl2(u)+l2(v)dudv] (1)
式中,[Ω]為圖像域,采用Lagrange方程和最速下降法進(jìn)行求解,可以得到:
[lt=??ulul2u+l2v+??vlvl2u+l2v-λ(l-g),u,v∈Ω] ?(2)
式中,[λ]為權(quán)重系數(shù),其計(jì)算公式為:
[λ=-12σ2l2u+l2v-gulu+gvlvl2u+l2vdudv] ? ?(3)
[σ2=Ω12(l-g)2dudv] ? ? ? ? ? ?(4)
通過上述方法,得到最終去噪后的圖像[lt]。將彩色圖像[lt]轉(zhuǎn)化為灰度圖像,采用頂帽與低帽處理來增強(qiáng)圖像的邊緣信息,再對(duì)圖像進(jìn)行基于重建的形態(tài)學(xué)開、閉運(yùn)算[9]來消除圖像產(chǎn)生的多余極大值點(diǎn),減小過分割現(xiàn)象,得到形態(tài)學(xué)重建后的圖像。
1.2.2 ?彩色圖像分割
將彩色圖像轉(zhuǎn)化為灰度圖像再計(jì)算梯度會(huì)丟失圖像的彩色信息,對(duì)彩色圖像計(jì)算梯度,可以獲得更加準(zhǔn)確的邊緣信息。本文采用如下方法計(jì)算彩色圖像梯度。
令[r],[g]和[b]為RGB彩色空間沿[R],[G]和[B]軸的單位向量,則有:
[u1=?R?ur+?G?ug+?B?ubv1=?R?vr+?G?vg+?B?vb] ?(5)
彩色圖像在[(u,v)]處的最大變化率方向由角度給出:
[θ=12arctan2uT1v1uT1u1-vT1v1] ? ? ? ? ? ?(6)
[(u,v)]點(diǎn)在[θ]方向上的變化率,即最終梯度值:
[gr(θ)=12uT1u1-vT1v1+uT1u1-vT1v1cos 2θ+2uT1v1sin 2θ12] (7)
傳統(tǒng)的分水嶺分割只是對(duì)圖像前景進(jìn)行分割,但是在低對(duì)比度圖像中易丟失重要輪廓[10],如圖2b)所示。本文分別提取形態(tài)學(xué)重建后圖像的局部極大值區(qū)域以及局部極小值區(qū)域得到圖像前景區(qū)域以及背景區(qū)域,并對(duì)梯度圖像在各區(qū)域進(jìn)行極小值標(biāo)記[11],分別對(duì)前景、背景標(biāo)記后的梯度圖像進(jìn)行分水嶺變換。
用M1,M2,…,MR表示彩色梯度圖像[gr(u,v)]的極小值標(biāo)記區(qū)域,且[gr(u,v)=0],其中[(u,v)∈Mi(i=1,2,…,R)],Mi為極小值區(qū)域,也為最小值點(diǎn)集。令[gr(u,v)]的最小值為[gmin],最大值為[gmax],[C(Mi)]為與極小值區(qū)域Mi相聯(lián)系的匯水盆地點(diǎn)集,[T[n]=(s,t)|gr(s,t) 1) 初始化[gr(u,v)=0],[gmin=gr(u,v)],[gmax=] [max(gr(u,v))][n=gmin+1]; 2) 設(shè)定[T[n]]和[C[n]]的值; 3) [Q[n]]表示[T[n]]中的連續(xù)區(qū)域,[qj∈Q[n]],遍歷[Q[n]]中的連續(xù)區(qū)域[qj],如果[qj∩C[n-1]]包含多個(gè)[C[n-1]]集合中的區(qū)域,則在這些區(qū)域間建立分界線; 4) [n=n+1],當(dāng)[n 最終得到對(duì)圖像前景、背景的分割結(jié)果[L1],[L2],如圖2b)、圖2c)所示,成功將與圖像背景灰度值相近的物體(圖2中紅色圓圈內(nèi)物體)提取出來,保證了圖像重要物體輪廓的提取。最后將分割結(jié)果進(jìn)行融合,如下: [L(u,v)=β(L1(u,v))+L2(u,v)] ?(8) 式中,[β]為標(biāo)簽權(quán)重防止兩個(gè)不相同標(biāo)簽相加為相同的數(shù),本文實(shí)驗(yàn)中[β=max(L2)]。最終分割結(jié)果如圖2d)所示。 1.3 ?深度圖像處理 1.3.1 ?深度圖像梯度 由于深度圖像中處于同一平面的相鄰像素點(diǎn)之間的梯度值變化小,處于平面邊緣處的相鄰像素點(diǎn)之間的梯度值變化大[12]。本文依據(jù)深度圖像中相鄰像素點(diǎn)梯度值變化對(duì)圖像進(jìn)行分類,對(duì)深度圖像的梯度進(jìn)行計(jì)算的公式為: [G(u,v)=?f?ui2+?f?vj2] (9) 式中:[f]為深度圖像在像素點(diǎn)[(u,v)]處的深度值;[i],[j]分別為[u],[v]方向的單位矢量,得到像素點(diǎn)[(u,v)]的梯度值[G(u,v)]。在對(duì)圖像進(jìn)行梯度計(jì)算之前需對(duì)深度圖像進(jìn)行偏微分去噪減噪,減少對(duì)梯度計(jì)算產(chǎn)生的影響。 1.3.2 ?深度圖像分類 依據(jù)相鄰兩點(diǎn)之間的梯度差值對(duì)深度圖像進(jìn)行分類,引入圖像坐標(biāo)[(u,v)]對(duì)梯度[G]進(jìn)行約束,采用三維數(shù)組成簇的方法,對(duì)每個(gè)坐標(biāo)點(diǎn)[(u,v)]分配一個(gè)整體簇標(biāo)簽:對(duì)每一像素點(diǎn)[(u0,v0)]搜索與其在[(u,v,G)]下的歐幾里得距離小于閾值[μ]的點(diǎn)[(u1,v1)]劃分為同一集群,通過如下公式計(jì)算滿足閾值的點(diǎn): [p=(u1-u0)2+(v1-v0)2+(τ(G1-G0))2<μ] ? (10) 式中:[p]為[(u,v,G)]的歐幾里得距離;[τ]為梯度系數(shù);[μ]為距離閾值。[τ],[μ]為深度圖像分類的關(guān)鍵部分,在本文實(shí)驗(yàn)中,處于同一平面的相鄰兩像素點(diǎn)之間的梯度差值保持在5以內(nèi)。先將梯度差減少[12],[τ=0.5],再以同一平面中相鄰兩點(diǎn)梯度差值代入式(10)計(jì)算歐幾里得距離[p]:對(duì)于水平或豎直相鄰兩點(diǎn)[p=2.7];對(duì)于斜對(duì)角相鄰兩點(diǎn)[p=2.9]。所以設(shè)置梯度系數(shù)[τ=0.5],閾值[μ=3]。 對(duì)于滿足閾值[μ]的點(diǎn)的搜索策略大多采用窮舉搜索,依次計(jì)算樣本集[E]中每個(gè)樣本到輸入實(shí)例點(diǎn)的距離,然后抽取滿足閾值的點(diǎn)。由于圖像像素坐標(biāo)集合數(shù)量大,消耗的時(shí)間會(huì)很多,因此采用基于KD樹的近鄰搜索算法來加快對(duì)于滿足閾值點(diǎn)的搜索。本文深度圖像分類算法具體表示為: 1) 新建零矩陣[K(u,v)],令其橫縱坐標(biāo)個(gè)數(shù)與深度圖像[f(u,v)]相同,令初始標(biāo)簽[La=0]。 2) 對(duì)矩陣[K(u,v)]每一點(diǎn)[(ui,vi)],令[K1=K(ui,vi)],找出在深度圖像[f(u,v)]中的相同坐標(biāo)點(diǎn)[(ui,vi)],利用KD樹算法找出在深度圖像[f(u,v)]中滿足點(diǎn)[(ui,vi)]在式(10)成立下的點(diǎn)集合[(uj,vj)],對(duì)于每一個(gè)點(diǎn)[(uj,vj)],令[K2=K(uj,vj)],其中: 若[K2>K1>0],則[K(uj,vj)=K(ui,vi)];若[K1>K2>0],則[K(ui,vi)=K(uj,vj)]。 若[K2>0]且[K1=0],則[K(ui,vi)=K(uj,vj)];若[K1>0]且[K2=0],則[K(uj,vj)=K(ui,vi)]。 若[K1=0],則[La=La+1],[K(uj,vj)=La]; 循環(huán)步驟2)將矩陣[K(u,v)]中每個(gè)像素點(diǎn)進(jìn)行賦值,最終得到深度圖像的分類集群[K(u,v)]。 上述步驟將不同平面的像素點(diǎn)進(jìn)行分類,分類結(jié)果如圖3d)所示。圖中同一種顏色代表同一類,白色區(qū)域表示為深度圖像空洞部分。 1.4 ?圖像融合及擬合空洞 依據(jù)深度圖像的梯度信息可以獲取每類平面的基本位置信息,但其產(chǎn)生的邊緣模糊;彩色圖像可以獲取物體較為精確的邊緣信息,但容易出現(xiàn)過分割現(xiàn)象。將深度圖像、彩色圖像分類結(jié)果融合可以有效地彌補(bǔ)以上缺點(diǎn)。本文圖像融合和擬合空洞步驟具體表示為: 1) 地取彩色圖像分割結(jié)果[L]的每一類[Lh]([h]為彩色圖像分割個(gè)數(shù))的坐標(biāo)集合[(uh,vh)],賦值在深度圖像的分類結(jié)果[K]中相對(duì)應(yīng)坐標(biāo)的坐標(biāo)值,得到新的分類結(jié)果[R]。 2) 在新的分類結(jié)果[R]中取與[Lh]相同坐標(biāo)的坐標(biāo)點(diǎn)[Rh],繪制[Rh]坐標(biāo)值的直方圖,求得出現(xiàn)次數(shù)最多的數(shù)[Rhmax],通過式(11)為每一類[Rh]進(jìn)行賦值: [Rh=Rhmax, ? Rhmax≠0Rhmax2, Rhmax=0] ? ? ? ? ? ?(11) 式中,[Rhmax2]為除0外出現(xiàn)次數(shù)最多的數(shù)。得到最終的分類結(jié)果[R1],如圖3e)所示。 3) 取[R1]中除值為0外坐標(biāo)值相同的每一類坐標(biāo)點(diǎn)集[(uk,vk)],在深度圖像[f(u,v)]中對(duì)點(diǎn)集[(uk,vk)]進(jìn)行最小二乘法擬合空洞。為提高擬合效率,當(dāng)點(diǎn)集[(uk,vk)]中有效像素點(diǎn)個(gè)數(shù)大于4 000時(shí),隨機(jī)選取4 000個(gè)點(diǎn)作為樣本點(diǎn)進(jìn)行最小二乘法擬合。 4) 利用雙邊濾波處理,消除深度圖像剩余小區(qū)域空洞和噪點(diǎn),得到最終的修復(fù)圖像。 本文修復(fù)算法能成功將原始深度圖像中存在的大面積空洞問題進(jìn)行修復(fù),其中各步驟效果圖及最終修復(fù)結(jié)果如圖3所示。 2 ?實(shí)驗(yàn)結(jié)果及分析 本文算法在CPU為Intel i7,主頻為1.80 GHz,四核處理器,8 GB內(nèi)存,操作系統(tǒng)為Windows 10的計(jì)算機(jī)上實(shí)現(xiàn),軟件部分基于Matlab語言編寫。 為了驗(yàn)證本文算法的有效性,實(shí)驗(yàn)中分別對(duì)采用Kinect1、Kinect2、圖漾MF830?5M三種深度相機(jī)獲取的多幅自采深度圖以及Middlebury公開數(shù)據(jù)庫(kù)[13]中深度圖像進(jìn)行修復(fù)實(shí)驗(yàn),并和雙邊濾波(BF)[14]、聯(lián)合雙邊濾波(JBF)[3]進(jìn)行對(duì)比。 2.1 ?自采數(shù)據(jù)修復(fù)對(duì)比實(shí)驗(yàn) 在對(duì)自采圖像的修復(fù)實(shí)驗(yàn)中發(fā)現(xiàn),本文算法在較為準(zhǔn)確地修復(fù)物體邊緣處空洞的前提下,對(duì)于圖像中出現(xiàn)的大面積的空洞修復(fù)效果較好,如圖4c)所示;雙邊濾波(BF)在修復(fù)深度圖像時(shí),物體邊緣處容易產(chǎn)生毛刺現(xiàn)象,修復(fù)效果不佳,如圖4d)所示;聯(lián)合雙邊濾波(JBF)對(duì)大面積空洞現(xiàn)象的修復(fù)結(jié)果容易產(chǎn)生模糊,且算法迭代次數(shù)較高,如圖4e)所示。 為了使各方法的修復(fù)效果進(jìn)行更為直觀的表示,將圖中代表性區(qū)域進(jìn)行放大。部分自采圖像的修復(fù)結(jié)果如圖4~圖6所示。 2.2 ?Middlebury數(shù)據(jù)集數(shù)據(jù)修復(fù)對(duì)比實(shí)驗(yàn) 實(shí)驗(yàn)選取Middlebury公共數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行定量分析,從中選取Baby,Wool,Cloth,Plastic,Midd,Teddy深度圖作為測(cè)試對(duì)象,將數(shù)據(jù)集提供的深度圖像作為真實(shí)圖,為了能夠進(jìn)行定量分析,在深度圖像中人工添加一些噪聲和空洞。深度圖像修復(fù)結(jié)果見圖7。 在本文實(shí)驗(yàn)中,添加高斯噪聲(均值為0,標(biāo)準(zhǔn)差為3)到實(shí)際深度圖像中,同時(shí)隨機(jī)添加6處小于60×60像素的空洞。將添加噪聲和空洞后的深度圖像作為待修復(fù)圖像,如圖7b)所示。將本文算法與BF和JBF的修復(fù)效果進(jìn)行對(duì)比,各算法修復(fù)效果如圖7c)~圖7e)所示,各方法修復(fù)的均方誤差RSME和峰值信噪比PSNR的結(jié)果如表1所示。 3 ?結(jié) ?語 本文針對(duì)目前大多數(shù)深度相機(jī)獲取的深度圖像中存在的大面積空洞問題,提出基于圖像融合的深度圖像修復(fù)算法,利用彩色圖像獲取的邊緣信息與深度圖像獲取的分類信息相結(jié)合的方法對(duì)深度圖像進(jìn)行修復(fù)。本文方法在保證深度圖像邊緣處小面積空洞較為精確修復(fù)的前提下,將剩余大面積空洞進(jìn)行了有效的修復(fù),后續(xù)研究中,優(yōu)化步驟使得修復(fù)效率進(jìn)一步的提高。 注:本文通訊作者為曹雛清。 參考文獻(xiàn) [1] JUN X,CHENG C, CHOU, FERIS R, et al. Single depth image super resolution and denoising via coupled dictionary learning with local constraints and shock filtering [C]// 2014 IEEE International Conference on Multimedia and Expo. Chengdu: IEEE, 2014: 142?145. [2] 胡天佑,彭宗舉,焦任直,等.基于超像素分割的深度圖像修復(fù)算法[J].光電子·激光,2016(10):1120?1128. [3] 劉繼忠,吳文虎,程承,等.基于像素濾波和中值濾波的深度圖像修復(fù)方法[J].光電子·激光,2018,29(5):539?544. [4] 呂朝輝,沈縈華,李精華.基于Kinect的深度圖像修復(fù)方法[J].吉林大學(xué)學(xué)報(bào)(工學(xué)版),2016,46(5):1697?1703. [5] 譚筠,安向京,賀漢根.基于優(yōu)化的深度圖像修復(fù)與恢復(fù)算法[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2013(z1):137?139. [6] ZHANG F, LEI T, LI J, et al. Real?time calibration and registration method for indoor scene with joint depth and color camera [J]. International journal of pattern recognition & artificial intelligence, 2018, 32(7): 1854021. [7] CAI Q, LIU Y Q, CAO J, et al. A watershed image segmentation algorithm based on self?adaptive marking and interregional affinity propagation clustering [J]. Acta electronica sinica, 2017, 45(8): 1911?1918. [8] 張建偉,王譯禾,陳允杰.基于非線性擴(kuò)散濾波結(jié)構(gòu)信息的圖像去噪方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2016,37(11):2971?2978. [9] DEVKOTA B, ALSADOON A, PRASED P W C, et al. Image segmentation for early stage brain tumor detection using mathematical morphological reconstruction [J]. Procedia computer science, 2018, 125: 115?123. [10] CAI Q, LIU Y Q, CAO J, et al. A watershed image segmentation algorithm based on self?adaptive marking and interregional affinity propagation clustering [J]. Acta electronica sinica, 2017, 45(8): 1911?1918. [11] WANG L L, LI G D, SHI L P, et al. Research on segmentation of grape disease based on improved watershed algorithm [C]// International Conference on Smart City & Systems Engineering IEEE Computer Society. Changsha: IEEE, 2017: 46?51. [12] PAN J, HU Z, SU Z, et al. Deblurring text images via l0?regularized intensity and gradient prior [C]// 2014 IEEE Conference on Computer Vision and Pattern Recognition IEEE Computer Society. Columbus: IEEE, 2014: 67?71. [13] Anon. Middlebury datasets [EB/OL]. [2017?12?24]. http://vision.middlebury.edu/stereo. [14] 徐歡,鄭江濱.Kinect深度圖像修復(fù)算法[J].微電子學(xué)與計(jì)算機(jī),2013,30(11):98?103. 作者簡(jiǎn)介:劉漢偉(1996—),男,山東濟(jì)南人,碩士,主要研究方向?yàn)閳D像處理、模式識(shí)別等。 曹雛清(1982—),男,安徽宣城人,博士,講師,主要研究方向?yàn)槟J阶R(shí)別與人工智能、智能化機(jī)器人、人機(jī)交互與多機(jī)器人協(xié)作等。