好文档 - 专业文书写作范文服务资料分享网站

基于Kinect深度信息的实时三维重建和滤波算法研究

天下 分享 时间: 加入收藏 我要投稿 点赞

第29卷第1期 计算机应用研究 Vol.29 No.1 2012年1期 Application Research of Computers Jan. 2011

基于Kinect深度信息的实时三维重建和滤波算法研究

陈晓明,蒋乐天,应忍冬

(上海交通大学 电子工程系,上海市 200240)

摘 要: 三维重建技术是计算机视觉、人工智能、虚拟现实等前沿领域的热点和难点。本文分析了基于Kinect输出的深度数据进行场景的实时三维重建的算法。针对实现过程中出现的深度图像噪声过大的问题,根据其信号结构的特点给出了改进的双边滤波算法。新算法利用已知的深度图像噪声范围,将权值函数修改为二值函数,并结合RGB图像弥补了缺失的深度信息。实验表明,新算法无论在降噪性能还是计算效率上,都大大优于已有的双边滤波,其中计算速度是原始算法的6倍。 关键词: 实时三维重建;Kinect;三维点云;噪声分析;深度图像;双边滤波;联合双边滤波 中图分类号: TP391 文献标志码: A

Research of 3D reconstruction and filtering algorithm based on depth information of Kinect

CHEN Xiaoming, JIANG Letian, Ying Rendong

(Dept. of Electronic Engineering, Shanghai Jiao Tong University, Shanghai 200240, China)

Abstract: 3D reconstruction is one of the research hotspots. This paper analyzed and improved 3D reconstruction algorithm using the depth information from Kinect. To reduce noise, it proposed an improved bilateral filtering algorithm based on the signal structure. This new algorithm used a two-valued function to compute the weights of the filter, because the range of depth image data was already known. It also combined the RGB values and depth information of surrounding pixels to complement some missing depth information. The results show that the proposed algorithm has much better performance and efficiency, namely 6 times as fast as the original algorithm.

Key words: real-time 3D reconstruction; Kinect; 3D point cloud; noise analysis; depth image; bilateral filter; joint bilateral filter

本文首先阐述了三维重建的流程,然后针对重建过程

0 引言 中噪声过大的问题分析并降低噪声,最后给出了实验结果和

结论。 三维重建技术是计算机视觉、人工智能、虚拟现实等前沿领域的热点和难点,也是人类在基础研究和应用研究中面

临的重大挑战之一,被广泛应用于文物数字化、生物医学成像、动漫制作、工业测量、沉浸式虚拟交互等领域。 现有的三维重建技术,按照获取深度信息的方式,可分为被动式技术和主动式技术。被动式技术利用自然光反射,一般通过摄像头拍摄图片,然后通过一系列的算法计算得到物体的三维坐标信息,如Structure from Motion[1]和Multi-View Stereo[2]。Structure from Motion技术利用不同时间的图像建立对应关系,因此只适用于刚性物体;Multi-View Stereo技术使用于刚体,但是计算量非常大,现阶段很难做到实时。主动式技术包含一个光源,直接测量物体的深度信息,因而很容易做到实时效果,如采用结构光技术的Kinect[3]和采用Time of Flight技术的CamCube[4]。而相对于CamCube,采用结构光技术的Kinect价格更便宜,更容易推广。

本文着重解决动态场景建模,选用Kinect技术作为三维重建的方法。Kinect具有反应速度快、价格便宜的优点,但是得到的深度图像精度低,并包含大量噪声。因此在三维重建之前需要对得到的深度图像进行滤波,降低噪声。相对于RGB图像滤波,深度图像滤波的研究工作还较少。文献[5]中采用双边滤波的方法降低噪声,采用多图像融合的方法修补未得到的深度信息,取得了很好的效果。但是该方法只适合静态场景,对于动态场景并不适合。对于缺失的深度信息,本文结合RGB图像将其补全,并针对深度图像对双边滤波器进行改进,处理一般的噪声,提高了性能和计算速度。 ———————————————

作者简介: 陈晓明(1987-),男(汉),浙江临海人,在读硕士,主要研究方向为嵌入式、图像处理 (xmchen2009@gmail.com);蒋乐天(1975-),男,博士,副教授,研究方向:嵌入式系统、软件可靠性和可用性研究;应忍东(1975-),男,博士,副教授,主要研究方向为导航信号处理、嵌入式系统、SoC、数字信号处理。

1 三维重建算法

图1是三维重建的流程图。Kinect设备的RGB摄像头和红外摄像头分别得到RGB图像和深度图像,为了消除因为两个摄像头位置不同而产生的图像中心不一致,首先将深度图像经过一定的坐标变换与RGB图像对齐,之后计算出空间点的XY坐标,最后将三维点云数据(X,Y,Z,R,G,B)通过PCL开源库显示。

