王 勇,蔣愛民,胥立波
(河海大學物聯(lián)網(wǎng)工程學院,常州213022)
基于k-means的Kinect深度圖像空洞修復算法*
王 勇,蔣愛民,胥立波
(河海大學物聯(lián)網(wǎng)工程學院,常州213022)
為解決Kinect感應器所采集的深度圖像中存在大面積空洞的問題,提出了一種深度圖像空洞修復方法。該算法首先輸入同步獲取的彩色圖像和深度圖像;接著利用k-means算法對灰度化后的彩色圖像進行聚類,聚類結果作為引導圖像;然后對每個深度圖像中的空洞點,搜索引導圖像中與之相匹配的非空洞像素點,將該點的深度值作為空洞點的深度值。實驗結果表明,該算法利用聚類思想,將彩色圖像應用到對深度圖像的空洞修復,有效完成了對深度圖像的空洞填充,修復后深度圖像的平滑度優(yōu)于聯(lián)合雙邊濾波方法,較好地提高了深度圖像的質量。
Kinect感應器;k-means算法;深度圖像;空洞修復;聚類;引導圖像;聯(lián)合雙邊濾波
自微軟的Kinect感應器問世以來,它特殊的圖像采集功能極大地吸引了模式識別和計算機視覺領域研究人員的目光。Kinect感應器可以同時拍攝場景彩色圖像及帶有深度信息的深度圖像。這為三維場景重建、人機互動、行為識別[1]和跟蹤[2]等問題的解決提供了有益幫助。但是通過Kinect感應器獲取的深度圖像往往在物體邊緣和遮擋處出現(xiàn)空洞[3-4],嚴重影響后續(xù)的圖像處理及信息提取。因此,在利用深度圖像之前,對深度圖像中的空洞進行修復成為必不可少的一個環(huán)節(jié)。
近年來,針對Kinect感應器深度圖像空洞修復問題,國內(nèi)外研究人員相繼提出了一些算法。文獻[5]采用了高斯濾波方法進行空洞修復,該方法首先根據(jù)距離賦予像素點不同的權值,距離越近,權值越大;然后,把深度圖像中空洞鄰域的像素點進行相應的加權平均,計算結果作為空洞的填充值。該方法利用空洞周圍非空洞點的深度值來估計空洞的深度值,雖然可以對空洞進行修復,但是只考慮了像素點的位置信息,從而易造成圖像中物體邊緣信息的丟失。而文獻[6]提出的雙邊濾波修復方法,則同時考慮了像素點的位置信息和像素信息,權值與像素點的距離和像素差值呈反比,距離越近、像素差值越小,則權值越大。相比高斯濾波,該方法可以減少物體邊緣信息的丟失。但是完全根據(jù)深度圖像計算出濾波的權值,對于較大面積的空洞則無能為力。文獻[7]在雙邊濾波法的基礎上,通過彩色圖像計算得到像素差值的權值,提出了聯(lián)合雙邊濾波的空洞修復方法。該方法能夠修復圖像中的大部分空洞,但是對于邊界周圍存在的較大空洞,不能完全修復,而且表示空洞的權值不是最佳的,修復后圖像中物體邊緣不清晰。文獻[8]采用的是背景估計方法,這種方法需要利用多幅圖像進行背景提取,對單幅圖像則束手無策。基于k-means的修復算法,采用聚類思想來尋找符合空洞處深度信息的像素點,取得了很好的修復效果。
針對深度圖像存在空洞,提出了基于k-means算法的空洞修復方法。雖然k-means算法已有超過50年的歷史,但是它仍然是目前應用最為廣泛的聚類算法之一[9]。k-means算法采用數(shù)據(jù)之間的歐式距離作為相似性的評價指標。xi和xj為兩個數(shù)據(jù)樣本,d(xi,xj)為它們之間的歐式距離。距離公式如下:
k-means算法認為簇是由距離靠近的對象組成的,通過計算數(shù)據(jù)樣本的歐式距離,最終把對象分為k個相互獨立且緊湊的簇。該算法首先從給定的數(shù)據(jù)中任意選取k個數(shù)據(jù)作為初始聚類中心;對于其它剩下的數(shù)據(jù),根據(jù)它們與初始聚類中心的相似度,將它們分配給與其相似度最大的簇;待所有數(shù)據(jù)分配結束后,重新計算所有簇的聚類中心,即該簇中所有數(shù)據(jù)的均值,以上過程不斷重復,直至收斂。算法的具體步驟如下:
輸入:聚類個數(shù)k和聚類對象的數(shù)據(jù)。
輸出:滿足平方誤差最小的k個簇。
(1)隨機從數(shù)據(jù){xn}Nn=1任選k個對象作為簇的初始聚類中心c1,...,ck;
(2)對數(shù)據(jù)中的每一個對象xi,計算其與每一個聚類中心的歐式距離,然后按照最小距離準則,將xi劃分到對應的簇,保存xi所屬簇的標號:
(3)重新計算每個簇的聚類中心:
(4)計算標準測度函數(shù),當函數(shù)收斂時,停止迭代,否則回到步驟2。標準測度函數(shù)用平方誤差準則表示,如公式(4)所示,其中V表示所有數(shù)據(jù)平方誤差之和,cj為給定的簇。
在空洞修復過程中,最關鍵的是在深度圖像中找到可以最佳匹配空洞信息的像素點。相比基于圖像濾波的空洞修復方法,聚類算法在尋找匹配像素點時更具優(yōu)勢。為了修復深度圖像中的空洞,提出的基于k-means算法首先將采集的深度圖像進行二值化,生成空洞掩膜;此后,利用k-means算法將灰度化后的彩色圖像進行聚類,并輸出聚類圖像;然后,通過聚類圖像在深度圖像中找出匹配空洞信息的像素點,用該點的深度值作為空洞處的深度值。修復算法的具體流程如下:
(1)輸入深度圖像X和彩色圖像Y,聚類個數(shù)k。
(2)對深度圖像進行二值化處理,生成掩膜mask,根據(jù)掩膜mask確定深度圖像中空洞點的個數(shù)t。
(3)用k-means算法對灰度化后的彩色圖像Y進行聚類,得到聚類圖像I。
(4)利用得到的聚類圖像I,篩選出與空洞點同類且掩膜mask值為255的像素點。
(5)計算被篩選出的像素點與空洞之間的歐氏距離d,按照距離最近原則,將距離最近像素點的深度值作為空洞的填充值。
(6)待t個空洞填充結束,輸出修復后的深度圖像X’。
為了驗證算法性能,采用berkeley 3-d object dataset提供的測試圖像,圖像的大小均為640× 480。實驗平臺是matlab 7.11.0(R2010b),kmeans算法的類別數(shù)設為k=15。
圖1給出了三組深度圖像空洞修復結果圖示,并將k-means方法與聯(lián)合雙邊濾波法進行了對比。
圖1 k-means方法與聯(lián)合雙邊濾波法結果對比Fig.1 Comparison of results between k-means and joint bilateral filter
從實驗結果可以看出,對于存在大面積空洞的深度圖像。雖然聯(lián)合雙邊濾波法可以修復深度圖像中的大部分空洞,但是圖像邊界的空洞卻無法完全修復。此外,修復后的深度圖像中物體邊緣不清晰。與之對比,可以看到提出的基于k-means算法的深度圖像空洞修復方法不僅可以將深度圖像中的空洞完全修復,而且能夠較好地保持圖像中物體的邊緣,得到物體邊緣清晰的深度圖像。
針對Kinect感應器所采集的深度圖像中存在大面積空洞的問題,提出了基于k-means算法的修復方法。該方法利用k-means算法,結合彩色圖像和深度圖像的相關性,有效解決了深度圖像中存在的大面積空洞問題。實驗結果表明,與聯(lián)合雙邊濾波法相比,基于k-means的修復方法取得了較好的修復效果,填補了深度圖像中所有空洞的同時,也校正了物體的邊緣信息,使深度圖像的整體質量得到較大提升。
[1] LIU Shaoguo,WANG Ying,WANG Haibo,et al.Kinect depth inpainting via graph laplacian with tv21 regularization[C].//Asian Conference on Pattern Recognition.Naha:IEEE,2013,251-255.
[2] 楊曉敏,張奇志,周亞麗.基于Kinect深度信息的人體運動跟蹤算法[J].北京信息科技大學學報:自然科學版,2013,28(1):33-37.YANG Xiaomin,ZHANG Qizhi,ZHOU Yali.Human motiontracingalgorithmbasedonKinectdepth information[J].Journal Beijing Information Science and Technology University,2013,28(1):33-37.
[3] FU Jingjing,SANG Shiqi,LU Yan,et al.Kinect-like depth denoising[C].//IEEE International Symposium on Circuits and Systems.Seoul:IEEE,2012,512-515.
[4] YANG Naeun,KIM Yonggon,PARK Raehong.Depth hole filling using the depth distribution of neighboring regions of depth holes in the kinect sensor[C].//IEEE International Conferenceon Signal Processing,Communication and Computing(ICSPCC).Hong Kong:IEEE,2012,658-661.
[5] VIJAYANAGAR K R,LOGHMAN M,JOOHEE K.Refinement of depth maps generated by low-cost depth sensors[C].//International SoC Design Conference.Jeju Island.IEEE,2012,355-358.
[6] CAMPLAN M,SALGADO L.Efficient spatio-temporal hole filling strategy for kinect depth maps[C].//Threedimensional Image Processing and Applications.Burlingame:Proceedings of SPIE,2012,82900E.
[7] HU Jinhui,HU Ruimin,WANG Zhongyuan,et al.Color image guided locality regularized representation for kinect depth holes filling[C].//Visual Communications and Image Processing(VCIP).Kuching:IEEE,2013,1-6.
[8] 王奎,安平,張兆楊,等.Kinect深度圖像快速修復算法[J].上海大學學報:自然科學版,2012;18(5):454-458.WANG Kui,AN Ping,ZHANG Zhaoyang,et al.Fast inpainting algorithm for Kinect depth map[J].Jourmal of Shanghai University,2012;18(5):454-458.
[9] ANIL K J.Data clustering:50 years beyond k-means[C].//International Conference on Pattern Recognition.Tampa:Pattern Recognition Letters,2010,651-666.
Kinect Depth Hole Filling Algorithm Based on K-means
Wang Yong,Jiang Aimin,Xu Libo
(College of Internet of Things Engineering,Hohai University,Changzhou 213022,China)
In order to solve large dark holes in Kinect depth image,this paper proposes a depth hole-filling method.It firstly inputs synchronous color image and depth image,and uses k-means algorithm to cluster image pixels in gray image.The result is used as a guiding image.Then,for each hole of the depth image,it finds a non-h(huán)ole pixel matched in the guiding image and uses its depth value to fill the corresponding hole.The experimental results show that the proposed algorithm,using clustering concept,applies the color image to the hole repairing of depth image and effectively fills dark holes in the depth image,and as the smoothness of repaired depth image is better than that of joint bilateral filtering method,the quality of depth image improves a lot.
Kinect sensor;K-means algorithm;Depth image;Hole repair;The clustering;Guiding image;Joint bilateral filter
10.3969/j.issn.1002-2279.2015.04.011
TP391
A
1002-2279(2015)04-0042-03
國家自然科學基金(61101158,61471157);江蘇省自然科學基金(BK20141159)
王勇(1990-),男,江蘇省宿遷市人,碩士研究生,主研方向:數(shù)字圖像處理。
2014-12-26