基于k-means的Kinect深度图像空洞修复算法*
2015-12-16蒋爱民胥立波
王 勇,蒋爱民,胥立波
(河海大学物联网工程学院,常州213022)
基于k-means的Kinect深度图像空洞修复算法*
王 勇,蒋爱民,胥立波
(河海大学物联网工程学院,常州213022)
为解决Kinect感应器所采集的深度图像中存在大面积空洞的问题,提出了一种深度图像空洞修复方法。该算法首先输入同步获取的彩色图像和深度图像;接着利用k-means算法对灰度化后的彩色图像进行聚类,聚类结果作为引导图像;然后对每个深度图像中的空洞点,搜索引导图像中与之相匹配的非空洞像素点,将该点的深度值作为空洞点的深度值。实验结果表明,该算法利用聚类思想,将彩色图像应用到对深度图像的空洞修复,有效完成了对深度图像的空洞填充,修复后深度图像的平滑度优于联合双边滤波方法,较好地提高了深度图像的质量。
Kinect感应器;k-means算法;深度图像;空洞修复;聚类;引导图像;联合双边滤波
1 引 言
自微软的Kinect感应器问世以来,它特殊的图像采集功能极大地吸引了模式识别和计算机视觉领域研究人员的目光。Kinect感应器可以同时拍摄场景彩色图像及带有深度信息的深度图像。这为三维场景重建、人机互动、行为识别[1]和跟踪[2]等问题的解决提供了有益帮助。但是通过Kinect感应器获取的深度图像往往在物体边缘和遮挡处出现空洞[3-4],严重影响后续的图像处理及信息提取。因此,在利用深度图像之前,对深度图像中的空洞进行修复成为必不可少的一个环节。
近年来,针对Kinect感应器深度图像空洞修复问题,国内外研究人员相继提出了一些算法。文献[5]采用了高斯滤波方法进行空洞修复,该方法首先根据距离赋予像素点不同的权值,距离越近,权值越大;然后,把深度图像中空洞邻域的像素点进行相应的加权平均,计算结果作为空洞的填充值。该方法利用空洞周围非空洞点的深度值来估计空洞的深度值,虽然可以对空洞进行修复,但是只考虑了像素点的位置信息,从而易造成图像中物体边缘信息的丢失。而文献[6]提出的双边滤波修复方法,则同时考虑了像素点的位置信息和像素信息,权值与像素点的距离和像素差值呈反比,距离越近、像素差值越小,则权值越大。相比高斯滤波,该方法可以减少物体边缘信息的丢失。但是完全根据深度图像计算出滤波的权值,对于较大面积的空洞则无能为力。文献[7]在双边滤波法的基础上,通过彩色图像计算得到像素差值的权值,提出了联合双边滤波的空洞修复方法。该方法能够修复图像中的大部分空洞,但是对于边界周围存在的较大空洞,不能完全修复,而且表示空洞的权值不是最佳的,修复后图像中物体边缘不清晰。文献[8]采用的是背景估计方法,这种方法需要利用多幅图像进行背景提取,对单幅图像则束手无策。基于k-means的修复算法,采用聚类思想来寻找符合空洞处深度信息的像素点,取得了很好的修复效果。
2 k-means算法
针对深度图像存在空洞,提出了基于k-means算法的空洞修复方法。虽然k-means算法已有超过50年的历史,但是它仍然是目前应用最为广泛的聚类算法之一[9]。k-means算法采用数据之间的欧式距离作为相似性的评价指标。xi和xj为两个数据样本,d(xi,xj)为它们之间的欧式距离。距离公式如下:
k-means算法认为簇是由距离靠近的对象组成的,通过计算数据样本的欧式距离,最终把对象分为k个相互独立且紧凑的簇。该算法首先从给定的数据中任意选取k个数据作为初始聚类中心;对于其它剩下的数据,根据它们与初始聚类中心的相似度,将它们分配给与其相似度最大的簇;待所有数据分配结束后,重新计算所有簇的聚类中心,即该簇中所有数据的均值,以上过程不断重复,直至收敛。算法的具体步骤如下:
输入:聚类个数k和聚类对象的数据。
输出:满足平方误差最小的k个簇。
(1)随机从数据{xn}Nn=1任选k个对象作为簇的初始聚类中心c1,...,ck;
(2)对数据中的每一个对象xi,计算其与每一个聚类中心的欧式距离,然后按照最小距离准则,将xi划分到对应的簇,保存xi所属簇的标号:
(3)重新计算每个簇的聚类中心:
(4)计算标准测度函数,当函数收敛时,停止迭代,否则回到步骤2。标准测度函数用平方误差准则表示,如公式(4)所示,其中V表示所有数据平方误差之和,cj为给定的簇。
3 基于k-means算法的深度图像空洞修复
在空洞修复过程中,最关键的是在深度图像中找到可以最佳匹配空洞信息的像素点。相比基于图像滤波的空洞修复方法,聚类算法在寻找匹配像素点时更具优势。为了修复深度图像中的空洞,提出的基于k-means算法首先将采集的深度图像进行二值化,生成空洞掩膜;此后,利用k-means算法将灰度化后的彩色图像进行聚类,并输出聚类图像;然后,通过聚类图像在深度图像中找出匹配空洞信息的像素点,用该点的深度值作为空洞处的深度值。修复算法的具体流程如下:
(1)输入深度图像X和彩色图像Y,聚类个数k。
(2)对深度图像进行二值化处理,生成掩膜mask,根据掩膜mask确定深度图像中空洞点的个数t。
(3)用k-means算法对灰度化后的彩色图像Y进行聚类,得到聚类图像I。
(4)利用得到的聚类图像I,筛选出与空洞点同类且掩膜mask值为255的像素点。
(5)计算被筛选出的像素点与空洞之间的欧氏距离d,按照距离最近原则,将距离最近像素点的深度值作为空洞的填充值。
(6)待t个空洞填充结束,输出修复后的深度图像X’。
4 实验结果及分析
为了验证算法性能,采用berkeley 3-d object dataset提供的测试图像,图像的大小均为640× 480。实验平台是matlab 7.11.0(R2010b),kmeans算法的类别数设为k=15。
图1给出了三组深度图像空洞修复结果图示,并将k-means方法与联合双边滤波法进行了对比。
图1 k-means方法与联合双边滤波法结果对比Fig.1 Comparison of results between k-means and joint bilateral filter
从实验结果可以看出,对于存在大面积空洞的深度图像。虽然联合双边滤波法可以修复深度图像中的大部分空洞,但是图像边界的空洞却无法完全修复。此外,修复后的深度图像中物体边缘不清晰。与之对比,可以看到提出的基于k-means算法的深度图像空洞修复方法不仅可以将深度图像中的空洞完全修复,而且能够较好地保持图像中物体的边缘,得到物体边缘清晰的深度图像。
5 结束语
针对Kinect感应器所采集的深度图像中存在大面积空洞的问题,提出了基于k-means算法的修复方法。该方法利用k-means算法,结合彩色图像和深度图像的相关性,有效解决了深度图像中存在的大面积空洞问题。实验结果表明,与联合双边滤波法相比,基于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-hole 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-),男,江苏省宿迁市人,硕士研究生,主研方向:数字图像处理。
2014-12-26