1.人脸3D数字化概述以下是腾讯AI实验室目前正在制作的高保真3D数字人博客,由Unreal渲染引擎。从静态建模的角度来看,今天的数字人脸数字化技术基本上可以让真人看起来和照片很接近。在动效展示中,表情是模拟真人表情的动画,结合语音驱动的数字人的嘴型和动作。高保真3D数字人是如何炼成的?制作流水线流程如下:首先利用光场扫描采集模型的图像数据,然后对这些图像数据进行高模重建。重建过程会有噪声或缺陷。高模制作是在清理缺陷和细节的同时,低模会根据固定的拓扑模板进行重新拓扑。在这个过程中,可以产生UV贴图,包括材质渲染所需的贴图,如法线贴图、高光贴图、粗糙度贴图等。以上链接是静态建模的过程。如果以后要移动它,则需要一些动态建模过程。例如,您将首先扫描一些具有不同表情的演员。这些扫描出来的数据还需要经过之前的高模重构、高模制作、低模重拓扑。制作流水线真的可以用在动画资产中。接下来非常耗时的步骤其实就是做controllerbinding,这对后续的动画动作是否自然生动至关重要。接下来就是头发、眼球、牙齿等配件的处理,以及皮肤材质的设置和渲染。最后,根据语音输入或者文字输入,让它自动做一些嘴型、表情、动作。整个数字人生产流水线就是这样一个过程。制作3D逼真的数字人,施工周期长,人工成本高,所以AILab也在研究如何更高效地制作高保真数字人。主要划分了几种不同的技术探索路线,各级别方案的特点如下:S级数字人制作方案耗费大量时间和人力,以追求最高品质。我们在技术方面的研究更偏向于A、B、C三个层次,无论是采集设备还是生产方案,我们都希望能够更高效便捷地生产出高保真数字人。比如A-level不再使用S-level中的360°光场设备,而是使用相对简单的摄像头阵列,易于搭建,后续生成采用AI算法,因为投入比较丰富,所以可以兼顾高质量和高效率。LevelB和LevelC为消费端输入,可以让任何用户使用消费设备采集并自动生成高保真数字人像。最简单的是C级解决方案。通过单张或多张照片,可以实现人脸重建和后续数字化。这种方案是C端用户最容易接受的。接下来重点介绍我们在B级程序中开发的一套算法。该作品已发表在图形领域顶级期刊ACMTransactionsonGraphics上。2.RGB自拍将RGBD自拍图像和深度数据数字化,通过算法自动选框,过滤掉部分覆盖面部各个角度且动作无变形的框,再进行几何建模和材质建模,得到高-definitiontexture纹理和高清法线贴图,然后我们会在渲染引擎中复用一些其他的纹理。当然,粗糙度图还可以由法线图进一步计算得到。接下来介绍一下整个算法的流程,主要分为7个步骤:Step1Automaticframeselectionalgorithm这一步包括多步筛选,首先是LandmarkDetection粗筛选,从不同角度筛选出一些比如正脸、侧脸、抬头。候选帧。在这些候选帧中,执行刚性过滤以过滤掉与参考帧相比没有任何运动的帧。最后按照画质排序,选取正面、左、右、前四个RGBD数据。Step2模型初始拟合在初始拟合步骤中,会先进行传统的关键点拟合得到一些初始形状,提取人脸区域后得到不同边的UV展开,然后进行融合和参数化拟合执行,即可得到初始色图。Step3基于可微渲染的优化基于可微渲染的优化框架是我们整个建模的核心算法。基于可微渲染器,根据图像的外观信息、ID的一致性信息和深度的一致性信息,加上地标的各种约束,推导出基于3DMM的形状和纹理的参数。Step4Texture/normalmap的合成是基于上一步的初始UV展开图。经过更详细的拟合后,利用基于局部金字塔的纹理贴图基,得到基于纹理基的参数表示,再通过参数化得到。将拟合融合的2k纹理贴图和法线贴图通过图像翻译网络进行细化,得到细节更清晰的图片。Step5Headpatching/attachmentmounting/rendering形状重建,生成纹理贴图和法线贴图后,后续工作如修补头部,安装配件(头发,眼球,牙齿),最后渲染.下面是一些结果。Step6AutoRigging静态建模后,可以使用变形迁移等技术生成相应的表情blendshape资源。Step7Text/VoiceDrive利用上述资源,可以通过文本和语音驱动来激活数字人。整个算法过程大致是这样的。我们在TOG论文中对每个步骤都有更详细的描述。该算法的核心代码也已经开源。欢迎扫码关注。在上述工作中,核心步骤是重建高保真人脸模型,我们将在下面更深入地讨论这个问题。3、如何评价3D人脸重建3D人脸形状重建是一个比较核心的部分。我们将形状重建结果与一些SOTA方法进行了比较,并对基准进行了一些客观评价。很多情况还是需要仔细观察的,比如脸型的贴合程度,口鼻形状的重建效果。最后,我们发现目前的benchmark都比不上主观效果。在这个过程中,我们发现3D人脸重建结果的评估方法其实存在很多问题。传统的3D人脸重建评价方法主要有两个步骤:刚性对齐和最近邻计算误差。在刚性对齐步骤中,容易出现的问题是对齐方法对局??部扰动敏感。比如上图中的灰色模型和黄色模型就可以很好的对齐。如果对鼻子进行扰动,理想情况下应该使用原来的对齐相对位姿来计算误差,那么鼻子区域的误差会比较大,但实际上算法重新计算刚体对齐后,其他很多地方都会参考鼻子对齐,导致整个面部区域向后移动,所以计算的误差不能反映哪些区域没有很好地重建。另一个问题是在寻找对应点计算误差的过程中,对应点关联容易错位。比如上图中蓝色线是GT效果,橙色是计算出来的效果,x点应该对应y2y1点。为了解决这两个问题,我们对3D人脸重建的评估方法进行了一些改进。首先,我们根据之前发现的问题,重新创建了一个基准数据集进行评估,称为REALY。REALY包含100对2D图片(下图第一行),以及3D扫描模型(下图第二行),最关键的是第三行,将每张扫描模型统一拓扑对齐后face,然后对原始高模模型对应的语义信息进行分割,得到人脸区域在高模模型上的一些Masks。我们可以单独评估每个区域,甚至可以在对齐后评估每个区域。在评价方法上,我们针对刚才提到的两个问题进行了改进。对于全局刚体对齐的问题,我们根据Mask进行局部对齐,只计算局部误差,可以客观反映鼻子、嘴型、脸型、眉毛等的影响。解决相应的错位问题点,我们引入反向非刚性变形来更新对应点关系,可以理解为在寻找对应点关系时的双向过程,可以使对应点关系更加准确。我们也做了一些实验来验证这两个改进,发现它们有很大的帮助。根据这种方法,我们对现有的可以找到开源代码的单张照片3D人脸重建算法进行了非常详细的评估,并且在这个过程中也发现了一些有趣的观察结果:这项工作已发表在今年的computer相关的数据集和代码也已经在VisionSummit的ECCV上公开了,欢迎大家扫码关注。以上就是我今天的分享,谢谢大家,欢迎提问。4、问答环节Q1:想问一下阴影的处理。什么是真正的思维方式?这是一种有监督或无监督的方式吗?A1:首先是modelbaselightingprocess,会估算球谐光照,根据估算的光照进行光照处理。这一步会导致面部区域凹凸不平,有些高光无法去除;二是贴合过程,去除不平整的部分;然后再进行细化处理,使用比较均匀的UV贴图,可以进一步让光照层次更加平坦。因此,经过以上三步处理,照度比较均匀。Q2:头发是如何建模和渲染的?A2:头发以挂件的形式悬挂,提前调用了人工建模的头发库,渲染也是在Groom中用UE4渲染的。Q3:嘴巴内部如何建模?A3:目前没有建模,但是我们拓扑里面的嘴是一个信封。有了这个空腔,我们就可以把牙齿和舌头挂件放在里面。Q4:你的数字人比其他算法更逼真。造成差异的主要原因是什么?几何模型和皮肤纹理更逼真?还是合身?A4:在传统的3D人脸重建中,我们只关注人脸的一个局部区域,但对于数字人来说,这远远不够。一是我们重构的造型非常贴合真人;另一种是纹理的合成。我们构建了一个相对高质量的纹理数据集,通过这些数据集进行训练细化可以获得细发和其他相关细节;第三是我们把整个完整的流程和流水线做的更细化了;第四,我们正在使用工业渲染管线来渲染数字人类。这就是为什么我们的数字人类更真实的原因。
