基于多Kinect的三维人脸重建研究
2018-03-26,
,
(浙江工业大学 信息工程学院,浙江 杭州 310023)
人脸三维数字化技术在数字影视制作、美容整形、虚拟现实和安防监控等领域具有重要意义,应用前景非常广泛,可以为行业发展提供更精密、简洁和实用的技术支持.人脸识别[1]也是人脸研究领域的一个重要方面,三维数字化人脸后构建人脸信息库,对人脸识别的进一步发展具有重要意义.人脸是一个复杂的三维体,如何快速、完整、低成本和精确地实现人脸三维数字化是计算机视觉和图像图形学领域的重点研究问题.三维数字化的应用场合广泛,不仅可以应用于三维人脸重建,还可以应用于三维建筑模型重建[2].三维数字化研究历程可以分为基于双目视觉、基于结构光和基于激光散斑3个阶段.基于双目视觉的三维数字化通过双目摄像机获取图像,提取图像中被测物体的表面纹理特征进行特征匹配,从而获得点云图,成本低、操作方便,但受环境光照和被测物体表面纹理复杂度的影响较大,点云密度低,三维重建模型粗糙.基于结构光的三维数字化,光源投射到被测物体表面形成特殊图像,对其解码获得点云图,设备复杂,操作复杂,受环境光照的影响较大,但其不受被测物体表面纹理复杂度的影响,点云密度高、精确度较高,三维重建模型逼真.基于激光散斑的三维数字化,近红外光发射器连续向目标物体发送近红外光,在被测物体表面形成激光散斑,深度相机接收从目标物体返回的光,通过探测光的飞行(往返)时间得到目标物体距离,进而获得被测物体表面的三维点云信息,设备简单,操作简单,不受环境光照和被测物体表面纹理复杂度的影响,成本低、速度快、点云密度高和精度高,三维重建模型逼真.微软公司推出的Kinect[3]是一种基于激光散斑的三维测量工具,采用飞行时间(TOF)测距原理获取目标物体深度信息,满足低成本、高精度、高效率和操作简单的要求,得到了广大研究学者的认可,因此,笔者选用Kinect作为人脸点云获取工具.受视角的限制,1 台Kinect无法获得完整的人脸点云,为获取完整精确的人脸点云,需要多台Kinect同时采集人脸各侧面点云,然后拼接获得完整人脸点云.国内外研究人员已经对此做了一些研究[4-12].童晶等[6]利用3 台Kinect和1 个旋转台进行三维人体重建,获得了良好的效果,但是对于人脸细节没有进行精确重建.李方召等[10]利用5 台RGB-D摄像机(Kinect类似的设备)实现对人脸头像的三维重建,实验效果良好,但系统架构复杂.要实现人脸快速、精确三维数字化,不需要对人头像背面三维数字化,搭建了一个以人脸头像为中心,3 台Kinect分别水平放置放在人脸的左侧、正面和右侧的实验系统.
研究学者已经提出了许多点云拼接方法[13-19].点云拼接方法主要分为3 类:有标记点的拼接[15]、无标记点的拼接[16]和ICP算法[17]及其改进算法[18-19].杨帆等[15]提出了基于公共点的三维点云拼接算法,但该方法需要在被测物体表面粘贴标记点,破坏了被测物体表面本身纹理,应用场合有局限性.伍梦琦[16]进行了无标记点三维点云拼接技术,利用几何特征和纹理特征直接拼接,适用于几何特征和纹理效果比较理想的情况.ICP算法虽可以较好地实现点云拼接,但对初始拼接位置要求较高,迭代速度慢.左超等[18]基于信息论中熵的概念改进ICP算法,提出了迭代最小空间分布熵法,算法时间较短,但是精度不是很高;LI等[19]提出了基于KD-Tree的ICP改进算法,实现了对树木点云拼接,虽然拼接效果比较好,但是拼接时间较长.粘贴标记点进行点云拼接的方法适用范围受限,无标记点的点云拼接精度不够高.对于ICP算法的改进方法虽然有很多,但还没有很好地解决点云拼接精度低和计算效率低的问题.因此,笔者提出一种新的拼接方法:首先,精简点云拼接区域,利用PFH[20]在点云拼接区域内寻找配准点,构造协方差矩阵,奇异值分解法求解该矩阵得到配准点对间的初始坐标变换参数,粗拼接点云;然后,通过RSNN算法[21]加快粗拼接后两点云间的最近点搜索速度,利用改进的最近点迭代算法实现精拼接,获得完整点云.
1 系统方案
为快速、精确和低成本获得完整人脸点云,选用Kinect作为人脸点云获取工具.Kinect可以获取所拍摄场景分辨率为1 920 像素×1 080 像素的彩色图、分辨率为512 像素×424 像素的深度图和红外图,以每秒30 帧的数据传输速度获取深度数据,深度测量范围为0.5~4.5 m.构建如图1所示的实验系统,以人脸头像为中心,三台Kinect间隔0.3 m分别水平放置放在人脸的左侧、正面和右侧,3 台Kinect处于同一水平面,并刚好与人脸中间区域齐平.3 台Kinect均放在距离人脸头像1.2 m处,且相机镜头平面垂直于人脸所在平面.
图1 实验系统的构建Fig.1 The construction of experiment system
如图2所示,实验流程为
1) 3 台Kinect同时获取左侧、正面和右侧人脸点云,对原始点云滤波去噪.
2) 精简左侧人脸点云与正面人脸点云的拼接区域.
3) 先粗拼接两点云,使两点云大致配准,再精拼接两点云.
4) 得到左侧和正面人脸点云拼接的新点云.
5) 精简新点云与右侧人脸点云的拼接区域.
6) 重复流程3),最终得到完整人脸点云,至此实现人脸三维数字化.
图2 实验流程图Fig.2 The flow diagram of experiment
2 算 法
2.1 点云滤波去噪
由于设备本身和外界环境的影响,采集到的点云数据存在噪声,需要先对点云去噪.实验观察发现:被测物体表面到Kinect的距离比背景到Kinect的距离近,即背景的深度值大于被测物体的深度值.因此,设置合适的深度阈值τ滤除背景干扰[22],只保留被测物体的深度信息,方法为
(1)
式中:D(x,y)为被测物体表面到测量设备Kinect的深度值;τ为深度阈值.
受光照和被测物体表面反射的影响,Kinect发射出的红外线无法同时反射入深度相机,因此,深度相机接采集到的一帧被测物体表面图像中,存在信息缺失形成空洞的问题.针对这一问题,为完整采集被测物体的表面信息,在被测物体同一位置用Kinect连续采集多帧点云.多次实验发现:当Kinect连续采集8 帧点云时,就可以弥补单帧点云信息缺失.由于8 帧点云是连续采集的,时间间隔可以忽略不计,看作是同时采集到的.融合8 帧点云后,虽然解决了被测物体表面信息缺失的问题,但增加了冗余数据,使得点云具有一定厚度,需对点云进行薄化,减少点云的计算量,提高计算效率.
双边滤波由2个函数组成:在几何空间域里,根据邻近点距离加权平均,加权系数随距离的增加而减少;在值域里,对像素值相近的点加权平均,加权系数随像素值差的增大而减少.双边滤波算法可以很好地保持边缘和细节信息,但其计算量大,工作效率低,因此,笔者对双边滤波算法作了改进,先将所有帧的点云求和平均去除大噪声,再综合考虑目标点周围邻域点间的空间距离和点相似程度,赋予其不同的高斯权重值,加权平均去除微小噪声,提高工作效率.
2.2 精简点云拼接区域
图像拼接作为计算机视觉的重要组成部分,可以解决单幅图像视角狭窄,不能获得宽物体或场景完整图像的问题.图像拼接是指将2 幅及以上有部分公共重合区域的图像进行无缝拼接,得到视角更加广阔或分辨率更高的图像.点云拼接就是图像拼接的一种特殊形式.为完整获得被测物体表面的三维数据,需要从多个不同视角拍摄被测物体,获得多视角下的点云图,然后拼接获得完整点云图.
不同视角下拍摄的点云存在公共重合区域,可以在公共点云区域内寻找配准点对,通过旋转平移,使得不同坐标系中的点转换到同一坐标系下,实现点云拼接.Kinect采集物体表面信息时,物体轮廓存在信息缺失问题,为避免这一问题对点云拼接造成不利影响,将不同视角下点云公共重合区域均分为多个等分,提取中间区域作为点云配准区域.精简点云拼接区域虽然可以大大减少计算量,提高工作效率,但由于点云数量的减少,会影响点云拼接精度.因此,需要合理精简点云区域,使得结果达到最优.多次实验比较发现:将点云公共重合区域均分为3 等分时,点云拼接效果最好,在保证点云拼接精度的同时,提高了计算效率,如图3所示.
图3 点云拼接区域的选取Fig.3 Selection of point cloud registration area
2.3 点云粗拼接
点云拼接是指将不同坐标系下的点云数据,通过旋转、平移转换到同一坐标系中.ICP 算法拼接精度较高,在拼接中的应用非常广泛.由于ICP算法对点云的初始位置要求很高,所以,在点云拼接之前,必须先对点云进行粗配准,使得两点云大致配准,获得满足ICP算法要求的初始位置,提高拼接精度.点特征直方图(PFH)可以通过计算某一点邻域内所有两点之间关系而得到一个直方图,即该点的PFH描述子.通过PFH描述特征点,可以快速、准确配准2 个特征点.
先利用PFH描述2.2节精简后点云拼接区域内的点,找到配准点对,构造协方差矩阵,奇异值分解法(SVD)求解该矩阵,得到配准点对间的坐标变化参数,即旋转矩阵R(α,β,γ)和平移矩阵t(tx,ty,tz),对原始点云P,Q做初始变换,得到点云P′,Q′,完成点云粗拼接,计算式为
(2)
PFH参数化查询点与邻域点之间的空间差,形成一个多维直方图,描述点的k邻域几何属性.直方图处于一个高维超空间,给特征表示提供了一个可度量的信息空间,对于点云对应曲面的6 维姿态具有不变性,在不同采样密度下仍具有鲁棒性.PFH是基于点与其k邻域之间的关系以及它们的估计法线来描述样本的几何特征.图4(a)为一个查询点Pq的点特征值图计算区域,Pq用黑色标注,在半径为r的圆球球心处,点Pq的所有k邻元素(即与点Pq的距离小于半径r的所有点)全部互相连接在一个网络中,最终形成一个通过计算邻域内所有两点之间关系而得到的直方图的PFH描述子.
图4 点特征直方图原理Fig.4 The theory of point feature histogram
如图4(b)所示,为计算两点Pi,Pj以及与它们的对应法线Ni,Nj之间的相对偏差在其中1 个点上,定义一个固定的局部坐标系为
u=Ni
(3)
(4)
w=u×v
(5)
在图4(b)中的uvw坐标系下,法线Ni,Nj之间的相对偏差用1 组角度表示,其计算式为
α=v·Nj
(6)
(7)
γ=arctan(w·Nj,u·Nj)
(8)
式中:d为两点Pi,Pj间的欧氏距离,d=‖Pj-Pi‖2.通过计算k邻域内的每一对点的4 个参数值α,β,γ,d,就可以把这对点以及与它们法线相关的12 个参数(xyz坐标值和法线信息)减少到4 个,提高计算效率.
2.4 点云精拼接
ICP算法通过计算两两特征点间的距离来搜索最近点,导致ICP计算效率比较低.改进的共享最近邻居聚类算法(RSNN)的计算流程如图5所示,先去除孤立点,再采用k最近邻居稀疏方法稀疏处理相似度矩阵,构造共享型最近邻居图,计算它的全局链接力度,去除链接力度低值的样本点,得到精简后的样本集,根据最终获得的共享型最近邻居图和聚类的中心点,使得聚类中的每个样本点与某类的中心点最近.笔者采用RSNN算法寻找粗拼接后两点云间的最近点,可以大大加快最近点搜索速度.
图5 RSNN算法的计算流程图Fig.5 The calculation flow chart of RSNN algorithm
点云配准就是找出2 个点集间的旋转矩阵R和平移矩阵t,使得变换后的两点集在空间上精准对齐.设定一个目标函数为
(9)
当式(9)取得最小值时,目标点集P和参考点集Q实现配准.
粗拼接点云得到点云P′,Q′的拼接位置作为ICP算法的初始位置,对应的旋转、平移矩阵参数作为ICP的初始变换参数.点云精拼接过程如下:
1) 在2 个点云P′,Q′中,利用2.2节的方法精简点云拼接区域.
2) 在1)选取的点云拼接区域内,用RSNN算法搜索欧氏距离最小的两点作为配准点,建立匹配点的对应关系.
3) 求取使得配准点对之间平均距离最小的变换参数(旋转、平移矩阵),以本次迭代获得的刚性变换参数作为下一次迭代的初始变换参数.
4) 重复执行2),3)步,直到满足式(9)取得最小值这一条件,循环结束,得到最终的变换参数(旋转、平移矩阵),完成点云拼接.
3 实验结果与分析
实验系统配置为3.70 GHz主频、8 GB内存和Win7 64位操作系统的计算机,3 台Kinect,用Visual studio 2010,OpenNI软件编程.以人脸雕塑头像作为实验对象.
首先,在人脸头像左侧、正面和右侧分别放置1 台Kinect,3 台Kinect同时一次性捕获人脸各侧面8 帧点云.然后,设置阈值去除复杂背景提取被测物体点云,采用改进的双边滤波法对点云进行精简、去噪,得到如图6所示的人脸左侧、正面和右侧3 个面光滑点云图.正如图6所示,人脸雕塑轮廓存在信息缺失的问题,为避免这一问题对点云拼接造成不利影响,将点云公共重合区域均分为3 等分,选取中间区域作为点云拼接区域,精简点云拼接区域.随后,利用PFH描述精简后的点云拼接区域内的点,寻找配准点完成点云的粗拼接.最后,采用基于RSNN的ICP算法完成点云的精拼接,获得如图7所示的完整人脸点云,实现了点云的快速无缝紧密拼接,且拼接区域平滑,拼接精度高.
图6 人脸三侧点云Fig.6 Three point clouds of the face side
图7 拼接后的完整人脸点云Fig.7 The complete face point cloud after registration
在点云拼接时,实验验证了ICP算法、ICP与KD-Tree融合算法、基于RSNN的ICP算法以及精简点云拼接区域后采用基于RSNN的ICP算法精拼接人脸点云的效果.从迭代次数、算法运行时间和点云拼接距离的均方根误差来评价算法性能:迭代次数越少,算法时间越长,工作效率越低;均方根误差越小,点云拼接精度越高.
如表1所示,算法性能的比较结果:1) 精简点云拼接区域后采用基于RSNN的ICP算法的迭代次数最少;2) 精简点云拼接区域后采用基于RSNN的ICP算法用时最少(18.47 s),计算效率最高;3) 精简点云拼接区域后采用基于RSNN的ICP算法拼接点云间距离的均方根误差为0.085 4 mm,拼接精度高于传统ICP算法及ICP与KD -Tree融合算法,由于点云拼接区域的精简,参与拼接的点云变少,比ICP与RSNN融合算法拼接点云间距离的均方根误差大,但是算法时间比它降低了大约42%,大大提升了工作效率,在保证较高的拼接精度的同时,大大提升工作效率是非常可取的.因此,精简点云拼接区域后采用基于RSNN的ICP算法有效,效果最好.
表1不同点云拼接算法性能比较
Table1Theperformanceofdifferentpointcloudregistrationalgorithm
算法迭代数/次算法时间/s均方根误差/mmICP算法1045.610.0975ICP+KD⁃Tree算法1037.240.0973ICP+RSNN算法531.560.0851精简点云拼接区域+ICP+RSNN算法318.470.0854
4 结 论
利用3 台Kinect快速、低成本和精确地实现了三维数字化人脸,获得人脸完整点云;提出精简点云拼接区域,在保证拼接精度的同时减少了计算量;利用PFH和RSNN进行点云搜索配准,加快搜索配准点的速度,大大提高了点云拼接效率.笔者提出的人脸三维数字化方法为构建人脸数字库及人脸识别作了铺垫.
[1] 于爱华,白煌,孙斌斌,等.基于优化投影矩阵的人脸识别技术研究[J].浙江工业大学学报,2016,44(4):392-398.
[2] 陈志杨,罗飞.基于WebGL的三维建筑模型重建[J].浙江工业大学学报,2016,44(6):608-613.
[3] 范哲.基于Kinect的三维重建[D].西安:西安电子科技大学,2012.
[4] WEBER T,HANSCH R,HELLWICH O. Automatic registration of unordered point clouds acquired by Kinect sensors using an overlap heuristic[J]. ISPRS journal of photogrammetry and remote sensing,2015,10 (2):96-109.
[5] CHEN G,LI J T,WANG B, et al. Reconstruction 3D human models with a Kinect[J]. Computer animation and virtual worlds,2016,27(1):72-85.
[6] TONG J,ZHOU J,LIU L G,et al. Scanning 3D full human bodies using Kinects[J]. IEEE transactions on visualization and computer graphics,2012,18(4):643-650.
[7] JIA W D,YI W J,SANIIE J,et al. 3D image reconstruction and human body tracking using stereo vision and Kinect technology[C]//2012 IEEE International Conference on Electro/Information Technology. Indianapolis, USA:University Place Conference Center,2012:1-4.
[8] CHEN C M,ZOU W,WANG J J. 3D surface reconstruction based on Kinect[C]//2013 Third International Conference on Information Science and Technology. Yangzhou, China:IEEE,2013:986-990.
[9] LI L,MIAO Z J,LIANG M G. 3D reconstruction based on Kinect[C]//2014 12th IEEE International Conference on Signal Processing. Hangzhou, China:IEEE,2014:1247-1250.
[10] 李方召,金士尧,林帅,等.1秒采集的三维人脸头像摄影系统[J].计算机辅助设计与图形学学报,2015,27(6):1099-1103.
[11] 董国胜.基于Kinect的三维彩色人体表面重建技术的研究[D].上海:东华大学,2015.
[12] 管秋,金俊杰,张剑华,等.基于最优RANSAC算法的非增加式多视图三维重建[J].浙江工业大学学报,2015,43(5):473-478.
[13] 陶海跻.三维点云配准算法研究[D].南京:东南大学,2014.
[14] 王小超.三维数字几何处理中特征提取与孔洞修补研究[D].大连:大连理工大学,2014.
[15] 杨帆,白宝兴,张振普,等.基于公共标志点的三维点云拼接方法研究[J].长春理工大学学报(自然科学版),2014,37(2):76-79.
[16] 伍梦琦.无标记点三维点云数据拼接技术的研究[D].武汉:华中科技大学,2015.
[17] BESL P J,MCKAY N D. A method for registration of 3-D shapes[J]. IEEE transactions on pattern analysis and machine intelligence,1992,14(2):239-256.
[18] 左超,鲁敏,谭志国,等.一种新的点云拼接算法[J].中国激光,2012,39(12):211-218.
[19] LI S H,WANG J X,LIANG Z Q,et al. Tree point clouds registration using an improved ICP algorithm based on KD-Tree[J]. IEEE international geoscience and remote sensing symposium,2016,11(9):4545-4548.
[20] RUSU R B,MARTON Z C,BLODOW N,et al. Learning informative point classes for the acquisition of object model maps[C]//2008 10th IEEE International Conference on Control, Automation, Robotics and Vision. Hanoi,Viemtnam:IEEE,2008: 588-1177.
[21] KUMARI S,MAURYA S,GOYAL P,et al. Scalable parallel algorithms for shared nearest neighbor clustering[C]//2016 IEEE 23rd International Conference on High Performance Computing. Hyderabad, India:IEEE,2016:72-81.
[22] 吴诗婳,吴一全,周建江,等.基于2维灰度熵阈值选取快速迭代的图像分割[J].中国图象图形学报,2015,20(8):1042-1050.