韩 凯, 庞宗强, 王 龙, 岳 东
(南京邮电大学先进技术研究院,江苏 南京 210046)
基于深度扫描仪的高辨识度三维人体模型重建方法
韩 凯, 庞宗强, 王 龙, 岳 东
(南京邮电大学先进技术研究院,江苏 南京 210046)
3D照相打印馆人像的打印质量取决于3D扫描获得的三维人体模型的辨识度。然而,由于现有3D人体扫描仪价格昂贵、操作复杂等原因,使得3D人像打印成本高、耗时长和打印精度较低。针对这些缺点提出一种基于深度扫描仪重建高辨识度三维人体模型方法。利用多组深度扫描仪分工协作、优势互补,分别获取高辨识度的人体面部五官点云数据,上半身与全身表面轮廓点云数据。然后,通过引入特征点和改进的最近点迭代法将采集到的三组点云数据进行对齐、替换、拼接,将拼接后的无拓扑关系的点云数据进行曲面重构即可获得高辨识度的三维人体模型。该方法的扫描时间较短,以较低的成本构建了具有高辨识度的三维人像模型。
三维人体重建;高辨识度三维人体模型;Kinect;最近点迭代;特征点
3D照相打印馆人像的打印质量取决于3D扫描获得的三维人体模型的辨识度。当今获取三维人体模型主要有以下3种方式:
(1) 利用三维制图软件如3Dsmax、Maya等创建三维人体模型。其缺点是花费时间较长、技术难度较高,得到的模型与现实中的人物有一定差距。
(2) 利用采集人体不同方位的序列图像重建三维人体模型[1]。此种人体模型重建方法,虽然利用了先进的多视图方法能够得到不错的建模结果,但其缺点是计算量大,处理时间长,重建结果易受光照条件影响,而且会存在物体表面纹理稀疏、自遮挡等现象[2]。
(3) 利用专业非接触式三维扫描仪直接对人体进行全方位扫描获得三维人体模型的方法[3]。此种方法重建模型速度快且建模精度高,但是扫描仪体积庞大而且价格昂贵,普通用户难以接受。例如Cyberware人体扫描系统市场报价为24万元。
近些年出现了PrimeSensor和Microsoft Kinect深度扫描仪,是一种利用光编码技术(light coding)获取物体表面点云数据的深度扫描仪。其工作原理是利用扫描仪发射的激光穿透毛玻璃形成随机衍射斑点(laser speckle),这些具有高度随机性的衍散斑会随着距离的不同呈现出不同的图案,从而形成一个具有三维纵深的“体编码”。根据物体表面不同的散斑图案,可以推断出物体表面的几何位置。
深度扫描仪重建三维人体模型的优势在于其能够实时输出点云信息,使得重建不完全依赖于图像。
与专业非接触式三维扫描仪相比,深度扫描仪使用的是连续而非脉冲的主动照明,因此不需要特制的感光芯片,利用普通的COMS感光芯片即可实现,在一定程度上降低了深度扫描仪的制造成本。不仅如此,深度扫描仪在使用时无需设置额外参数,通过简单操作即可扫描物体表面获得点云数据。
随着深度扫描技术的发展,近些年来有不少基于深度扫描仪的三维人体重建方法陆续被提出。如Tong等[4]结合了图像序列的特征点对应关系以及三维点云实现了点云的非刚性注册,利用 3台Kinect深度扫描仪扫描获得的三维点云数据进行三维人体模型重建。此方法获得的模型虽然有着比较完整的全身轮廓,但是在面部五官和头发等需要具有较高辨识度的细节方面表现较差。周瑾等[5]提出了利用人体模型库来重建三维人体模型的方法。首先,使用4台Kinect深度扫描仪从不同视角同步扫描人体,将得到的点云数据进行去噪处理,然后将去噪后的点云数据作为可变模型拟合算法输入,使用人体动态形态模型(shape completion and animation of people,SCAPE)和最近点迭代(iterated closest point,ICP)查找方法将一个标准模型逐步迭代变形成人体点云数据实现三维人体建模[6-7]。这种建模方法受到人体参数化模型子空间的限制,在数据采集过程中要求用户的姿势与标准模型相似,不能进行个性化三维人体模型采集。
深度扫描仪在重建三维人体模型时还存在不足,当重建高辨识度的三维人体模型时还需关注以下问题:
(1) 利用深度扫描仪建立全身人体模型时,由于采集精度丢失严重、噪声大,易导致人体模型面部表情模糊、辨识度低。
(2) 在扫描过程中,人体很难保持长时间的静止,其采集应在较短时间内完成。
(3) 发型是人体的重要组成部分,由于其几何反射性比较复杂,很难一次完成采集。
(4) 在模型采集过程中,不应该对采集对象的姿态进行人工干预。一个好的模型,其重建方法应该可以适应各种不同的姿态,满足多样性需求。
(5) 重建模型中,人脸的细微差异很容易被发觉。
基于对现有方法不足之处的认识与重建三维模型中重要问题的考虑,本文提出了基于深度扫描仪的高辨识度三维人体模型重建方法,包括三维人体点云的采集与处理两个部分。在三维人体点云数据的采集中,利用3组不同类型深度扫描仪的各自优点,分工协作,分别进行人体全身轮廓、半身轮廓、精细面部五官点云数据的采集。然后利用多帧求和平均与双边滤波器的方法将采集到的人体三维点云数据进行去噪、去除异常点处理[8]。随后将去噪后的点云数据通过引入特征点和改进的最近点迭代的方法,将3组点云数据进行对齐、替换、拼接得到一个高辨识度的三维人体模型点云数据[9-10]。最后利用泊松曲面重建算法将没有拓扑关系的点云数据重构[11-12]为不规则的三角网即可获得高辨识度的三维人体模型[13-15]。该重建方法在充分利用深度扫描优点的同时,还解决了其所存在的大范围扫描与高辨识度模型获取相矛盾的问题,而且对用户姿势也没有限制,可以快速重建出一个高辨识度的三维人体模型。由于人体模型的主要细节都在面部(如面部轮廓、眼鼻口等五官等),
而身体部分主要是衣物等,细节要求不高,所以提高人像辨识度的操作主要都集中在上半身部分。
1.1 系统设计与三维人体点云数据采集流程
为了能够快速高质量地采集到三维人体点云数据,本文设计了基于深度扫描仪的快速三维人体点云数据采集系统如图1。
图1 基于深度扫描仪的三维人体点云数据采集系统
本文选用了Microsoft Kinect及PrimeSensor两款深度扫描仪。通过大量实验发现,Microsoft Kinect深度扫描仪扫描范围广,当扫描范围设置为2.0 m×2.0 m×2.0 m时可采集一个成年人的全身轮廓点云,但采集的数据精度不高。考虑到这个情况,本系统只用 Microsoft Kinect深度扫描仪作为全身扫描。PrimeSensor深度扫描仪扫描精度高,可清晰表现出被测对象的面部五官特征与头发细节。为了提高采集数据的精度,本文分别选择扫描范围为0.4 m×0.4 m×0.4 m与0.3 m×0.3 m×0.3 m的PrimeSensor深度扫描仪用于半身与面部五官扫描。三维人体点云数据采集步骤如下:
步骤 1. 被测对象站立于转盘之上保持不动,将3个安装有不同深度扫描仪的支架分别放置于被测对象的四周,位置随意,不相互干扰即可。
步骤 2. 调整全身扫描仪支架距离转盘的位置,调整平台的高度与角度,直到从计算机屏幕上可看到人体全身轮廓点云数据为止。对于半身扫描仪与面部五官扫描仪重复以上操作。半身扫描仪的目标是采集半身轮廓点云数据,面部五官扫描仪的目标是采集到精细面部五官点云数据。
步骤 3. 用遥控器打开转盘的旋转按钮,被测对象随着转盘做匀速旋转。转盘旋转一周需20 s,各扫描仪完成相应部位的三维点云数据采集,采集阶段到此结束。
1.2 3组点云数据对比
3组扫描仪各有特点,将采集到的3组数据进行对比可以直观地感受到其区别。图2(a)为全身扫描仪采集的全身轮廓点云。其特点是对人体的轮廓信息表现良好,但对头部细节信息不能很好地表现出来。图2(b)为半身扫描仪采集的半身轮廓点云。其特点是对人体的头部轮廓、头发信息表现良好,但是五官细节表现不好。图2(c)为面部五官扫描仪采集的精细面部五官点云。其特点是对于面部五官的精细度表现良好,但是采集范围狭小。
图2 扫描仪扫描得到的点云数据
2.1 点云的预处理
深度扫描仪采集到的点云数据通常会存在噪声等缺陷,一般要进行去噪预处理[16]。首先,需将所有帧的点云数据求和平均以去除大的噪声。然后,再用双边滤波器去除微小的噪声,去噪前、后的效果如图3所示。
2.2 点云的拼接
不同扫描仪得到的点云(简称多视点云)处于不
同测量坐标系中。为进行多组扫描点云之间的拼接,这些多视点云需要变换到统一的全局坐标系下。利用文献[9-10]提出的三维点云配准方法进行多视点云的对齐、替换、拼接。
图3 去噪前、后点云模型对比图
2.2.1 特征点的粗略配准
式(1)采用奇异值矩阵分解算法[17],可计算出初始坐标变换参数R0和T0。用特征点的粗略配准所得到的初始坐标转换关系R0和T0对数据点云转换以后,可以得到配准的初步结果。
2.2.2 点云数据的精确配准
在点云数据的精准配准过程中,可利用上述粗略配准的两组点云新的位置作为初始位置,并利用其统计的匹配点对集合作初始的匹配点对集合。在其后的迭代匹配过程中,采用改进后的最近点迭代法进行点云配准,在利用ICP算法作为匹配点的选取策略的同时还需加入一个迭代终止条件,避免两组模型中不属于正确匹配区域范围内的点进入到匹配点对集合。
利用改进后的最近点迭代算法进行点云数据的配准,其难点主要是在于最近点搜索和点云数据之间距离的求解。最近点可以采用 K-D树算法[18]来搜索,K-D树是一种分割K维数据空间的数据结构,K-D树是每个节点都为K维点的二叉树。所有非叶子节点可视作一个超平面把空间分割成两部分,在超平面左边的点代表节点的左子树,右边的点代表节点的右子树。使用K-D树作为三维空间划分模型时,搜索两组点云数据之间的最近点对可大幅度地提高检索效率。由于ICP算法在每次迭代时都需要去查找当前的点在另一个集合中的最近点,为了加速搜索,故采用K-D树算法进行搜索。
本文设迭代终止条件为S,采用改进后的最近点迭代算法步骤如下:
(1) 采用奇异值矩阵分解,计算初始坐标变换参数R0和T0,利用其对两组点云数据A0和B0中的一组进行变换,假设变换A0,可得到A1及变换后的点云数据A1和B0之间的距离S1。
(2) 在点云数据 A1和 B0的重叠区域,采用K-D树算法找出两组点云数据中的最近点对,即得到n组匹配点对。
(3) 对于上述的n组匹配点对,运用四元数算法[19]计算三维坐标变换参数R1和T1。
(4) 运用上述得到的三维坐标变换参数 R1和T1,对A1进行变换,得到A2,此时计算出点云数据B0和A2之间的距离S2。
(5) S2若满足迭代终止条件S,则停止。否则回到步骤(2)循环执行,直到Si小于迭代终止条件S为止。
2.2.3 点云数据之间的距离
求取点云数据之间距离的方法:首先,求出两组点云数据的重叠部分,对于B0在重叠部分的点bi,利用K-D树算法求出点bi在另一组点云Ai的最近点。然后,求出点bi与其对应的最近点之间的距离Si,以Si作为bi到另一组点云Ai的距离。最后,根据式(2)计算两组点云之间的距离:
式中,D为两组点云之间的距离,N为重叠部分点云数据B0中点的个数,Si作为bi到另一组点云Ai的距离。
2.3 3组点云的具体拼接过程
利用预处理后的3组点云数据进行数据拼接。本文所选取的3个特征点分别为左、右眼角和鼻尖。如图4~5中所示,首先用精细面部五官点云与半身轮廓点云进行对齐拼接,用精度高的面部五官替代半身轮廓点云中表现欠佳的五官细节,得到一个高辨识度的上半身模型点云。再利用全身轮廓点云与高辨识度上半身模型点云进行融合拼接,用高辨识度的上半身模型点云替代全身轮廓点云中精度不够的上半身模型,得到一个高辨识度三维人体模型点云。
图4 高辨识度上半身模型点云合成过程
图5 高辨识度三维人体模型点云合成过程
2.4 曲面重构
经过拼接后的点云依然是空间中的散乱点云,其间没有拓扑关系,为了便于计算机图形学、计算机动画、3D打印等后续应用的处理,本文利用泊松曲面重建算法进行模型表面重构。泊松曲面重建算法一次性考虑所有输入的点云数据,无需对输入数据分块网格重建后再合成,对噪声有较强的鲁棒性。另外泊松方法有层次的局部支撑基函数,其求解可以简化为一个良态稀疏线性系统,因而得到了广泛的应用。本文利用Meshlab平台提供的Poisson Reconstruction功能进行三维人体模型的曲面重建,得到的结果完整,没有明显缺陷。曲面重构的结果如图6所示。
本文使用VS2010下的C++语言实现该系统,Kinect与PrimeSensor数据采集是在Kinect SDK1.8版本下的Kinect fusion基础上完成优化。三维人体模型重建的流程图如图7所示。
本文原始数据采集过程中,使用两台PrimeSensor深度扫描仪分别采集测量对象的精细面部五官、头发细节与上半身轮廓点云,之所以单独采集上述特征细节是为了提高重建出的三维人体模型的辨识度。由于人体模型的主要细节都在面部(如面部轮廓及五官等),身体部分主要是衣物等,对细节的要求不高,所以提高人像辨识度的操作主要都集中在上半身部分。对于3组深度扫描仪采集到的点云数据的处理思路是:利用特征点和改进的最近点迭代算法将原始模型中低精度的部位替换成单独采集的高辨识度部位,增加重建后三维人体模型的精度。对于拼接后的三维人体点云数据进行曲面重构,即可获得高辨识度的三维人体模型。如图8所示,将采集的原始模型与最终得到的模型进行对比,可以非常直观地感受到利用本文方法处理过的模型在辨识度上有大幅提升,大大提高了三维人体模型的辨识度。
图9展示的是二维照片与三维模型之间的对比图,用来表明本文方法能够很好地还原采集对象的外貌。
图6 重构后的高辨识度三维人体模型
图7 三维人体模型重建流程图
图8 原始模型图与最终模型图的对比
图9 二维照片与三维模型对比图
图10 多组三维人体模型
利用Tong等[4]提出的利用三台Kinect的非刚体三维人体扫描重建,重建出的模型不能清晰地显示面部五官、头发细节等人体特征,辨识度不高。相比之下,本文单独利用 2组高辨识度的PrimeSensor扫描仪采集面部五官等人体细节特征,使重建出的三维人体模型具有更高的辨识度。
周瑾等[5]提出的利用数据库重建人体模型的方法是通过拟合SCAPE模型重建出三维人体模型,此方法受人体参数化模型子空间的限制,在数据采集过程中要求用户的姿势与标准模型相似,不能生成个性化人体模型细节,比如姿势、人脸、发型、服饰等。本文方法不受模型库的限制,对于用户的姿势没有固定要求,重建出的人体模型在姿态种类上比文献[9]多。
图10中给出了更多的三维人体模型,可以看出本文方法在三维人体模型的辨识度和姿态的多样性上有着不错的表现。图10(a)为一名女性的三维人体模型,头发细节表现良好。图10(b)为一名身高1.9 m的男性三维人体模型,面部的精细度与辨识度好。图10(c)为一名特殊姿势的男性三维人体模型,可以看出本文方法突破了人体参数化模型子空间的限制,可以采集到多样化的三维人体模型。
与传统的三维人体模型重建方法相比,本文方法所需的硬件设备成本低、数据采集简单;另一方面克服了廉价深度扫描仪数据采集精度低、数据采集范围小等缺点,使得重建出的三维人体模型辨识度好,能够满足3D照相打印馆等领域的要求,又因为系统硬件成本低,容易被推广使用。
[1] de Aguiar E, Stoll C, Theobalt C, et al. Performance capture from sparse multi-view video [J]. ACM Transactions on Graphics, 2008, 27(3): 1-10.
[2] Kim Y M, Theobalt C, Diebel J, et al. Multi-view image and ToF sensor fusion for dense 3d reconstruction [C]// Proceedings of International Conference on Computer Vision Workshops (ICCV Workshops). Kyoto: IEEE Computer Society Press, 2009: 1542-1549.
[3] Allen B, Curless B, Popovié Z. The space of human body shapes:reconstruction and parameterization from range scans [J]. ACM Transactions on Graphics, 2003, 22(3): 587-594.
[4] Tong Jing, Zhou Jin, Liu Ligang, et al. Scanning 3D full human bodies using Kinects [J]. IEEE Transactions on Visualization and Computer Graphics, 2012, 18(4): 643-650.
[5] 周 瑾, 潘建江, 童 晶, 等. 使用Kinect快速重建三维人体[J]. 计算机辅助设计与图形学学报, 2013, 25(6): 873-879.
[6] Anguelov D, Srinivasan P, Koller D, et al. SCAPE: shape completion and animation of people [J]. ACM Transactions on Graphics, 2005, 24(3): 408-416.
[7] Besl P J, McKay H D. A method for registration of 3-D shapes [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1992, 14(2): 239-256.
[8] Tomasi C, Manduchi R. Bilateral filtering for gray and color images [C]//IEEE Computer Society Press. Proceedings of the 6th International Conference on Computer Vision. Los Alamitos, 1998: 836-846.
[9] 罗先波, 钟约先, 李仁举. 三维扫描系统中的数据配准技术[J]. 清华大学学报: 自然科学版, 2004, 44(8): 1104-1106.
[10] 吴禄慎, 孔维敬. 基于特征点的改进ICP三维点云配准技术[J]. 南昌大学学报: 工科版, 2008, 30(3): 294-297.
[11] 周 漾. 馆藏文物纹理重建与组织关键技术研究[D].武汉: 武汉大学, 2013.
[12] 吴雪梅, 文 珈, 于广滨, 等. 基于三坐标测量数据的点云曲面重构[J]. 图学学报, 2011, 32(5): 68-72.
[13] 张 炜, 金 涛. 三角网格特征边识别的一种有效方法[J]. 图学学报, 2014, 35(5): 709-714.
[14] 张 伟. 逼近散乱点云数据的三角形网格精确剖分[J].图学学报, 2014, 35(2): 188-194.
[15] 童 晶. 基于深度相机的三维物体与人体扫描重建[D].杭州: 浙江大学, 2012.
[16] 陈晓明, 蒋乐天, 应忍冬. 基于Kinect深度信息的实时三维重建和滤波算法研究[J]. 计算机应用研究, 2013, 30(4): 1216-1218.
[17] Arun K S, Huang T S, Blostein S D. Least-squares fitting of two 3-D point sets [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1987, 9(5): 698-700.
[18] Bentley J L. Multidimensional binary search trees used for associative searching [J]. Communications of the ACM, 1975, 18(9): 509-517.
[19] Horn B K P, Hllden H M, Negahdaripour S. Closed-form solution of absolute orientationusing unit quarternions [J]. Journal of the Optical Society of America A: Optics, Image Science and Vision, 1987, A(4): 629-642.
High Identification 3D Human Body Model Reconstruction Method Based on the Depth Scanner
Han Kai, Pang Zongqiang, Wang Long, Yue Dong
(Institute of Advanced Technology, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210046, China)
The printing quality of 3D portrait in 3D printing photographic house, depend on the 3D scan of the three dimensional human body model identification. However, the traditional 3D body scanner is expensive, complicated manipulation and other reasons, 3D portraits of high printing costs, time-consuming and less accurate printing. In view of these shortcomings a method is proposed based on the deep scanner reconstruct the high degree of recognition three-dimensional human body model. The method combines with the advantages of three groups of different types of the depth scanner, collaboration, respectively to obtain high precision characters facial features and hair detail point cloud data, upper body and the body surface contour point cloud data. Then, the captured three sets of point cloud data will be aligned, replaced, registered by introducing feature points and iterated closest point. The registered of non-topological relations of point cloud data for surface reconstruction can get high precision of 3D human body model. The method of scanning time is shorter, at a relatively low cost to build the 3D portrait with high identification model.
3D human body model reconstruction; high identification degree of 3D human body model; Kinect; iterated closest point; feature points
TP 391
A
2095-302X(2015)04-0503-08
2014-10-15;定稿日期:2014-12-10
韩 凯(1991–),男,安徽和县人,硕士研究生。主要研究方向为3D打印自动化装备、计算机图形学。E-mail:hankai5960106@163.com
庞宗强(1982–),男,山东临沂人,讲师,博士。主要研究方向为极端条件下的精密仪器研究。E-mail:zqpang@njupt.edu.cn