下面针对图中信号处理流程中各个环节具体分析。

红外摄像头深度图像坐标变换XY坐标计算三维点云(X,Y,Z,R,G,B)显示RGB摄像头RGB图像Kinect图1 三维重建流程图 1.1 Kinect摄像头信号标定

在使用Kinect设备之前,需要对其进行标定,包括RGB摄像头和红外摄像头 的标定,以及确定深度与RGB图像间的坐标变换关系。

摄像头标定是一项比较成熟的技术,这里不加以详细叙述。文献[6]中,标定前的深度图像误差已经很小,标定后

页码 计算机应用研究 第28卷

没有显著提高,表明Kinect设备内部的芯片已经对RGB摄像头和红外摄像头进行了标定,因此不需要额外的矫正,得到的图像即为经过矫正后的结果。

RGB图像和深度图像,分别是以RGB摄像头和红外摄像头为中心拍摄到的图片。因此,如果需要得到包含颜色信息的三维点云,就需要将深度图像通过一定的变换,对应到RGB图像中。文献[6]中详细介绍了标定原理及具体方法,这里不加详述。实际上,OpenNI软件内部为深度图像提供了简单的函数SetViewPoint(),能够方便地进行图像转换。因此本文采用OpenNI内部函数来实现深度图像对齐。 1.2 XY坐标计算

图2是真实世界坐标系与深度图像投影坐标系的示意图。在真实世界坐标系中,是以Kinect设备为坐标原点的右手坐标系,而在深度图像的投影坐标系中,是以深度图像原点作为坐标原点的。因此,需要根据测量得到的深度信息Z坐标,计算出真实世界坐标系中的XY坐标。

图2 两种坐标系示意图

经过标定后的摄像头,可以等同为理想的针孔成像模型。在本文中,设定RGB图像和深度图像的分辨率均为640X480,根据简单的相似三角形原理,得到XY坐标分别为:

错误!未找到引用源。

(1)

(2)

错误!未找到引用源。

式(1)(2)中,X、Y分别为真实世界坐标系中的横坐

标与纵坐标,u、v为深度图像中的横坐标与纵坐标,Z为测量得到的深度信息,f为图像的焦距,其值为:

(3)

错误!未找到引用源。

为了提高计算速度,使用乘法代替除法,将1/f预先计算出来,其值为0.0019047619. 1.3 三维点云显示

得到三维点云数据(X,Y,Z,R,G,B)后,利用PCL开源库的viewer类显示,如图3所示。

由于深度图像存在噪声,呈现的场景中会出现黑色斑点。从图3中可以看到,呈现的场景中出现大量黑色斑点,严重影响了场景观看及进一步处理。左下方的黑色显示器部分,出现了不连续的块状,对照图3及相应的深度图4,发现这是由于这部分未得到深度信息所致。而图像右下角的椅子后面,由于红外线被椅子挡住,不能测量出深度信息,因此会出现一片阴影区域,这是由于测量原理所导致的,无法消除。

因此,在三维点云进一步的处理之前,需要对其进行降噪处理,填补未得到的深度信息。

从深度图4可以看到,深度图像具有很强的边缘性,前景与背景有很大的深度差,需要在降噪的时候保留这些边缘信息。如果处理不当,将边缘平滑,在最后的点云图显示时,会在前景与背景之间出现过度结构,不仅影响显示,而且改

变了场景内容。另一方面,由于算法需要做到实时性,要求滤波算法效率要高,但是又不能影响算法精度。本文针对这些问题,一一提出了自己的解决方案。

图3 场景三维点云显示图

图4 场景深度图

2 噪声分析

Kinect是以红外线发出人眼看不见的class1 镭射光,经过镜头前的光栅将镭射光均匀分布投射在测量空间中,再经过红外线摄像头记录下空间中的各个散斑,得到原始资料后再利用专用芯片计算出深度图像。该技术的关键是镭射光散斑,当镭射光照射到物体表面的时候,会形成随机的放射斑点,称之为散斑。如果不能在物体表面形成反射散斑,我们也就不能得到该物体的深度信息,这是第一种深度图像噪声。发生这种情况一般有两种原因:一是特殊材料,如透明玻璃、镜子、吸收红外线材料;二是特殊结构,不能反射散斑。

图5是从Kinect红外摄像头中得到的包含散斑的原始图像,图中白色斑点即为镭射光散斑;图6为计算得到的深度图像。图5、6中,透明玻璃窗处因为将镭射光投射过去而没有形成镭射光散斑,故无法得到深度数据。

