APP下载

基于Kinect的三维人体重建

2016-06-22广霖,平,钧,

大连工业大学学报 2016年3期

张 广 霖, 李 吉 平, 彭 健 钧, 庞   浩

( 大连工业大学 信息科学与工程学院, 辽宁 大连 116034 )

基于Kinect的三维人体重建

张 广 霖,李 吉 平,彭 健 钧,庞 浩

( 大连工业大学 信息科学与工程学院, 辽宁 大连116034 )

摘要:提出了一种利用Kinect设备识别和获取三维人体数据,并结合点云库(PCL)进行三维人体模型重建的新方法。为了达到三维人体重建的目的,在调整参考模型体型系数的基础上,同时利用了ICP迭代算法,将参考模型的点云数据同目标模型的点云数据进行配准。实验结果表明此种方法达到了重建的目的,具有实用性和可行性,同时体现了成本低、方便和实时性强的优点。

关键词:三维人体重建;Kinect;点云库;ICP算法

0引言

三维人体模型作为三维技术的核心产品,在游戏制作、服装设计、电影产品等平台都发挥着不可或缺的作用[1]。获取三维人体模型的方法有很多,如利用大型的三维扫描设备或者复杂的三维建模软件,但这些方法大多是价格昂贵,耗时长。近年来兴起的深度摄像机由于其低廉的价格和操作的便捷性被更多的应用于三维人体模型的获取。Kinect作为深度相机的代表,已成为目前发展最快,应用最多的先导产品[2]。

在进行三维模型的重建之前,获取和识别目标三维人体模型是关键步骤。本文中,采用一台Kinect来识别和获取上半身三维人体信息。Kinect工作原理如下:Kinect一共有三个摄像头,中间是RGB摄像头,用来获取彩色图像;两边是深度传感器,左侧的是红外线发射器,右侧的是红外线接收器,用来检测人或场景的相对位置[3]。Kinect通过红外线发射器发射结构光,然后由红外线传感器接收红外线反射信息,通过对反射信息的处理,就能获得每个像素的深度值[4]。

在利用Kinect获得人体模型的三维数据信息后,需要将获取的三维信息导出,转换为PCL[5]可以处理的点云格式。通过在PCL中对两组数据的配准,不断调整人体模型的系数。在点云配准部分,利用ICP(IterativeClosestPoint)算法[6],来配准获取的目标模型点云和调整后的参考模型点云,配准成功则完成重建。

1获取三维人体模型数据

利用Kinect获取三维人体模型的方法有很多,最常用的是Kinect自带开发工具中的KinectFusion[7],可直接获得人体的三维点云数据。但是获得的点云分散而模糊。利用OPENNI,OpenCV等软件也是常用的方法,但操作过程过于烦琐,配置环境过于复杂。第三种方法是利用Processing[8]软件编程,通过导入SimpleOpenNI库,连接Kinect就可以直接获得三维模型。此种方法操作简单,获得的点云数据较为完整,不需过多的后续处理过程。因此,选择利用Kinect结合Processing的方法来获取三维人体模型点云数据。

2三维点云数据的处理

2.1预处理阶段

在利用Kinect获取三维人体数据的过程中,由于其视角单一性,必然会造成边缘噪声或少量阴影问题,影响信息获取的准确性。为了减弱这种影响,在Processing编程中,添加了背景挡板,来吸收噪声影响和阴影反射部分。在获得了三维数据信息之后,因要将其转换为PCL中处理点云的.pcd格式,由于想要的仅仅是三维人体模型的点云,所以需要利用点云分割将背景墙除去[9]。

2.2坐标系的转换

在进行重建之前,首先要选择参考模型,选择参考模型需按照以下规则:首先,在姿势上,需选择同目标模型相同或相近的姿势;其次,需选择完整的无缺陷的人体模型;第三,选择参考模型时要选择年龄段差异较小的模型。由此,选择最佳参考模型如图1所示。

