APP下载

采用两台Kinect相机的三维人体数字化

2016-03-22陈兴梁洁杜希瑞闫佳李健

电脑知识与技术 2016年1期

陈兴++梁洁++杜希瑞++闫佳++李健

摘要:三维重建技术在计算机视觉领域中一直是一个重要的研究课题。本文采用由两台Kinect构建的系统对人体进行三维重建,首先利用张正友方法对两台Kinect进行标定;其次,分别使用两台Kinect对人体进行上下半身全面数据扫描并获取相应的三维点云;最后,利用ICP算法对上述两组点云数据进行拼接以得到完整的人体三维点云模型。实验结果表明,本文提出的方法在人体三维重建方面效果较好,具有广泛的使用价值。

关键词:三维人体重建;Kinect标定;ICP算法

中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2016)01-0192-04

3D Digitization of Human Body Using Double Kinects

CHEn Xing , LIANG Jie, DU Xi-rui, YAN Jia ,LI Jian

(School of Electrical and Information Engineering, Shaanxi University of Science and Technology, Xian 710021)

Abstract: Nowadays 3D reconstruction technology is a hot issue in computer vision. In this paper, a new method is utilized to realize the reconstruction of human body in three-dimension by two Kinects. Firstly, the two Kinect cameras are calibrated using Zhangs method; Then, human body are scanned with two Kinect cameras respectively and get corresponding three-dimensional point cloud data; Finally, the 3D full-view whole body point cloud data are stitched using ICP algorithm. It is verified with experiment that the method used here can ensure good results and have the potential to be used widely.

Key words:3D human body reconstruction; Kinect calibration; ICP

随着计算机视觉理论的发展和硬件技术的进步,三维重建技术也愈发的成熟并且已经开始应用于人们的现实生产和生活,在计算机动画、人机交互等领域已经有一定的应用,但是传统的三维重建技术存在设备复杂,操作繁琐以及成本高昂等局限,导致三维重建技术的应用范围狭隘。

2010年微软首次推出了Kinect体感外设,这款设备的出现打破了传统三维人体重建过程中图像采集设备复杂、成本高昂、操作繁琐等限制因素,使获取人体深度信息的设备和操作变得简单、快捷,成本也大大的被降低。

近年来,一些研究者将Kinect深度相机[1]作为扫描仪应用在三维重建领域,包括场景、人脸和人体等的重建。Bernardini归纳了基于深度图像的三维重建流水线。Allen等从已有的三维扫描数据库中提取数据,采用模板匹配的方法,通过解决模板顶点的仿射变换最优化问题来重建人体模型。这类方法也同样适用于人体重建,但是存在部分数据缺失和扫描模型闭合处出现不规则形变等问题。

本文将微软公司开发的Kinect二代体感设备应用到三维人体建模的实际应用中,相对于以往的方法具有设备体积较小、使用方便、价格相对较低的优势。

1 系统组成与总体技术流程

1.1 kinect简介

Kinect 是一款体积相对较小的体感外部物理设备,但它的内部结构却是相当复杂。其主要的结构可以分成三个部分,分别是一个系统级芯片、三个摄像头以及一组四元麦克风阵列。Kinect for windows 2.0主体结构组成如图1所示:

图1 Kinect for windows 2.0主体组成图

1.2 系统平台搭建

系统硬件组成如图2所示,主要包括两台Kinect设备、一个自动转台(可分档,60~120秒/圈)和计算机组成,扫描得到的点云数据经适当的处理后,可传至3D打印机(可选)打印出个性化的三维人体模型。

图2 实验系统硬件组成

1.3 总体技术流程

本文总体技术流程如图3所示。首先,利用棋盘格标定的方法对两台Kinect进行标定;然后使用Kinect分别对站立于旋转台上的被测者进行上下半身的360度点云数据采集;最后将标定结果以及采集人体三维点云数据进行ICP配准融合,以获取完整的人体三维模型。

图3 主要技术流程环节

2 关键技术

2.1 Kinect标定

Kinect包含IR摄像头和RGB摄像头,而点云数据的获取主要由IR摄像头完成。经研究发现,IR摄像头与RGB摄像头之间的旋转平移参数非常小,可近似认为两个摄像头在同一世界坐标系,因而本文通过标定RGB摄像头来获得Kinect的标定信息,确保了本文实验的准确性。

首先,选择一个坐标系为参考来描述摄像机和物体的真实位置,则参考的坐标系叫世界坐标系。由空间几何的知识可知,摄像机坐标系和世界坐标系经过旋转和平移后一定能够重合。旋转过程用旋转矩阵[R]来定量表示,平移过程用平移向量[T]来定量表示。图4表示摄像机坐标系与世界坐标系的关系,则空间点[P]在摄像机坐标系和世界坐标系下的齐次坐标分别表示为[(Xc,Yc,Zc,1)T]和[(Xw,Yw,Zw,1)T],二者存在如下关系:

[XcYcZc1=RT0T1XwYwZw1=M1XwYwZw1] (1)

其中,[R]为[3×3]旋转矩阵,[0T=(0,0,0)T],[M1]为变换矩阵。

图4 摄像机坐标系与世界坐标系

2.2 Kinect Fusion 的工作原理

Kinect Fusion通过对从多个角度获取到的深度影像数据进行融合,来重建物体的单帧光滑表面模型。当传感器或是被测人体移动的时候,传感器的位置以及姿势信息被记录下来,包括位置和朝向信息。由于我们知道了每一帧图像的姿势以及帧与帧之间的关联,多帧从不同角度采集的数据能够融合成单帧重建好的定点立方体。当我们移动传感器或者被测物体时,深度数据信息被不断加入。

第一步是深度影像数据的转换。SDK将Kinect中获取的原始深度帧数据转换为以米为单位的浮点数据,紧接着对该数据进行优化,通过获取摄像头的坐标信息,将这些浮点数据转换为和Kinect摄像头朝向一致的点云数据。第二步是计算全局的摄像头的姿势信息,包括摄像头的位置和朝向,通过使用交互型的配准算法在摄像头移动时不断获取其姿势,这样系统始终知道当前摄像头相对于起始帧时摄像头的相对姿势。第三步是将从已知姿势摄像头产生的深度影像数据融合为代表摄像头视野范围内的景物的立方体。这种对深度数据的融合是逐帧,连续进行的,同时通过平滑算法进行了去噪,也处理了某些场景内的动态变化。最后,从传感器视点位置对重建立方体进行光线投射,重建的点阵云能够产生渲染了的三维重建立方体。

2.3 ICP算法

ICP算法是一种基于轮廓特征的点配准方法。基准点在CT图像坐标系及世界坐标系下的坐标点集P = {Pi, i = 0,1, 2,…,k}及U = {Ui,i=0,1,2,…,n}。其中,U与P元素间不必存在一一对应关系,元素数目亦不必相同,设k ≥ n。配准过程就是求取 2 个坐标系间的旋转和平移变换矩阵,使得来自U与P的同源点间距离最小。其过程如下:

(1)计算最近点,即对于集合U中的每一个点,在集合P中都找出距该点最近的对应点,设集合P中由这些对应点组成的新点集为Q = {qi,i = 0,1,2,…,n}。

(2)采用最小均方根法,计算点集 U 与 Q 之间的配准,使得到配准变换矩阵R,T,其中R是 3×3 的旋转矩阵,T 是 3×1 的平移矩阵。

(3)计算坐标变换,即对于集合U,用配准变换矩阵R,T进行坐标变换,得到新的点集U1,即U1= RU + T

(4)计算U1与Q之间的均方根误差,如小于预设的极限值ε,则结束,否则,以点集U1替换U,重复上述步骤。

3 实验

3.1 两台kinect的标定

采用MATLAB标定工具箱实现相机的标定:分别采用两台Kinect拍摄多幅棋盘格平面不同方向的照片,如图5和图6所示。将采集到的图片分别输入到MATLAB当中,利用张正友标定工具箱完成标定,标定结果存储在Calib_Results_up.mat和Calib_Results_down.mat。

图5 Kinect(上)采集标定图像

图6 Kinect(下)采集标定图像

图7为上台Kinect的外部参数,图8为下台Kinect的外部参数。再通过立体定标,得到两台Kinect之间的位置关系,如图9所示。

图7 Kinect(上)外参数

图8 Kinect(下)外参数

图9 两台Kinect立体标定结果

3.2 人体数据采集

在两台Kinect标定完成之后,将站立在旋转平台上面的被测者进行人体数据的360度全面采集。被测者保持身体静止站立,旋转台以每圈120秒的速度进行匀速旋转。

对两台Kinect采集到的人体上半身及下半身的三维点云数据,如图10和图11所示,进行ICP算法的精度配准,配准结果如图12和图13所示。

实验数据表明,本文提出的方法对点云数据拼接效果好,人体表面的三维重建结果误差小,具有较高的精度。

图10 采集到人体上半身三维点云

图11 采集到人体下半身三维点云

图12 ICP算法拼接后的人体三维点云(左侧)

图13 ICP算法拼接后的人体三维点云(右侧)

4 结论与展望

本文利用两台Kinect对人体进行数据采集,基于ICP算法对人体点云进行配准以及人体三维模型进行重建。实验结果表明,本方法计算效率高,操作简单,极大减弱点云数据间的错位,配准效果精确。在实际应用中,具有较好的配准精度和较高收敛速度。后续的研究方向将继续提升点云精度,建立人体三维模型,进一步应用到3D打印领域。

参考文献:

[1]周瑾,潘建江,童晶,等. 使用Kinect快速重建三维人体[J]. 计算机辅助设计与图形学学报,2013, 25(6): 873-879.