第二种深度图像噪声是常规的图像噪声,是由Kinect软硬件本身所照成的噪声。图7是利用Kinect拍摄白色墙壁得到的深度图,图8是将深度图像左上角放大得到的三维可视化图像。从图8中可以看出,即使测量平面也会得到噪声。一般来说,Kinect深度图像的分辨率为3~4mm,即大于3~4mm的深度数值差才会被视为两者具有不同深度。

页码 计算机应用研究 第28卷

图5 红外摄像头得到的原始图像

图6 对应的深度图像

图7 平面墙深度图

图8 平面墙深度图三维可视化

3 去噪

一般图像滤波可以用公式(4)表示:

(4) 错误!未找到引用源。

式(4)中,错误!未找到引用源。为滤除噪声后的图

像,错误!未找到引用源。为像素错误!未找到引用源。 的

领域范围,一般情况下是以

错误!未找到引用源。

为中心的

矩形区域,错误!未找到引用源。 为滤波器在

错误!未找到引用源。 点处的权值,错误!未找到引用源。 是唯一化

参数,I是噪声图像,其中 错误!未找到引用源。 (5)

对于双边滤波[7][8][9],权值系数由空间域权值

误!未找到引用源。和图像灰度域权值

错误!未找到引用源。组成,即

错误!未找到引用源。

(6)

其中:

(7)

错误!未找到引用源。

(8)

错误!未找到引用源。

式(7)(8)中错误!未找到引用源。、

错误!未找到

引用源。

为基于高斯函数的标准差,决定了双边滤波器的性

能,限定了像素点的相对空间位置、灰度变化范围。根据公式(6)(7)(8),双边滤波本质上是一种改进的高斯滤波,在滤波的同时利用灰度变化信息来保留边缘信息。其权值根据领域灰度差做调整,即在错误!未找到引用源。领域范围内,如果点

错误!未找到引用源。处的灰度与

错误!未找到引用源。处越接近,权值w越接近高斯滤波权值。在

错误!

未找到引用源。 固定的情况下,错误!未找到引用源。 过

大,不同灰度差对应的权值w均较大,则失去了利用灰度变化保留边缘信息的效果,双边滤波器退化为高斯滤波器;

误!未找到引用源。

过小,权值w对不同灰度差过于敏感,

则失去了滤波的效果。因此,对于输入图像,我们需要对输入图像的噪声范围有一个大概认识,设置合理的参数。针对Kinect得到的深度图像,将超过4mm的深度差视为不同深度的物体表面,其权值小于0.5,则

错误!未找到引用源。

经计算为34. 使用双边滤波方法,假设图像分辨率为640×480,错误!未找到引用源。为5×5正方形,图像帧率为30帧,则要计算错误!未找到引用源。

权值,1秒钟大约需要计算

2.3亿次指数运算,大大地限制了滤波速度。而且,对于Kinect得到的深度图像,因为噪声范围已知,因此不需要使用这么复杂的错误!未找到引用源。

来计算权值。在本文

中,对式(8)进行了修改,使用简单的二值函数来替换,如式(9)所示。

(9) 错误!未找到引用源。

式(9)使用一个减法、一个取绝对值和一个比较运算

页码 计算机应用研究 第28卷

替换,大大减少了运算量,并能够理想的做到深度差值大于4mm即判断为不同表面,将其权值设为0. 如果,那么使用修改过的式(9)

错误!未找到引用源。

计算得到的,即不能利用周边已知的

错误!未找到引用源。

深度图像值进行补全。文献[10]利用高分辨率图像对低分辨率图像进行升采样,以弥补低分辨率图像中的信息缺失。考虑到RGB图像中的信息是完整的,本文将RGB图像和深度图像结合,将缺失的深度图像补全。假设深度信息与灰度信息具有相同的变化趋势,将滤波器权值修改如式(10)。

错误!未找到引用源。(10) 其中: (11) 错误!未找到引用源。 式(11)中G为深度图像对应的色度图像灰度值,

错误!

未找到引用源。为基于高斯函数的标准差,限定了色度图像

的变化范围。 至此,得到整个滤波过程如下:对于每个深度值,若为0,则利用式(10)(7)(11)补全深度信息;若不为0,则利用式(6)(7)(9)进行降噪。这个算法在降噪的同时很好地保留了深度信息,并弥补了未得到的深度信息。

4 实验结果及实时性分析

本文使用C++编程并实现了双边滤波和本文的滤波算法,并比较两者的性能。为了方便比较两者性能,两者均设定领域错误!未找到引用源。为5X5的正方形,

错误!未找

到引用源。均设为3。双边滤波算法中取

错误!未找到引用

源。