图1 参考模型点云效果图

在将参考模型和利用Kinect获取的目标模型同时显示在PCL中时,会发现两组点云数据并不在同一坐标系上,如图2(a)所示,其中右上角点云为目标模型的点云数据。因此,还需要转换其中一组坐标系,将两组点云调整到同一坐标系下,并且距离上也要相近或重合。在PCL中利用MatrixTransform程序,并改变相应的系数,将参考模型调整90°,同时调整各个方向上的距离,即可得到转换后的结果,如图2(b)所示。

(a) 未转换坐标系前的两组点云

(b) 转换坐标系后的两组点云

图2参考模型和目标模型坐标系的转换

Fig.2Matrixtransformationofthereferencemodel

andthetargetmodel

3三维人体重建

3.1ICP算法

在进行三维人体重建的过程中,采用ICP迭代法配准目标模型和参考模型。ICP算法分为3种:点到点搜索法;点到投影搜索法;点到面搜索法[10]。重建中采用的点到点搜索法是最经典的ICP算法之一,其原理如图3所示,根据源曲面上的一点P来寻找目标曲面上相应的最近点Q。因此,参考模型和目标模型,分别作为源曲面和目标曲面,由于两组人体模型对应曲面中的点的距离都相近,源曲面上的点可以利用点到点搜索法来配准目标曲面上相应的点[11]。在参考模型向目标模型重建的过程中,通过不断地改变参考模型的系数,再利用配准进行对比,直到可以配准在误差允许范围内,最终达到人体重建的目的。

图3 点到点搜索法

3.2实验结果分析

实验中,利用Kinect获取了两组目标模型的点云数据,分别为目标模型A,目标模型B。

目标模型A同参考模型的差异从初次配准的效果图(图4)可以看出,相比于参考模型,目标人体模型更瘦。假定目标模型的体型系数固定,参考模型的体型系数为原始值1,此时,调整参考模型的体型系数为0.9,调整之后的参考模型如图5(a)所示,此时,将调整后的参考模型同目标模型配准,配准结果如图5(b)所示,红色部分代表数据未迭代配准成功的部分。从可视化效果看,相比调整前,调整后的参考模型同目标模型体型更加接近。

图4 模型A同参考模型的初次配准图

(a) 点云可视化数据图

(b) 点云配准结果图

图5参考模型体型系数为0.9时的点云可视化数据图和点云配准结果图

Fig.5The visualization data and result of registration of reference model point cloud when shape coefficient is 0.9

继续调整体型系数为0.8,在经过可视化后,此时的参考模型和目标模型更为接近。配准结果显示,两组点云数据全部迭代成功。继续调小体型系数后,误差增大,所以,当体型系数为0.8 时,达到了向目标模型A重建的最佳值效果,如图6所示。

(a) 点云可视化数据图

(b) 点云配准结果图

图6参考模型体型系数为0.8时的点云可视化数据图和点云配准结果图

Fig.6The visualization data and result of registration of reference model point cloud when shape coefficient is 0.8

目标模型B同参考模型的差异相反,其体型比参考模型略胖,如图7所示。所以需增大参考模型的体型系数值至同目标模型配准成功。

图7 模型B同参考模型的初次配准图

目标模型B作为被重建的模型,仍保持其体型系数不变。设参考模型的原体型系数为1,将体型系数调至1.1,得到新的参考模型如图8(a)所示,从可视化结果中看出,参考模型体型增大;利用ICP算法配准后,结果如图8(b),虽有小部分未能配准,但大部分已配准成功。继续调整体型系数会发现,配准的失败部分增多,因此将体型调整到1.1,即可达到人体重建的最佳效果。

(a) 点云可视化数据图

(b) 点云配准结果图

图8参考模型体型系数为1.1时的点云可视化数据图和点云配准结果图

Fig.8The visualization data and result of registration of reference model point cloud when shape coefficient is 1.1

4结论

