• 2.22 MB
  • 2022-04-22 11:26:06 发布

三维人脸数据的网格拓扑一致化算法研究

  • 20页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'中国科学技术大学UniversityofScienceandTechnologyofChina本科毕业论文ADissertationfortheBachelor’sDegree三维人脸数据的网格拓扑一致化算法研究MeshTopologyUniformizationAlgorithmsof3DHumanFaces姓名黄雨人B.S.CandidateYurenHuang导师刘利刚教授SupervisorProf.LigangLiu二〇一四年六月June,2014 中国科学技术大学本科毕业论文致谢我在刘利刚老师的指导下完成了毕业论文。首先感谢他这学期给我的耐心指导和鼓励,让我能够坚持探索一个不熟悉的问题。还要感谢他领我入门,并教给我诸多终身受用的理念。感谢陆炎和关梓翘始终与我共勉。感谢杨红庄师兄这学期对我的热情帮助。感谢刘子舜师兄给我在学习道路上的各种解惑。感谢图形学实验室的各位,这真是一个充满活力的地方!感谢我的父母,充分尊重我的学术自由,并一直提醒我注意身体。衷心感谢每个关心我的人。惟有努力相报。i 中国科学技术大学本科毕业论文目录致谢i摘要iiiAbstractiv第一章绪论1第一节背景与相关工作..........................1第二节本文的组织形式..........................2第二章非刚性配准3第一节概述................................3第二节实验结果..............................4第三章重新网格化6第一节预处理...............................6第二节流程和系统实现..........................7第三节重心坐标..............................8一、相对于骨架的重心坐标...................10二、相对于参数化目标网格的重心坐标.............10第四节实验结果..............................10第四章总结和展望13参考文献14ii 中国科学技术大学本科毕业论文摘要本文从国内最大的BJUT人脸数据库入手,探究三维人脸处理当中的网格拓扑一致化问题,也就是如何使得独立扫描得到的人脸保持同样的点数、面数、点面关系、点的空间分布情况。试验了使用全局对应最优化的非刚性配准,以及基于二维人脸检测和重心坐标的重新网格化方法。着重试探了后一种方法的可行性。非刚性配准方法对模板网格采样得到形变图,对形变图做仿射变换驱动整个网格变形。这种方法步骤简单,实现之后高度自动化,但是效果不佳,通过和其他方法对比分析认为,它的能量函数没有考虑极小化网格之间点的距离,故不适合不同人脸之间的拟合。重新网格化方法主要利用网格的骨架。骨架是由网格做特征提取之后对特征点做三角化得到的。由模板计算相对自身骨架的重心坐标,套用到目标骨架上,结合其几何信息,生成具备模板拓扑和目标几何的新网格。这个方法思路更为自然,生成的新人脸在视觉效果上也证实了其可行性以及提升空间。虽然操作稍为繁琐,但是目前是最优的网格拓扑一致化解决方案。关键字:网格拓扑,网格变形,重新网格化,人脸数据库iii 中国科学技术大学本科毕业论文AbstractThisarticleexploreshowtosolvethemeshtopologyuniformizationproblem,whichmeanshowtoletthoseindependentlyacquiredhumanfacesmaintainthesamevertexnumber,facenumber,vertex-facelinksandthespatialdistributionofvertices.TheworkisdoneonthelargestfacedatabaseinChina-theBJUT-3Ddatabase.Twomethodsaretested:non-rigidregistrationusingglobalcorrespondenceoptimizationandremeshingbasedon2Dfacedetectionandbarycentriccoordinates.Wemainlyfocusonthefeasibilityofthelattermethod.Thenon-rigidregistrationmethodreliesonaDeformationGraph,whichissampledfromthesourcemesh.Affinetransformationsareap-pliedtoitdodrivethewholesourcemeshtodeform.Itissimpletocarryoutanddoesnotrequiremuchhandtuning.Butitcannotgenerateniceresultsandaftercomparingweconsideritcannotbeusedinfacefittingbetweentwopeople,sinceitsenergyfunctiondoesnotevencontainadataerroritem.Theremeshingmethodutilizestheskeletonofamesh.Theskeletonofameshisgeneratedbytriangulationonitsdetectedfeaturepoints.Barycentriccoordinatesofthetemplatemeshwithrespecttoitsskeletonarecomputedandusedtointerpolatenewpointswiththeobjectmeshskeletonandfinallymakeameshwiththetopologyofthetemplateandthegeometryoftheobject.Thismethodismoreintuitive,withniceresultssupportingitsfeasibilityandshowingtheroomtoimprove.Thoughabittedious,itcouldbethebestsolutionfornow.Keywords:MeshTopology,MeshDeformation,Remesh,FaceDatabaseiv 中国科学技术大学本科毕业论文第一章绪论第一节背景与相关工作人脸识别是当下的研究热点。近二十年,二维人脸图像的识别理论和算法有了长足进步。但是现有算法的性能容易受到二维图像中人脸的姿态以及光照条件的影响。三维人脸模型不会有上述问题——它包含了完整的人脸空间位置信息,这是人脸本身的特征。因而三维人脸识别已经引起了研究兴趣,三维人脸数据库的建立也越来越有必要。和三维人脸数据库紧密相关的研究还有三维人脸建模。创造一个有特定特征的人脸,可以通过组合几个不同特征的人脸实现[1]。所以建模中常常需要将不同的人脸网格模型线性组合得到新的模型。这就要求用于组合的人脸网格拓扑一致:具备相同的顶点数、面数以及连接关系,而且有稠密对应,即同一顶点标号总是指向同一位置。但是,扫描得到的人脸数据库并不是本身就拓扑一致的。每个人脸是单独扫描的,细小的人脸特征或是光照条件的差异都可能造成拓扑不一致。这使得数据库需要人为进行网格拓扑一致化。本文要研究的就是拓扑一致化的方法。因为相机的普及,二维人脸图像有充足的数据来源,三维人脸模型则远远没有这么容易积累。建立一个大型的高质量的人脸数据库,需要对每个人脸模型作预处理,包括网格规格化、去噪、平滑化等等。国外已经有了一些高质量的人脸数据库可以使用,比如CMUFIA[2],还有3D_RMA[3]等等。但是这些数据库大多局限于欧洲人种,想要直接当作模板用来做亚洲人的人脸建模,效果不佳。比如欧洲人的凸鼻梁就很难模拟亚洲人相对平坦的鼻梁。故而国内的人脸建模研究需要有一套自己的数据库。目前国内公开的最大数据库BJUT数据库是未经预处理的[4]。本文的实验就是在这个数据库上进行。1 中国科学技术大学本科毕业论文网格规格化有几种常用的方法。较早的光流算法考虑将三维人脸展开成二维图像建立稠密对应[5],但是因为BJUT数据库的人脸形状差异较大,无法满足光流连续变化的假设,故而光流算法效果不佳。BJUT本身预处理的方法是人脸分片加上网格重采样[6]。但是这种方法手工成分较多,每一个模型都需要手动按照特征分片,而且网格重采样的过程涉及到弹性点的计算,较为繁琐[7,8]。本文另辟蹊径,探索使用网格变形和重新网格化处理拓扑一致问题的可能性。前者参考了HaoLi的全局对应最优化非刚性配准[9],后者基于二维人脸检测和重心坐标。第二节本文的组织形式全文共分为四章。绪论,即本章,介绍了研究网格拓扑一致化的背景与意义,以及相关工作。第二、三两章分别介绍实验过程中使用过的非刚性配准方法,还有基于二维人脸检测和重心坐标的重新网格化方法。后者是本文的重点,将会有充足的篇幅描述思路和具体实现。第四章是总结和展望。2 中国科学技术大学本科毕业论文第二章非刚性配准本章介绍利用网格变形实现拓扑一致化的方法。基本思路是:已经有了一个拓扑结构比较规范的人脸模板,在保持它的拓扑的前提下让它逼近拓扑不规范的目标人脸。这实际上不是对目标人脸的改善,只是利用了它的几何信息,引导模板变形。实验早期采用这种方法的原因是,它免去了对数据库里面每个人脸单独做改善的繁琐工作,仅仅用一个模板做变形即可新生成一个数据库,整个过程不用破坏任何已有网格的结构,也不用重新网格化。所以如果逼近效果理想,这会是一个高效的方法。虽然最后发现逼近效果并不理想,但是这种方法仍然值得介绍,并且可以为以后的研究者提供参考。第一节概述在三维形状获取当中,配准是一个基本问题。扫描一个三维物体得到的原始结果是不同视角的点云。但是做动画等应用都需要将这些点云进行配准,即建立点点对应,眼角对应眼角,鼻尖对应鼻尖,等等。实际操作往往选定一个点云(利用它的拓扑信息),使其变形拟合其他点云(利用其他点云的几何信息)。因为非刚性的物体如人脸很难保证在整个扫描过程中姿态一致,所以变形是非刚性的。网格的变形可以看作一个优化的过程。被极小化的能量函数一般是几个能量的线性组合。它们分别控制网格变形之后与目标的近似程度、变形之后的光滑度、特征位置的约束等等。算法之间的区别就在能量函数。全局对应最优化(下面简称为GCO)是我们在实验中尝试的算法,图2.1为算法示意图。基于文献[10]的工作,同样在需要变形的网格上面采样出一个类似特征点集或者控制点集作用的形变图(DeformationGraph),对3 中国科学技术大学本科毕业论文图2.1GCO算法的示意图[9]它做仿射变换带动整个网格变形。每次迭代考虑缩小形变图与目标的距离,并且减少待配准网格之间不重叠的部分。其能量函数为E=rigidErigid+smoothEsmooth+fitEfit+confEconf:其中前两项维持变形过程的刚性和光滑性,后两项使得变形的网格和目标越来越接近。第二节实验结果实验结果如图2.2所示。可以看出,只有把光滑系数调得很高才能缓解褶皱现象,但是这样的话变形后还是更像模板而非目标。所以,解决褶皱与拟合目标人脸的目的是背道而驰,难以调和的。文献[11]提出的非刚性ICP方法同样用在BJUT数据库上获得了成功。将它使用的能量函数和GCO的比较,发现前者考虑了极小化网格所有顶点到目标的距离。GCO只考虑了采样得到的形变图到目标的距离,故没有那么准确。而且,从背景上看,GCO本来就不是用来解决人脸数据库配准问题的,而是扫描得到的不同视角深度图之间的配准。4 中国科学技术大学本科毕业论文图2.2上下两排分别给出两次代表性实验结果,从左向右依次为模板、smooth=100的变形结果、smooth=10的变形结果、目标5 中国科学技术大学本科毕业论文第三章重新网格化这是本文的主要方法。为了使模板人脸和待改善人脸拓扑一致,需要网格变形或者重新网格化,前者已经介绍过,现在介绍后者。这里的重新网格化,指的是给定了一个待改善人脸网格,彻底重构出新的网格[12]。新的网格拓扑和模板一样,所以对于模板的面表无需任何修改,也就是保持面的索引、各个面包含的顶点索引或者说连接关系。只需要计算出模板各顶点的新位置(新位置理应落在目标人脸上),代替原来的位置,模板就变成了改善的目标人脸。第一节预处理本文实验使用的BJUT数据库除了存在网格拓扑不统一的问题以外,还存在不规则的问题。因为扫描时的光照条件不稳定,加上人脸表面不光滑带来的影响,扫描得到的网格在部分区域存在毛刺、空洞,尤其是发际线和耳朵附近。处理这些不规则的问题应该在拓扑一致化的工作之前进行。数据库提供方BJUT给出的解决方案是繁琐的手工处理,本文没有采用。本文的处理方式是直接剪去人脸耳朵附近的区域,最终得到较薄的网格,如图3.1所示。(a)原型正面(b)修剪后正面(c)原型侧面(d)修剪后侧面图3.1修剪预处理6 中国科学技术大学本科毕业论文图3.2流程这样做的目的不仅仅是为了避免对于不规则表面的处理。目前主流的人脸特征提取程序,包括本文使用的AAM[13],其实在发际线和耳朵附近区域并没有赋予特征点。所以特征提取得到的骨架只勾勒了人脸的正视图。考虑到后面重心坐标的计算,需要尽量让网格上所有点都落在骨架的三角形内,所以剪掉骨架以外的顶点越多,最后改善的效果越好。第二节流程和系统实现这种方法的思路是很自然的。既然要保证模板顶点的新旧空间位置指向同样的区域,首先要保证眼角对应眼角、鼻尖对应鼻尖,等等明显的对应。所以首先要提取出模板和目标的人脸特征。虽然直接提取三维人脸特征的程序尚未发展,但是二维人脸特征提取程序已经非常成熟,能够稳定地检测出五官特征。因为实验使用的三维人脸网格是带有颜色的,所以作了投影就近似于一张人脸图像,可以直接应用现成算法提取特征,如图3.3所示。对提取的特征点作受约束的Delaunay三角化得到一张平面网格,如图3.3(d)所示,它在本方法中有非常重要的意义。为了方便我们不妨称之为人脸的骨架。在整个实验过程中,骨架有统一的规格:87个点,145个面。建立了模板和目标人脸的特征对应,也就是建立了骨架之间的对应。剩下的事情就是逐点对应:计算模板网格每个顶点对应的新的空间位置。给了一个模板的顶7 中国科学技术大学本科毕业论文(a)原型(b)投影(c)特征提取结果(d)骨架图3.3AAM人脸检测点,计算它相对于骨架的坐标(重心坐标),我们认为新顶点相对于目标人脸骨架的坐标是一样的。保持这种坐标的含义,是保持了模板网格顶点的分布,在下面重心坐标一小节会详细描述。所有的坐标可以合起来看成一个插值函数,不仅插值出了每个顶点新的空间位置,还插值出了它们的颜色。再配上模板原来的面表,就得到了最终需要的改善的网格。本系统基于一个显示网格的工具,使用MFC开发,人脸检测功能也整合到了其中。手工调整特征点的位置、规范化人脸网格的朝向等等小功能也都包含在其中,方便易用。其中,人脸检测用的是AAM(ActiveAppearanceModel),受约束Delaunay三角化使用了Triangle库[14],参数化用的是ARAP(AsRigidAsPossible)[15],在重心坐标的计算中使用了ANN(ApproximateNearestNeighbor)来搜索最近三角形[16]。第三节重心坐标在方法概述中我们提到需要一种顶点相对于骨架的坐标表示。考虑到骨架就是一个三角网格,如果知道每个顶点落在哪个三角形内,直接用三角形的三个顶点来表示它是最方便的,所以很自然地想到使用重心坐标。一个点关于一个三角形的重心坐标也称面积坐标。如图所示,设点P是△ABC中任意一点,那么点P相对于△ABC的重心坐标为()Area(△PBC)Area(△PAC)Area(△PAB)(1;2;3)=;;:Area(△ABC)Area(△ABC)Area(△ABC)也就是说,点P的重心坐标与由它划分出来的子三角形的面积成比例。这里1+2+3=1:8 中国科学技术大学本科毕业论文图3.4重心坐标示意图记P;A;B;C的坐标分别为(x;y);(x1;y1);(x2;y2);(x3;y3):用它们来表示P的重心坐标如下:−−→−→x2−xx3−x!1:=2Area(△PBC)=det(PB;PC)=y2−yy3−y=(x2−x)(y3−y)−(x3−x)(y2−y):同理,!2:=2Area(△PAC)=(x3−x)(y1−y)−(x1−x)(y3−y);!3:=2Area(△PAB)=(x1−x)(y2−y)−(x2−x)(y1−y):最后,P的重心坐标为()!1!2!3(1;2;3)=;;:!1+!2+!3!1+!2+!3!1+!2+!3需要注意的是,这里的重心坐标都是二维的坐标。因为使用重心坐标只能定位落在一个三角形所在平面内的点,但是三维人脸网格模型表面是近似的连续曲面,而不是凸多面体,网格的顶点大多并不落在骨架的三角形内,这样是9 中国科学技术大学本科毕业论文无法用骨架的三角形来定位网格顶点的。所以我们使用网格参数化进行二维空间点和三维空间点的对应。如流程图所示,除去最后一步插值出改善的三维模型以外,凡是涉及重心坐标的计算,都是在参数化的网格上进行的。下面描述整个计算步骤。一、相对于骨架的重心坐标模板网格经过参数化和特征提取之后即可计算相对于骨架的重心坐标。对于参数化模板网格的每个顶点,搜索出骨架里面和它距离最近的三角形。这里的距离指的是三角形重心到该顶点的距离。对于落在骨架内部的顶点来说,搜索出的最近三角形就是包含它的三角形。搜索的意义实际上是解决了骨架外部顶点的坐标表示问题。当然,根据重心坐标的定义,凭借一个三角形就足以表示出所有顶点的位置。这样的话,离三角形远的点,坐标的绝对值就会比较大。因为我们是将模板相对自身骨架的坐标直接套用到目标的骨架上,两个骨架空间分布的细微差别会通过坐标放大,导致对应顶点偏离得厉害,甚至脱离脸部正常范围。所以,我们有必要使用最近的三角形计算重心坐标。二、相对于参数化目标网格的重心坐标得到了模板相对于自身骨架的重心坐标,套用到目标的骨架上,就计算出了新的顶点位置。但是这套新的位置还不能直接使用,因为我们不仅需要用重心坐标插值出空间位置,还要插值出颜色。骨架的不少三角形太大了,插值颜色效果不佳,因为真实的颜色变化可能不是那么均匀的。想要真实地还原人脸表面的颜色,最好是能对每个顶点计算出相对于网格本身三角面片的重心坐标。所以,在套用此前获取的重心坐标计算得到新的顶点以后,用参数化目标网格代替原来的模板骨架,做同样的事情,可以得到更精细的坐标。这套坐标才能用于最终的计算。第四节实验结果我们选取了BJUT数据库中一个表面相对规则的人脸模型(如图3.5所示)作为模板,对数据库中其余的模型做重新网格化。在经过预处理后,每个人脸10 中国科学技术大学本科毕业论文(a)三维特征(b)有偏差的特征(c)特征校正(d)参数化的骨架图3.5模板,V=25186;F=49710模型含25000个顶点,50000个面左右。所有图注中的V;F分别代表顶点数和面数。最终的效果较为一致,我们选取了两男两女四张目标人脸作为代表,结果如图3.6所示。比较上下两排人脸,可以看出重新网格化生成的人脸和目标人脸形状、特征相像。所以,本方法在实现整个数据库拓扑同模板一致的同时,较准确地保持了数据库各个单体的几何信息,说明具有可行性。当然,就目前的视觉效果来看,生成的目标远未达到完美,在边界处普遍不够光滑,容易出现各种尖角或是凹陷。合理的解释是,因为生成新网格的几何信息实际上仅仅来自于骨架(精细化重心坐标的意义只体现在颜色信息上,顶点的空间位置仅仅由骨架决定,图3.7生动展示了这种现象),所以本方法对骨架的要求实际上是很高的。容易推测,骨架的网格越密、各个人脸骨架之间特征对应越准确,那么重新网格化的效果就越好。11 中国科学技术大学本科毕业论文(a)V=24673;F=(b)V=25725;F=(c)V=25141;F=(d)V=24466;F=48677507734961648293(e)V=25186;F=(f)V=25186;F=(g)V=25186;F=(h)V=25186;F=49710497104971049710图3.6重新网格化结果,上排为原模型,下排为拓扑统一后的模型(a)纹理视图(b)点云视图图3.7对第一个结果的观察,网格分块现象明显,和骨架的分块相似12 中国科学技术大学本科毕业论文第四章总结和展望上面两章介绍了两种网格拓扑一致化方法。可以对比看出,基于二维人脸检测和重心坐标的重新网格化方法,相比全局对应最优化非刚性配准效果更好。首先是模板经过重新网格化比经过非刚性配准更像目标网格,其次是重新网格化生成的模型看不出褶皱。本文的主要贡献和关注都在重新网格化方法上面。在实验的过程中注意到,很少有人考虑应用这种方法解决人脸的网格拓扑一致化问题。所以本文的工作也是试探成分多于改善成分。很少知道有人这么做的原因,也许是这种方法的某些假设并不合理:比如认为每个人脸相对自己骨架的位置是足够相近的,以至于由骨架计算出的重心坐标可以相互套用。上一章实验结果的缺陷恰恰提醒我们,由同一套重心坐标计算出的顶点位置,在一张人脸上可能算是均匀的分布,套到另一张上面就会显得比较别扭。虽然目前的实验结果尚不足以令人满意,但是思路的正确性得到了验证。既然这个方法非常依赖骨架,那么建立一个好的骨架就是最好的改进。好的骨架应当拥有更加细密的网格、更加准确的特征点。这和人脸检测的成功与否关系也很大。实验过程中,在先前的环节并不轻松,因为原始数据库的质量不好,没有高度自动化的预处理,加上找不到足够鲁棒的人脸检测程序,出现检测失败也有不少次。虽然思路简单,繁琐的步骤和不够稳定的程序也导致改进缓慢,这都是遗憾之处。如果未来能将更好的预处理和人脸检测程序整合进来,建立一种质量更高甚至有标准规格的骨架,重新网格化方法将有巨大的提升空间。13 中国科学技术大学本科毕业论文参考文献[1]VolkerBlanzandThomasVetter.Amorphablemodelforthesynthesisof3dfaces.InProceedingsofthe26thAnnualConferenceonComputerGraphicsandInteractiveTechniques,SIGGRAPH’99,pages187–194,1999.[2]RodneyGoh,LihaoLiu,XiaomingLiu,andTsuhanChen.Thecmufaceinaction(fia)database.InAMFG,volume3723ofLectureNotesinComputerScience,pages255–263.Springer,2005.[3]CharlesBeumier.3D_RMAdatabase.URLhttp://www.sic.rma.ac.be/~beumier/DB/3d_rma.html.[4]尹宝才.BJUT-3Dfacedatabase.URLhttp://www.bjut.edu.cn/sci/multimedia/mul-lab/3dface/face_database.htm.[5]ThomasVetterandVolkerBlanz.Estimatingcoloured3dfacemodelsfromsingleimages:Anexamplebasedapproach.InProceedingsofthe5thEu-ropeanConferenceonComputerVision-VolumeII-VolumeII,ECCV’98,pages499–513.Springer-Verlag,1998.[6]尹宝才,孙艳丰,王成章,盖赟.BJUT-3D三维人脸数据库及其处理技术.计算机研究与发展,(06):1009–1019,2009.[7]胡永利,尹宝才,程世铨等.创建中国人三维人脸库关键技术研究.计算机研究与发展,42(4):622–628,2005.[8]VenkatKrishnamurthyandMarcLevoy.Fittingsmoothsurfacestodensepolygonmeshes.InProceedingsofthe23rdAnnualConferenceonComputerGraphicsandInteractiveTechniques,SIGGRAPH’96,pages313–324,1996.14 中国科学技术大学本科毕业论文[9]HaoLi,RobertW.Sumner,andMarkPauly.Globalcorrespondenceop-timizationfornon-rigidregistrationofdepthscans.InProceedingsoftheSymposiumonGeometryProcessing,SGP’08,pages1421–1430,2008.[10]RobertW.Sumner,JohannesSchmid,andMarkPauly.Embeddeddeforma-tionforshapemanipulation.InACMSIGGRAPH2007Papers,SIGGRAPH’07,2007.[11]林源,梁舒,王生进.基于非刚性ICP算法的三维人脸配准[EB/OL].中国科技论文在线,2013.URLhttp://www.paper.edu.cn/releasepaper/content/201301-415.[12]MarioBotsch,LeifKobbelt,MarkPauly,PierreAlliez,andBrunoLevy.PolygonMeshProcessing.AKPeters,2010.[13]MikkelB.Stegmann.TheAAMAPI.URLhttp://www2.imm.dtu.dk/~aam/.[14]JonathanRichardShewchuk.Triangle:Atwo-dimensionalqualitymeshgen-eratorandDelaunaytriangulator.URLhttp://www.cs.cmu.edu/~quake/triangle.html.[15]LigangLiu,LeiZhang,YinXu,CraigGotsman,andStevenJ.Gortler.Alocal/globalapproachtomeshparameterization.ComputerGraphicsForum(ProceedingsofEurographicsSymposiumonGeometryProcessing),27(5):1495–1504,2008.[16]DavidM.MountandSunilArya.ANN:Alibraryforapproximatenearestneighborsearching.URLhttp://www.cs.umd.edu/~mount/ANN/.15'