为34,这样正好能够使得4mm以上的深度差其权值小于0.5。本文滤波算法中取错误!未找到引用源。

为1。

针对原始三维点云数据,图9(a)(b)是使用双边滤波后得到的深度图像及对应点云图,图9(c)(d)是使用本文滤波算法后得到的深度图像及对应点云图。与图3比较,图9(b)中的黑色斑点大大减少,说明双边滤波对于第二种常规的深度图噪声具有明显的降噪效果。但是通过比较图4与图9(a),场景中的第一种噪声——缺失的深度信息,即图中的黑色块状基本上没有变化,说明双边滤波对第一种噪声没有作用。

与图9(b)比较,图9(d)中黑色斑点具有明显减少,但是没有完全消除,说明本文算法比双边滤波具有更好的第二种噪声的降噪效果。比较图9(d)与图4,场景中的黑色块状基本消除,整个场景的深度信息被补全,说明本文算法能够很好的去除第一种噪声。

图9 两种滤波算法性能比较

分别对上述两个算法程序进行计时,得到两者运行时间如表1所示。

表1 双边滤波及本文算法运行时间表 算法名称 运行时间(ms) 双边滤波

1750 本文算法

294

相对于双边滤波算法需要的1750ms,本文算法将运算时间减到了294ms,为原来的0.168,大大提高了程序运算效率。但是,考虑到三维重建的实时性,需要进一步使用多核技术或者GPU加速技术对程序进行优化,将时间减少到30ms以下。

5 结束语

本文利用Kinect技术实现了实时场景三维重建。由于Kinect的技术原因,获取的深度图像存在大量噪声。之后分析噪声,根据来源将深度图像噪声分为第一种缺失信息噪声,和第二种常规图像噪声。针对现有的双边滤波,提出了一种改进算法。新算法根据深度图像噪声范围为3~4mm的特点,将双边滤波中的深度差部分的权值改为二值函数,还结合RGB图像弥补了缺失的深度信息。实验表明,本文提出的算法针对第二种噪声,无论在降噪性能还是计算效率上,都远远优于双边滤波。另外,对于双边滤波无法处理的第一种噪声也有很好降噪效果。但是,本文算法在实现上还需要进一步优化,提高计算效率以达到实时效果。

参考文献:

[1] FRANK DELLART, STEVEN SEITZ, CHUCK THORPE et al.

Structure from Motion without Correspondence:Society Conference on Computer Vision and Pattern IEEE Computer Recognition, 2000[C]. Vol.2: 557-564.

[2] STEVEN M. SEITZ, BRIAN CURLESS, JAMES DIEBEL et al. A

comparison and evaluation of multi-view stereo reconstruction algorithms: In Proceedings of the IEEE conference on computer vision and pattern recognition, 2006[C]. Vol.1: 519–526.

[3]Introducing Kinect for Xbox 360[EB/OL].(2012)[2012-8-10].

http://www.xbox.com/en-US/kinect

[4] PMD[vision] CamCube 3.0[EB/OL]. (2012) [2012-8-10].

http://www.pmdtec.com/products-services/pmdvisionr-cameras/pmdvisionr-camcube-30/ [5] R. NEWCOMBE, A. DAVISION, S. IZADI. KinectFusion: Real-time

dense surface mapping and tracking: IEEE and ACM Intl. Sym. on Mixed and Augmented Reality (ISMAR), 2011[C]. 127–136.

[6] KURT KONOLIGE, PATRICK MIHELICH. Technical description of

页码 计算机应用研究 第28卷

Kinect calibration [EB/OL].(2011)[2012-8-10]. [9] 谢勤岚.结合双边滤波和多帧均值滤波的图像降噪[J].计算机工程 http://www.ros.org/wiki/kinect_calibration/technical 与应用,2009,45(27):154-156. [7] C. TOMASI, R. MANDUCHI. Bilateral Filtering for Gray and Color [10]JOHANNES KOPF, MICHAEL F. COHEN, DANI LISCHINSKI et

Images: Proceedings of the Sixth International Conference on al. Joint Bilateral Upsampling[J]. ACM Transactions on Graphics, Computer Vision, 1998[C]. 839. 2007, v.26 n.3[8] 杨学志,徐勇,方静等.结合区域分割和双边滤波的图像去噪新算法

[J].中国图象图形学报,2012,17(1):40-48.

基于Kinect深度信息的实时三维重建和滤波算法研究

第29卷第1期计算机应用研究Vol.29No.12012年1期ApplicationResearchofComputersJan.
推荐度:
点击下载文档文档为doc格式
0gqhl11yrk7f1wk0kidd
领取福利

微信扫码领取福利

微信扫码分享