Kinect的兴起带动了三维人体模型的发展,使得三维技术的应用领域进一步扩大,如日常生活中的虚拟试衣镜、3D打印机等[12]。本文利用Kinect获取三维人体信息,同时结合PCL进行三维人体的重建,Kinect价格低廉,PCL不需要过多复杂的操作,整个流程简单且实用性强,尤其适用于游戏人物的制作中。方法的不足之处在于,由于仅采用了单台Kinect,只能获取人体上半身的三维信息。未来的工作可以利用多台Kinect[13]或者将Kinect和其他相机标定相结合的方法[14],获取人体全身模型的三维信息,从而实现全身的三维人体重建。

参考文献:

[1]LIJP,TONGG,SHIDB,etal.AutomaticsmallblendrecognitionfromB-repmodelsforanalysis[J].EngineeringwithComputers, 2009, 25(3): 279-285.

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

[3]ZHANGZY.MicrosoftKinectsensoranditseffect[J].IEEEComputerSociety, 2012, 4(19): 4-10.

[4]TONGJ,ZHOUJ,LIULG,etal.Scanning3DfullhumanbodiesusingKinects[J].IEEETransactionsVisualizationandComputerGraphics, 2012, 4(18): 643-650.

[5] 朱德海.点云库PCL学习教程[M].北京:航空航天大学出版社,2012.

[6] 杨现辉,王惠南.ICP算法在3D点云配准中的应用研究[J].计算机仿真,2010,27(8):235-238.

[7] 朱笑笑,曹其新,杨扬,等.一种改进的KinectFusion三维重构算法[J].机器人,2014,36(2):129-136.

[8]SHIFFMAND.LearningProcessing[M].NewYork:MorganKaufmann, 2008.

[9]GREGB.MakingThingsSee[M].Sebastopol:O’ReillyMedia, 2012.

[10]JOSTT,HUGLIH.FastICPalgorithmsforshaperegistration[EB/OL]. [2014-04-01].http://citeseerx.ist.psu.edu/viewdoc/versions?doi=10.1.1.429.9085.

[11]KIMD,KIMD.AfastICPalgorithmfor3-Dhumanbodymotiontracking[J].IEEESignalProcessingLetters, 2010, 17(4): 402-405.

[12] 刘鑫,许华荣,胡占义.基于GPU和Kinect的快速物体重建[J].自动化学报,2012,38(8):1288-1297.

[13]BEYLT,NICOLAIP,RACZKOWSKYJ,etal.Multikinectpeopledetectionforintuitiveandsafehumanrobotcooperationintheoperatingroom[C]//IEEE, 2013 16thInternationalConferenceonAdvancedRobotics(ICAR).Montevideo:IEEE, 2013.

[14] 谭剑波,张光刘,李琳.体感设备与被动立体相结合的人机交互方法研究[J].合肥工业大学学报,2011,34(2):22-25.

Reconstructionof3DhumanbodybasedonKinect

ZHANGGuanglin,LIJiping,PENGJianjun,PANGHao

(SchoolofInformationScienceandEngineering,DalianPolytechnicUniversity,Dalian116034,China)

Abstract:A method for 3D human body reconstruction was presented, which could use Kinect to collect 3D data of human body and point cloud library (PCL) to process point 3D data. The iterative closest point algorithm was adopted for registering the captured human body 3D point cloud data with a standard reference human body model after changing shape coefficient of reference model. The result demonstrated that this method was feasible and had advantages of low-cost and real-time.

Key words:3D human body reconstruction; Kinect; point cloud library; ICP algorithm

收稿日期:2015-04-01.

基金项目:辽宁省自然科学基金项目(2014026001);辽宁省博士科研启动基金项目(20141112);辽宁省教育厅科学研究一般项目(L2014219).

作者简介:张广霖(1990-),女,硕士研究生;通信作者:李吉平(1971-),男,教授.

中图分类号:TP391.41

文献标志码:A

文章编号:1674-1404(2016)03-0230-05