用于个性化3D头部模型变形的方法和系统与流程
未命名
08-15
阅读:95
评论:0
用于个性化3d头部模型变形的方法和系统
相关申请的交叉引用
1.本技术是题为“methods and systems for personalized 3d head model deformation”并且于2021年3月15日提交的美国专利申请第17/202,112号的继续申请并且要求该美国专利申请的优先权,该美国专利申请的全部内容通过引用并入本文中。
技术领域
2.本公开内容总体上涉及图像技术,并且特别地涉及图像处理和头部/面部模型形成方法和系统。
背景技术:
3.具有多个传感器(例如,多视角摄像装置、深度传感器等)的商业面部捕获系统用于获得具有或不具有显式标记的人的准确三维(three-dimensional,3d)面部模型。这些工具从多个传感器捕获人类面部的几何形状和纹理信息,并且将多模态信息融合到一般的3d面部模型。受益于来自各种传感器的多模态信息,获得的3d面部模型是准确的。然而,这些商业系统昂贵,并且需要额外购买软件来处理原始数据。此外,这些系统通常部署在面部捕获工作室处,需要参与者或志愿者以获取数据,这使得数据收集过程耗时且甚至成本更高。简言之,面部捕获系统获取3d面部数据是昂贵且耗时的。相反,智能电话或摄像装置现今广泛可用,因此潜在地存在可用的大量rgb(红、绿、蓝)图像。将rgb图像作为输入来产生3d面部模型可以受益于大量的图像数据。
4.二维(two-dimensional,2d)rgb图像仅是3d世界到2d平面的投影。根据2d图像恢复3d几何形状是不适定的问题,其需要优化或学习算法来调整重建过程。对于3d面部重建,已经开发和使用了基于参数化的面部模型3d形变模型(3d morphable model,3dmm)的方法。特别地,像巴塞尔面部模型(basel face model,bfm)和萨里面部模型(surrey face model,sfm)这样的面部模型是常用的面部模型,它们需要商业许可。基于面部模型的方法将一组扫描的3d人类面部模型(演示各种面部特征和表情)作为其基础,然后基于3d面部模型来产生面部特征和表情的参数化表示。可以基于参数化将新的3d面部表示为基础3d面部模型的线性组合。由于这些方法的本质,用于形成基础的3d面部模型和参数空间限制了基于面部模型的方法的表达性。此外,根据输入的面部图像或2d特征点来拟合3dmm参数的优化过程还牺牲了面部图像中的详细面部特征。因此,基于面部模型的方法不能准确地恢复3d面部特征,并且还需要商业许可来使用诸如bfm和sfm的面部模型。
5.随着深度学习算法的普及,语义分割算法已得到大量的关注。这样的算法可以将面部图像中的每个像素划分成例如背景、皮肤、头发、眼睛、鼻子和嘴巴等不同的类别。
6.虽然语义分割方法可以实现相对准确的结果,但是所有像素的语义分割是非常复杂的问题,其通常需要复杂的网络结构,从而导致高计算复杂度。此外,为了训练语义分割网络,需要对大量的训练数据进行标注,并且语义分割需要对整个图像的像素进行划分,这非常繁琐、费时且成本高。因此,语义分割不适合于不需要高平均颜色准确度但需要高效率
的场景。
7.优化拉普拉斯和其他导出算子的关键点驱动变形方法在学术界已得到良好的研究。双谐波变形的数学表达可以被表示为δ2x
′
=0。受约束的关键点,即边界条件,可以被表达为xb
′
=x
bc
。在以上等式中,δ是拉普拉斯算子,x
′
是未知的变形网格顶点的位置,并且x
bc
是变形之后的给定关键点的位置。在每个维度中需要双拉普拉斯方程的解。双谐波函数是双拉普拉斯方程的解,但也是所谓的“拉普拉斯能量”的极小(minimizer)。
8.能量极小化的本质是网格的平滑化。如果直接应用以上提及的极小,则所有的详细特征将被平滑掉。此外,当关键点的位置保持不变时,预计变形的网格与原始网格完全相同。出于这些考虑,优先使用双谐波变形来求解顶点的位移而不是它们的位置。以该方式,变形的位置可以写为x
′
=x+d,其中,d是未知顶点在每个维度中的位移。自然地,双谐波变形的等式在db=x
bc-xb下变为δ2d=0,其中,db是变形之后的关键点的位移。
9.随着游戏行业的快速发展,定制的面部化身生成已经变得越来越流行。对于没有艺术技巧的普通玩家而言,通过调谐控制参数以生成可以描述细微变化的面部是非常困难的。
10.在一些现有的诸如justice面部生成系统(justice face generation system)的面部生成系统和方法中,对面部模型的预测是对图像中的2d信息进行预测,例如,对照片中的眉毛、嘴巴、鼻子和其他像素进行分割。这些2d分割容易受到平面外旋转和部分遮挡的影响,并且基本上需要正面的面部。此外,由于最终的游戏面部化身与输入的相似度由面部识别系统确定,这将该方法限制为仅逼真风格游戏。如果游戏的风格是卡通风格,这与真实的面部非常不同,因此不能使用该方法。
11.在一些其他现有的诸如moonlight blade面部生成系统(moonlight blade face generation system)的面部生成系统和方法中,根据输入图像来重建真实面部。该方法限于逼真风格游戏,并且不能应用于卡通风格游戏。其次,该方法的输出参数是重建的游戏风格面部网格,并且然后,对网格的每个部分执行模板匹配。该方法限制了不同面部部位的组合。游戏面部的整体多样性与预先生成的模板的数目密切相关。如果某个部位例如嘴巴形状具有少量的模板,则可能产生很少的不同变化,使得生成的面部缺乏多样性。
技术实现要素:
12.基于学习的面部重建和关键点检测方法依赖于3d真值数据作为黄金标准来训练尽可能近地接近真值的模型。因此,3d真值确定基于学习的方法的上限。为了确保面部重建的准确度和期望的关键点检测,在一些实施方式中,使用2d面部关键点注释来生成3d面部模型的真值,而无需使用昂贵的面部捕获系统。本文公开的方法生成保留了输入图像的详细面部特征的3d真值面部模型,克服了丢失面部特征的现有面部模型(例如基于3dmm的方法)的缺点,并且还避免了对如bfm和sfm(两者都需要商业许可)的参数化面部模型的使用,一些现有的基于面部模型的方法需要使用这些参数化面部模型。
13.除了面部关键点检测之外,在一些实施方式中,针对面部特征分类任务实现多任务学习和迁移学习解决方案,使得可以从输入面部图像中提取更多信息,所述更多信息与关键点信息互补。检测的面部关键点与预测的面部特征一起对于用于创建玩家的面部化身的计算机或移动游戏是有价值的。
14.在一些实施方式中,本文中公开了用于从单个照片中提取人类面部的每个部位的平均颜色,包括提取皮肤、眉毛、瞳孔、嘴唇、头发和眼影的平均颜色的轻量级方法。同时,还使用算法以基于平均颜色自动地转换纹理图,使得转换的纹理仍然具有原始亮度和色差,但是主要颜色变为目标颜色。
15.随着计算机视觉和人工智能(artificial intelligence,ai)技术的快速发展,3d人类面部关键点的捕获和重建已达到高精度的水平。越来越多的游戏正在利用ai检测来使游戏角色更加生动。本文中公开的方法和系统基于重建的3d关键点来定制3d头部化身。一般的关键点驱动的变形适用于任意网格。本文中提出的头部化身定制过程和变形方法可以应用于诸如自动化身创建和表情重现的场景中。
16.本文中公开了基于单个照片自动地生成游戏中的面部化身的方法和系统。通过面部关键点的预测、关键点的自动处理以及预测模型参数的深度学习方法的使用,本文所公开的系统可以自动地生成游戏中的面部化身以使其:1)具有照片中的真实面部的特性;2)符合目标游戏风格。该系统可以同时应用于逼真风格游戏和卡通风格游戏的面部生成,并且可以根据不同的游戏模型或骨骼定义,容易地自动调整。
17.根据本技术的第一方面,一种根据真实生活中的人的二维(2d)面部图像构造面部位置图的方法包括:根据2d面部图像生成粗略面部位置图;基于粗略面部位置图来预测2d面部图像中的第一组关键点;基于用户提供的关键点注释来识别2d面部图像中的第二组关键点;以及更新粗略面部位置图,以减小2d面部图像中的第一组关键点与第二组关键点之间的差异。
18.在一些实施方式中,根据真实生活中的人的2d面部图像构造面部位置图的方法还包括:基于更新后的面部位置图来提取第三组关键点作为最终组关键点,并且第三组关键点在面部位置图中具有与第一组关键点相同的位置。
19.在一些实施方式中,根据真实生活中的人的2d面部图像构造面部位置图的方法还包括:基于更新后的面部位置图来重建真实生活中的人的三维(3d)面部模型。
20.根据本技术的第二方面,根据真实生活中的人的二维(2d)面部图像中提取颜色的方法包括:基于关键点预测模型对2d面部图像中的多个关键点进行识别;使2d面部图像旋转直到多个关键点中的选择的关键点对准;定位旋转后的2d面部图像中的多个部位,其中,每个部位由多个关键点的相应子集来限定;根据2d面部图像的像素值,提取由关键点的对应子集限定的多个部位中的每个部位的平均颜色;以及使用2d面部图像中的多个部位的提取颜色来生成真实生活中的人的个性化三维(3d)模型,该个性化3d模型与2d面部图像的相应面部特征颜色相匹配。
21.根据本技术的第三方面,生成三维(3d)头部变形模型的计算机实现的方法包括:接收二维(2d)面部图像;基于人工智能(ai)模型对2d面部图像中的第一组关键点进行识别;基于位于3d头部模板模型上的一组用户提供的关键点注释将第一组关键点映射到位于所述3d头部模板模型的网格的多个顶点上的第二组关键点;通过减小第一组关键点与第二组关键点之间的差异对3d头部模板模型的网格执行变形以获得变形的3d头部网格模型;以及将混合形状(blendshape)方法应用于变形的3d头部网格模型以根据2d面部图像获得头部模型。
22.根据本技术的第四方面,使用真实生活中的人的二维(2d)面部图像定制游戏中的
化身的标准面部的方法包括:识别2d面部图像中的一组真实生活关键点;将该组真实生活关键点变换成与游戏中的化身相关联的一组游戏风格关键点;通过将该组游戏风格关键点应用于关键点到参数(keypoint to parameter,k2p)神经网络模型来生成游戏中的化身的标准面部的一组控制参数;以及基于该组控制参数,使游戏中的化身的标准面部变形,其中,化身的变形的面部具有2d面部图像的面部特征。
23.根据本技术的第五方面,一种电子装置包括一个或更多个处理单元、存储器和存储在存储器中的多个程序。程序在由一个或更多个处理单元执行时使电子装置执行如上所述的一个或更多个方法。
24.根据本技术的第六方面,一种非暂态计算机可读存储介质存储用于由具有一个或更多个处理单元的电子装置执行的多个程序。程序在由一个或更多个处理单元执行时使电子装置执行如上所述的一个或更多个方法。
25.注意,上述各种实施方式可以与本文中描述的任何其他实施方式相结合。说明书中描述的特征和优点并非全部包括在内,并且特别地,鉴于附图、说明书和权利要求,许多附加的特征和优点对于本领域普通技术人员而言将是明显的。此外,应当注意,本说明书中使用的语言主要是出于可读性和指导目的而选择的,而并非是为了描绘或限制发明主题而选择的。
附图说明
26.为了能够更详细地理解本公开内容,可以通过参考各种实施方式的特征来进行更具体的描述,其中在附图中示出了各种实施方式的特征中的一些。然而,附图仅示出了本公开内容的相关特征,并且这不应被认为是限制性的,因为说明书中还可以包括其他产生实际效果的特征。
27.图1是示出根据本公开内容的一些实现方式的示例性关键点定义的图。
28.图2是示出根据本公开内容的一些实现方式的示例性关键点生成过程的框图。
29.图3是示出根据本公开内容的一些实现方式的变换初始粗略位置图的示例性过程的图。
30.图4是示出根据本公开内容的一些实现方式的不覆盖整个面部区域的示例性变换后的位置图的图。
31.图5是示出根据本公开内容的一些实现方式的对变换后的位置图进行细化以覆盖整个面部区域的示例性过程的图。
32.图6是示出根据本公开内容的一些实现方式的位置图细化算法的一些示例性结果的图。
33.图7a和图7b示出了根据本公开内容的一些实现方式的最终位置图与初始粗略位置图的一些示例性比较。
34.图8a是示出根据本公开内容的一些实现方式的示例性眼镜分类网络结构的图。
35.图8b是示出根据本公开内容的一些实现方式的示例性女性头发预测网络结构的图。
36.图8c是示出根据本公开内容的一些实现方式的示例性男性头发预测网络结构的图。
37.图9a示出了根据本公开内容的一些实现方式的一些示例性眼镜分类预测结果。
38.图9b示出了根据本公开内容的一些实现方式的一些示例性女性头发预测结果。
39.图9c示出了根据本公开内容的一些实现方式的一些示例性男性头发预测结果。
40.图10是示出根据本公开内容的一些实现方式的根据真实生活中的人的2d面部图像构造面部位置图的示例性过程的流程图。
41.图11是示出根据本公开内容的一些实现方式的示例性颜色提取和调整过程的流程图。
42.图12示出了根据本公开内容的一些实现方式的示例性皮肤颜色提取方法。
43.图13示出了根据本公开内容的一些实现方式的示例性眉毛颜色提取方法。
44.图14示出了根据本公开内容的一些实现方式的示例性瞳孔颜色提取方法。
45.图15示出了根据本公开内容的一些实现方式的在头发颜色提取方法中使用的示例性头发颜色提取区域。
46.图16示出了根据本公开内容的一些实现方式的在头发颜色提取区域内头发像素与皮肤像素之间的示例性分离。
47.图17示出了根据本公开内容的一些实现方式的示例性眼影颜色提取方法。
48.图18示出了根据本公开内容的一些实现方式的一些示例性颜色调整结果。
49.图19是示出根据本公开内容的一些实现方式的从真实生活中的人的2d面部图像中提取颜色的示例性过程的流程图。
50.图20是示出根据本公开内容的一些实现方式的示例性头部化身变形和生成过程的流程图。
51.图21是示出根据本公开内容的一些实现方式的示例性头部模板模型组成的图。
52.图22是示出根据本公开内容的一些实现方式的逼真风格3d模型上以及卡通风格3d模型上的一些示例性关键点标记的图。
53.图23是示出根据本公开内容的一些实现方式的模板模型渲染、手动标记的关键点和ai检测的关键点之间的示例性比较的图。
54.图24是示出根据本公开内容的一些实现方式的示例性三角形的仿射变换的图。
55.图25是示出根据本公开内容的一些实现方式的具有混合形状过程和不具有混合形状过程的一些头部模型变形结果的示例性比较的图。
56.图26是示出根据本公开内容的一些实现方式的具有不同权重的仿射变形与双谐波变形的示例性比较的图。
57.图27示出了根据本公开内容的一些实现方式的使用逼真模板模型根据一些随机挑选的女性图片自动生成的一些示例性结果。
58.图28是示出根据本公开内容的一些实现方式的根据真实生活中的人的2d面部图像生成3d头部变形模型的示例性过程的流程图。
59.图29是示出根据本公开内容的一些实现方式的示例性关键点处理流程步骤的图。
60.图30是示出根据本公开内容的一些实现方式的示例性关键点平滑过程的图。
61.图31是示出根据本公开内容的一些实现方式的示例性关键点到控制参数(keypoint to control parameter,k2p)转换过程的框图。
62.图32示出了根据本公开内容的一些实现方式的移动游戏的自动面部生成的一些
示例性结果。
63.图33是示出根据本公开内容的一些实现方式的使用真实生活中的人的2d面部图像定制游戏中的化身的标准面部的示例性过程的流程图。
64.图34是根据本公开内容的一些实现方式的图像处理装置的示例性硬件结构的示意图。
65.根据一般实践,附图中所示的各种特征可能未按比例绘制。因此,为了清楚起见,可以任意扩大或缩小各种特征的尺寸。此外,一些附图可能未描绘出给定系统、方法或设备的全部部件。最后,贯穿说明书和附图,类似的附图标记可以用于表示类似的特征。
具体实施方式
66.现在将详细地对具体实现方式进行参考,具体实现方式的示例在附图中示出。在下面的详细描述中,阐述了许多非限制性的具体细节,以帮助理解本文提出的主题。但是对于本领域的普通技术人员而言将明显的是,可以在不脱离权利要求的范围的情况下使用各种替选方案,并且可以在没有这些具体细节的情况下实践该主题。例如,对于本领域的普通技术人员而言将明显的是,可以在许多类型的电子设备上实现本文中提出的主题。
67.在进一步详细描述本技术的实施方式之前,对本技术的实施方式中涉及的名称和术语进行描述,并且本技术的实施方式中涉及的名称和术语具有以下说明。
68.面部关键点:预定义的特征点,其确定某些面部部位的形状,例如,眼角、下巴、鼻尖和嘴角的形状。
69.面部部位:面部边框、眼睛、眉毛、鼻子、嘴巴和其他部位。
70.面部重建:重建人类面部的3d几何结构以及包括网格模型、点云或深度图的常用的表示。
71.rgb图像:红色、绿色、蓝色三通道图像格式。
72.位置图:使用常规图像格式中的红色、绿色、蓝色通道来存储面部区域的x、y、z坐标,其是3d人类面部的表示。
73.面部特征分类:包括发型分类,有眼镜或无眼镜分类。
74.卷积神经网络(convolutional neural network,cnn):一类深度神经网络,最通常应用于分析视觉图像。
75.基础网络:类似cnn的网络,其由一个或多个下游任务使用以充当特征提取器。
76.拉普拉斯算子:由欧几里得空间上的函数的梯度的发散度给出的微分算子。
77.可微分流形:一种与线性空间局部地类似以允许进行微积分的拓扑空间。
78.双谐波函数:在可微分流形上定义的平方拉普拉斯算子等于0的四元可微分函数。
79.关键点驱动的变形:一类通过改变某些顶点的位置使网格变形的方法。
80.双谐波变形:采用通过一些边界条件对双谐波函数进行优化的变形方法。
81.仿射变形:本公开内容中提出的关键点驱动的变形方法,其优化三角形的仿射变换以达到网格变形的目的。
82.面部模型:预定义的目标游戏中的标准面部的网格。
83.骨骼/滑块:控制参数,用于使面部模型变形。
84.如以上所提及的,即使将输入的2d图像和2d关键点两者馈送至优化过程以拟合
3dmm参数,优化也必须在基于基础(即,3d面部模型集合)对3d面部模型的拟合与2d关键点的保真度之间找到平衡。该优化导致所获得的3d面部模型无视2d输入关键点,使得牺牲了由输入的2d关键点所带来的详细面部信息。在现有的3d面部重建方法中,面部捕获解决方案可以产生准确的重建,但这是昂贵且耗时的,并且获得的数据也表明面部特征的有限变化(参与者的有限数目)。另一方面,基于面部模型的方法可以将2d图像或2d特征点注释作为输入,但所获得的3d模型不准确。为了满足计算机/移动游戏的快速发展的要求,需要既产生期望的3d模型准确度,又减少所需的成本和时间。为了满足这些要求,本文中公开的新的3d真值面部模型生成算法将2d图像、2d关键点注释和粗略3d面部模型(位置图格式)作为输入,基于2d关键点对粗略3d模型进行变换,并且最终产生其中详细面部特征被良好地保留的3d面部模型。
85.除了解决面部重建和关键点预测中的关键问题之外,本文中还公开了用于面部特征分类的基于多任务学习和迁移学习的方法,其部分地建立在面部重建和关键点预测框架之上。特别地,通过重新使用面部重建和关键点预测的基础网络,通过多任务学习来完成眼镜分类(有眼镜或无眼镜)。训练在现有的面部重建和关键点预测框架之上的线性分类器,这极大地重新使用现有的模型,并且避免了引入另一个较大的网络进行图像特征提取。此外,将另一共享的基础网络用于男性发型分类和女性发型分类。发型是一种重要的面部特征,其与面部关键点或3d面部模型互补。在为用户创建3d化身的过程中,添加发型和眼镜预测可以更好地反映用户的面部特征,并且提供更好的个性化体验。
86.几十年来,面部关键点预测一直是计算机视觉的研究课题。随着近年来人工智能和深度学习的发展,卷积神经网络(cnn)促进了面部关键点预测的进展。3d面部重建和面部关键点检测是两个交织的问题,从而解决一个问题可以简化另一问题。常规方法是首先解决2d面部关键点检测,并且然后基于估计的2d面部关键点进一步推断3d面部模型。然而,当图像中的面部倾斜(点头或摇头)时,某些面部关键点被遮挡,并导致错误的2d面部关键点估计,因此在错误的2d面部关键点之上建立的3d面部模型变得不准确。
87.真值数据确定基于深度学习的方法的上限,但是现有的3d面部模型数据集不仅在数目上是有限的,而且仅对学术研究可用。另一方面,基于面部模型的方法需要使用巴塞尔面部模型(bfm)或萨里面部模型(sfm),两者都需要商业许可。在训练任何面部重建或关键点估计模型时,高准确度和大量的3d真值成为最关键的问题。
88.除了面部关键点预测之外,面部特征分类是用户3d化身创建的重要方面。通过预测的面部关键点,仅可以执行对用户的面部部位(即,眼睛、眉毛、鼻子、嘴巴和面部轮廓)的风格迁移。然而,为了更好地反映用户的面部特征,在输入图像中匹配用户的发型以及在用户戴眼镜的情况下添加一副眼镜是非常有帮助的。基于这些要求,开发了基于多任务学习和迁移学习的面部特征分类方法,以实现男性/女性发型预测和眼镜预测(有眼镜或无眼镜),这使得创建的面部化身更个性化,以改善用户的体验。
89.在一些实施方式中,为了表示面部的主要部位的三维形状,使用如图1所示的关键点表示。图1是示出根据本公开内容的一些实现方式的示例性关键点定义的图。按顺序对关键点编号,从而定义面部的具体特征。换言之,在关键点的序号与面部上的特定位置之间存在映射关系。例如,序号9对应于下巴的底部,并且序号21对应于鼻尖等。关键点集中于面部的主要部位的边界(例如面部的轮廓、眼睛的轮廓和眉毛的轮廓)。更多的关键点意味着预
测的难度更大,但是形状表示更准确。在一些实施方式中,在图1中采用96个关键点的定义。在一些实施方式中,用户可以根据他们自己的需要修改关键点的数目和具体的定义。
90.许多算法可以预测人类面部的关键点的三维坐标。具有更好性能的方法使用基于大量离线3d训练数据的深度学习算法。然而,在一些实施方式中,可以使用任何三维关键点预测算法。在一些实施方式中,关键点的定义不是固定的,并且用户可以根据他们的需要定制定义。
91.为了解决3d真值面部模型生成的问题,开发了将2d rgb图像、2d关键点注释以及粗略位置图作为输入的以下自动算法。图2是示出根据本公开内容的一些实现方式的示例性关键点生成过程的框图。例如,使用面部的2d rgb图像作为输入图像202,并且2d rgb图像具有对应的初始粗略位置图204,初始粗略图中的每个像素表示2d rgb图像中的对应面部点的空间坐标。2d关键点注释208表示一组用户提供的关键点,其用于校正从初始粗略图204检测到的一组关键点206。
92.图3是示出根据本公开内容的一些实现方式的变换初始粗略位置图的示例性过程的图。
93.在一些实施方式中,使用3d重建方法来将输入面部图像转换为包含面部特征的3d深度信息的位置图。例如,位置图可以是具有256
×
256矩阵阵列的2d三色(rgb)通道图,并且阵列元素中的每一个具有表示面部模型上的3d位置的坐标(x,y,z)。3d位置坐标(x,y,z)由每个阵列元素在位置图上的rgb像素值表示。特定面部特征定位在2d位置图内的固定2d位置上。例如,可以通过位置图内的x=128和y=128处的2d阵列元素位置来识别鼻尖。类似地,针对面部上的特定面部特征识别的具体关键点可以定位在2d位置图上的相同阵列元素位置处。然而,对于位置图,取决于不同输入面部图像,具体关键点可以具有不同的3d位置坐标(x,y,z)。
94.在一些实施方式中,如图2和图3所示,利用3d重建方法以根据输入图像(202,302)获得初始粗略位置图(204,304)。并且然后,使用输入的2d关键点注释(208,308)来调整初始位置图的相应关键点(206,306)的(x,y)坐标,以确保调整的位置图中的关键点的调整的(x,y)坐标与注释的2d关键点相同。具体地,首先,获得来自初始位置图p的一组96个关键点。基于关键点索引,将该组96个关键点称为k=k_i,其中每个k_i是关键点的2d坐标(x,y),并且i=0,
…
,95。根据2d关键点注释(208,308)获得第二组96个关键点a=a_i,其为2d(x,y)坐标,并且i=0,
…
,95。其次,从k到a估计空间变换映射(210,310),定义为t:ω->ω,其中并且然后,将获得的变换t应用于初始位置图p以得到变换后的位置图p'(212,312)。以此方式,变换后的位置图p'(212,312)保留了输入图像(202,302)中的人的详细面部特征,并且同时,变换后的位置图p'(212,312)具有合理的3d深度信息。因此,本文中公开的解决方案提供了生成3d真值信息的准确且实用的替选解决方案,以避免使用昂贵且耗时的面部捕获系统。
95.在一些实施方式中,由于96个面部关键点仅覆盖整个面部区域的一部分(即,眉毛下方、面部轮廓的内侧),例如,在图3中,从耳朵到下巴的关键点沿着下颚,但是不在可见面部轮廓上。当输入图像中的面部倾斜时,整个面部区域未被连接在一起的关键点的轮廓覆盖。另外,当执行手动关键点注释时,无论图像中的面部是否是倾斜的,只能沿着可见面部轮廓标记关键点(即,无法准确地注释遮挡的关键点)。因此,在变换后的位置图p'(212,
312)中,由于变换映射t(210,310)在面部区域的一部分中不具有估计,因此该区域不具有有效值。另外,前额区域在眉毛上方,因此t在该区域中也不具有估计。所有这些问题导致变换后的位置图p'(212,312)在特定区域中不具有有效值。图4是示出根据本公开内容的一些实现方式的未覆盖整个面部区域的示例性变换后的位置图的图。
96.在图4中,顶部的圆圈(402,406)突出显示了前额区域,并且右侧的圆圈(404,408)指示其中关键点轮廓小于可见面部轮廓的区域。
97.在一些实施方式中,为了解决上述问题并且使算法对于通常存在于面部图像中的倾斜面部来说是鲁棒的,使用了如图2所示的细化处理214。基于头部姿势和粗略3d面部模型,使来自变换后的位置图的关键点沿着面部轮廓移位,以匹配可见面部轮廓。此后,在所获得的位置图中,面部轮廓区域中的缺失值可以被填充。然而,前额区域中的值仍然缺失。为了覆盖前额区域,通过将图像的四个角处的八个特征点添加至两个关键点集合k和a来扩展控制点。
98.图5是示出根据本公开内容的一些实现方式的对变换后的位置图进行细化以覆盖整个面部区域的示例性过程的图。在图5中示出了位置图细化处理。
99.在一些实施方式中,首先,基于粗略位置图p来确定头部姿势,以确定头部朝向左或右倾斜,并且在3d面部模型空间中限定左或右(例如,如图5所示,面部朝向左倾斜)。基于面部朝向左或右倾斜的确定,调整面部轮廓的对应侧的关键点。面部轮廓的右侧关键点具有从1至8的索引,并且面部轮廓的左侧关键点具有从10至17的索引。使用朝向左倾斜的面部作为示例,计算初始位置图p的2d投影以获得如图5中示出的图像502的深度图。使左面部轮廓关键点k_i,i=10,
…
,17分别向右移位,直到它们到达深度图的边界。然后,使用新坐标代替原始关键点位置。类似地,当面部朝向右倾斜时,经处理的关键点由k_i,i=1,
…
,8索引,并且搜索方向向左。在调整面部轮廓关键点之后,更新后的关键点被可视化为图5中的图像504,并且位置图的更新后的覆盖被示出为图5中的图像506。更新后的位置图在面部轮廓区域中具有更好的面部覆盖,但是前额区域仍然具有缺失值。
100.在一些实施方式中,为了覆盖前额区域,在图像域ω的每个角处添加两个锚点作为附加关键点k_i,i=96,
…
,103,以获得更新后的关键点集合k'(如图5中的图像508所示)。对手动注释关键点集合a_i,i=96,
…
,103进行相同的操作,以得到更新后的a'。使用更新后的关键点集合k'和a',重新估计变换映射t',并且然后将其应用于初始位置图p以得到最终位置图p"(图2中的216),从而覆盖整个面部区域(如图5中的图像510所示)。从最终位置图216得出最终关键点218。
101.图6是示出根据本公开内容的一些实现方式的位置图细化算法的一些示例性结果的图。602是初始变换位置图的图示。604是在修正面部轮廓之后的更新后的位置图的图示。606是最终位置图的图示。
102.图7a和图7b示出了根据本公开内容的一些实现方式的最终位置图与初始粗略位置图的一些示例性比较。在图7a中的一个示例中,初始位置图及其相关的3d模型和关键点702中的鼻子不正确,完全不能反映该人的面部特征(由箭头突出显示),但是在应用本文中描述的方法之后,鼻子与最终位置图及其相关的3d模型和关键点704中的图像(由箭头突出显示)很好地对准。在图7b的第二示例中,在初始位置图及其相关的3d模型和关键点706中存在多个不准确,如面部轮廓、张开的嘴巴以及鼻子形状不匹配(由箭头指示)。在最终位置
图及其相关的3d模型和关键点708中,所有这些错误被修正(由箭头指示)。
103.发型和眼镜类别对于移动游戏应用进行面部化身创建过程是重要的。在一些实施方式中,在本文中实现基于多任务学习和迁移学习的解决方案以解决这些问题。
104.在一些实施方式中,针对女性头发预测实现四个不同的分类任务(头部)。分类类别和参数如下所示:
105.分类头部1:弯曲
106.直(0);弯曲(1)
107.分类头部2:长度
108.短(0);长(1)
109.分类头部3:刘海
110.无刘海或无分缝(0);左分缝(1);右分缝(2);m形状(3);直刘海(4);自然刘海(5);空气刘海(6)
111.分类头部4:辫子
112.单个辫子(0);两个或更多个辫子(1);单个圆发髻(2);两个或更多个圆发髻(3);其他(4)。
113.在一些实施方式中,针对男性头发预测实现三个不同的分类任务(头部)。分类类别和参数如下所示:
114.分类头部1:极短(0),卷曲(1),其他(2)
115.分类头部2:无刘海(0),中分刘海(1),自然刘海(2)
116.分类头部3:左分刘海(0),以及右分刘海(1)
117.在一些实施方式中,眼镜分类是二元分类任务。分类参数如下所示:
118.无眼镜(0);有眼镜(1)。
119.在不同的深度学习图像分类模型中,在imagenet中实现现有技术水平的准确度的那些模型(例如efficientnet、noisy student和fixres)通常具有大的模型大小和复杂的结构。当决定使用哪种架构作为特征提取器的基础网络时,必须平衡预测准确度和模型大小两者。在实践中,分类准确度提高1%可能不会给终端用户带来明显的改变,但是模型大小会呈指数增长。鉴于经训练模型可能需要部署在客户端侧,而较小的基础网络可以使其灵活地部署在服务器侧和客户端侧两者处。因此,例如采用mobilenetv2作为基础网络,以对不同的分类头部进行迁移学习。mobilenetv2架构基于反转残差结构,其中残差块的输入和输出是与传统残差模型相反的薄瓶颈层,传统残差模型在输入中使用扩展表示。mobilenetv2使用轻量级深度方向卷积,以在中间扩展层中过滤特征。
120.对于眼镜分类,使用多任务学习方法。再次使用关键点预测的网络作为基础网络,并且将参数冻结,在基于u形的网络的瓶颈层中,使用具有交叉熵损失的特征向量来训练二元分类器。图8a是示出根据本公开内容的一些实现方式的示例性眼镜分类网络结构的图。图8b是示出根据本公开内容的一些实现方式的示例性女性头发预测网络结构的图。图8c是示出根据本公开内容的一些实现方式的示例性男性头发预测网络结构的图。
121.图9a示出了根据本公开内容的一些实现方式的一些示例性眼镜分类预测结果。图9b示出了根据本公开内容的一些实现方式的一些示例性女性头发预测结果。图9c示出了根据本公开内容的一些实现方式的一些示例性男性头发预测结果。
122.图10是示出根据本公开内容的一些实现方式的根据真实生活中的人的2d面部图像构造面部位置图的示例性过程的流程图1000。在真实生活中,不同的人具有不同的面部特征,使得与相同面部特征对应的相同关键点(例如,人的面部上的眉毛的位置)可以具有非常不同的空间坐标。由于用于生成3d面部模型的2d面部图像是以不同的角度和在不同光照条件下捕获的,因此面部检测的问题变得更加具有挑战性,并且在该领域中的研究已经是计算机视觉技术领域中非常活跃的主题。在本技术中,已经提出了用于提高从范围从真实生活中的人到卡通角色的被摄体的任何2d面部图像检测面部关键点的效率和准确度的多种方法。在一些实施方式中,提供同一面部图像的一组用户提供的面部关键点作为用于对由计算机实现的方法最初检测到的一组面部关键点进行校正或改进的参考。例如,因为在用户提供的面部关键点与计算机生成的面部关键点之间基于它们各自的序号存在一对一的映射关系,所以计算机生成的面部关键点的细化被定义为减小两组面部关键点之间的差异(例如通过它们在位置图中的对应空间坐标来测量)的优化问题。
123.构造面部位置图的过程包括步骤1010:根据2d面部图像生成粗略面部位置图。
124.该过程还包括步骤1020:基于粗略面部位置图来预测2d面部图像中的第一组关键点。
125.该过程另外包括步骤1030:基于用户提供的关键点注释来识别2d面部图像中的第二组关键点。
126.该过程另外包括步骤1040:更新粗略面部位置图,以减小2d面部图像中的第一组关键点与第二组关键点之间的差异。例如,通过减小2d面部图像中的第一组关键点与第二组关键点之间的在它们的对应空间坐标方面的差异,基于粗略面部位置图的2d面部图像中的第一组关键点被修改为更类似于基于用户提供的关键点注释的2d面部图像中的第二组关键点,该第二组关键点通常被认为是更准确的,并且第一组面部关键点的修改自动触发从其生成第一组关键点的初始粗略面部位置图的更新。然后可以使用更新后的粗略面部位置图来根据2d面部图像预测更准确的一组关键点。应当注意,基于用户提供的关键点注释的2d面部图像中的第二组关键点并不意味着其是手动进行的。而是,用户可以采用用于执行注释的另一计算机实现的方法。在一些实施方式中,尽管第二组关键点的数目(例如,10至20)是第一组关键点的数目(例如,96或甚至更高)的仅一小部分,但是第二组关键点更加准确的事实对第一组关键点的整体改进有贡献。
127.在一个实现方式中,该过程还包括步骤1050:基于更新后的面部位置图/最终位置图来提取第三组关键点作为最终组关键点,并且第三组关键点在面部位置图中具有与第一组关键点相同的位置。在一些实施方式中,面部位置图中的关键点的位置由位置图中的阵列元素的2d坐标表示。如上所述,更新后的面部位置图受益于基于用户提供的关键点注释的2d面部图像中的第二组关键点,因此第三组关键点更准确,并且可以用在如计算机视觉的领域中以得到更准确的面部检测或用在如计算机图形的领域中以得到更准确的3d面部建模。
128.在一个实现方式中,除了步骤1050之外或作为步骤1050的替选,该过程还包括步骤1060:基于更新后的面部位置图来重建真实生活中的人的3d面部模型。在一个示例中,3d面部模型是3d深度模型。
129.附加实现方式可以包括以下特征中的一个或更多个。
130.在一些实施方式中,更新的步骤1040可以包括:将粗略面部位置图变换为变换后的面部位置图,以及细化变换后的面部位置图。如上所述,与初始粗略面部位置图相比,变换后的面部位置图可以保留输入图像中的人的更详细的面部特征,并且因此,基于变换后的面部位置图的3d面部模型更准确。
131.在一些实施方式中,变换包括:根据学习第一组关键点与第二组关键点之间的差异,估计从粗略面部位置图到变换后的面部位置图的变换映射;以及将变换映射应用于粗略面部位置图。
132.在一些实施方式中,细化包括:根据确定2d面部图像是倾斜的,调整与变换后的面部位置图对应的在面部轮廓的遮挡侧处的关键点以覆盖整个面部区域。如上所述,可以以不同的角度捕获不同的2d面部图像,并且该细化步骤可以校正由不同图像捕获条件引入的偏差或误差,并且保留2d面部图像的更准确的3d面部模型。此外,与初始粗略面部位置图相比,变换后的面部位置图可以保留输入图像中的人的更详细的面部特征,并且因此,基于变换后的面部位置图的3d面部模型更准确。
133.在一些实施方式中,第一组关键点可以包括96个关键点。
134.在一些实施方式中,构造面部位置图的过程可以包括面部特征分类。
135.在一些实施方式中,面部特征分类通过深度学习方法来进行。
136.在一些实施方式中,面部特征分类通过多任务学习或迁移学习方法来进行。
137.在一些实施方式中,面部特征分类包括头发预测分类。
138.在一些实施方式中,头发预测分类包括具有多个分类任务的女性头发预测,多个分类任务可以包括:弯曲、长度、刘海和辫子。
139.在一些实施方式中,头发预测分类包括具有多个分类任务的男性头发预测,多个分类任务可以包括:弯曲、长度、刘海和头发分缝。
140.在一些实施方式中,面部特征分类包括眼镜预测分类。眼镜预测分类包括分类任务,该分类任务可以包括:有眼镜和无眼镜。
141.本文中公开的方法和系统可以基于用于3d真值生成的2d关键点注释来生成准确的3d面部模型(即,位置图)。该方法不仅避免了使用bfm和sfm面部模型,而且更好地保留了详细面部特征,从而防止了由基于面部模型的方法造成的这些重要特征的丢失。
142.除了提供关键点之外,使用用于提供补充的面部特征(如发型和眼镜)的基于深度学习的解决方案,这对于基于用户输入面部图像来个性化面部化身是至关重要的。
143.虽然本文中作为示例公开了用于面部特征分类的发型和眼镜预测,但是框架不限于这些示例任务。框架和解决方案是基于多任务学习和迁移学习,这意味着容易扩展该框架以包括其他面部特征,例如女性化妆类型分类、男性胡须类型分类以及有面罩或无面罩分类。框架的设计非常适合于基于各种计算机或移动游戏的需求而被扩展到更多任务。
144.在一些实施方式中,本文中引入基于关键点的光加权颜色提取方法。光加权图像处理算法在不分割所有像素的情况下快速估计局部像素,从而导致更高的效率。
145.在训练过程期间,用户不需要具有像素级标记,而是仅标记几个关键点,例如眼角、嘴巴边框和眉毛。
146.本文中公开的光加权颜色提取方法可以用于各种游戏的个性化面部生成系统。为了提供更自由的个性化角色生成,许多游戏已经开始采用自由调整方法。除了调整面部的
形状之外,用户还可以选择不同的颜色组合。出于审美的目的,游戏中的面部经常使用预定义的纹理而不是真实的面部纹理。本文中公开的该方法和系统使得用户能够仅通过上传照片来自动提取面部的每个部位的平均颜色。并且同时,系统可以根据提取的颜色自动地修改纹理,使得更接近于用户照片中的真实颜色来生成个性化面部的每个部位,从而改进用户体验。例如,如果用户的皮肤比大多数人的平均皮肤暗,则游戏中的角色的皮肤将相应地变暗。图11是示出根据本公开内容的一些实现方式的示例性颜色提取和调整过程的流程图。
147.为了定位面部的各个部位,如上述图1中所示,针对面部的主要特征部位定义关键点。上述算法用于关键点预测。与语义分割方法不同,仅在图像中预测关键点而不需要对每个像素进行分类,使得大大减少了预测的成本和训练数据的标注。利用这些关键点,可以大致地定位面部的各个部位。
148.图12示出了根据本公开内容的一些实现方式的示例性皮肤颜色提取方法。为了提取图像中的特征,需要使原始图像1202中的面部区域旋转,使得面部的左侧和右侧上的关键点1和关键点17与标准面部的左侧和右侧上的对应关键点对准,如旋转对准之后的图像1204中所示。
149.接下来,确定用于皮肤颜色像素检查的区域。选择眼睛的关键点的底部坐标作为检测区域的上边界,选择鼻子的底部关键点作为检测区域的下边界,由面部边框关键点确定左边界和右边界。以此方式,获得如图像1206上的区域1208所示的皮肤颜色检测区域。
150.并非该区域1208中的所有像素都是皮肤像素,并且像素还可以包括一些睫毛、鼻孔、鼻唇沟、头发等。因此,选择该区域中的所有像素的r、g、b值的中值作为最终预测的平均皮肤颜色。
151.图13示出了根据本公开内容的一些实现方式的示例性眉毛颜色提取方法。对于眉毛的平均颜色,首先选择主眉毛即更靠近镜头一侧上的眉毛作为目标。在一些实施方式中,如果两个眉毛均是主眉毛,则提取两侧上的眉毛像素。假设左眉毛是主眉毛,如图13所示,选择由关键点77、78、81和82组成的四边形区域作为眉毛像素搜索区域。这是因为靠近外侧的眉毛太稀少,并且小的关键点误差的影响将被放大。因为靠近内侧的眉毛通常可能是稀疏的并且与皮肤颜色混合,所以选择中间眉毛区域1302来收集像素。并且首先必须将每个像素与平均皮肤颜色进行比较,并且仅收集差值大于特定阈值的像素。最后,类似于皮肤颜色,选择收集的像素的中值r、g、b值作为最终平均眉毛颜色。
152.图14示出了根据本公开内容的一些实现方式的示例性瞳孔颜色提取方法。类似于眉毛颜色提取,当提取瞳孔颜色时,首先选择靠近镜头的主眼睛侧。在一些实施方式中,如果两个眼睛均是主眼睛,则一起收集两侧上的像素。除了瞳孔本身之外,包含在眼睛的关键点内的闭合区域还可以包含睫毛、眼白以及反射。在像素收集过程中应当尽可能地去除这些,以确保最终像素中的大多数来自瞳孔本身。
153.为了去除睫毛像素,眼睛的关键点沿y轴(图14的竖直方向)向内收缩一定距离以形成图14所示的区域1402。为了去除眼白和反射(如由图14中的圆圈1404所示),在该区域1402中进一步排除这样的像素。例如,如果像素的r、g和b值都大于预定阈值,则排除该像素。以此方式收集的像素可以确保它们中的大多数来自瞳孔本身。类似地,使用中值颜色作为平均瞳孔颜色。
154.在一些实施方式中,对于嘴唇颜色提取,仅检测下嘴唇区域中的检测像素。上嘴唇通常薄并且对关键点误差相对敏感,并且因为上嘴唇颜色浅,所以它不能很好地表示嘴唇颜色。因此,在旋转和校正照片之后,收集被下嘴唇的关键点包围的区域中的所有像素,并且使用中值颜色来表示平均嘴唇颜色。
155.图15示出了根据本公开内容的一些实现方式的在头发颜色提取方法中使用的示例性头发颜色提取区域。头发颜色提取比先前的部位更困难。主要原因是每个人的发型是独特的,并且照片的背景复杂且多样。因此,难以定位头发的像素。在准确地找到头发像素的一种方式中,使用神经网络来分割图像的头发像素。由于图像分割的注释成本非常高,并且游戏应用不需要非常高准确度的颜色提取,因此使用基于关键点的近似预测的方法。
156.为了获得头发像素,首先确定检测区域。如图15所示,检测区域1502是矩形。下边界是两侧上的眉毛角点,并且高度(竖直线1504)是从眉毛的上边缘到眼睛的下边缘的距离1506。左右是分别向左右延伸固定距离的关键点1、17。在图15中示出由此获得的头发像素检测区域1502。
157.图16示出了根据本公开内容的一些实现方式的在头发颜色提取区域内示例性分离头发像素与皮肤像素的图。通常,检测区域包含三种类型的像素:皮肤、头发和背景。在一些更复杂的情况下,还包括头饰。因为检测区域的左右范围相对保守,所以在大多数情况下,假设所包括的头发像素远多于背景像素。因此,主要过程是将检测区域的像素划分成头发或皮肤。
158.对于检测区域中的像素的每一行,皮肤颜色改变通常是连续的,例如从亮到暗,并且皮肤颜色和头发接合处通常具有明显的变化。因此,选择每行的中间像素作为起始点1608,并且向左侧和右侧检测皮肤像素。首先,使用相对保守的阈值来找到更可靠的皮肤颜色像素,并且然后将其向左右扩展。如果相邻像素的颜色相对接近,则也将其标记为皮肤颜色。这样的方法考虑了皮肤颜色的灰度,并且可以获得相对准确的结果。如图16所示,在头发颜色提取区域1602内,诸如1604的较暗区域表示皮肤颜色像素,而诸如1606的较亮区域表示头发颜色像素。选择头发颜色区域内的收集的头发颜色像素的中值r、g、b值作为最终平均头发颜色。
159.图17示出了根据本公开内容的一些实现方式的示例性眼影颜色提取方法。眼影颜色的提取与先前部位略有不同。这是因为眼影是可能存在也可能不存在的化妆品。因此,在提取眼影颜色时,需要首先确定眼影是否存在,并且如果眼影存在,则提取其平均颜色。与眉毛和瞳孔的颜色提取类似,仅在靠近镜头的主眼的部位执行眼影颜色提取。
160.首先,必须确定哪些像素属于眼影。如图17所示,针对眼影像素的检测区域,使用线1704和线1706内的区域1702。区域1702的左侧和右侧被定义为眼睛的内角和外角,并且区域的上侧和下侧是眉毛的下边缘和眼睛的上边缘。除了该区域1702中可能的眼影像素外,还可能存在提取眼影时需要排除的睫毛、眉毛和皮肤。
161.在一些实施方式中,为了消除眉毛的影响,检测区域的上边缘进一步向下移动。为了减少睫毛的影响,排除了亮度低于某个阈值的像素。为了区分眼影和皮肤颜色,对每个像素的色调与平均的皮肤的色调之间的差进行检查。仅在差大于某个阈值的情况下,才会将像素收集为可能的眼影像素。使用色调而不是rgb值的原因是主要在眼睛下方收集平均皮肤颜色,并且眼睛上方的皮肤颜色可能在亮度上有较大变化。由于颜色对亮度不敏感,因此
颜色相对稳定。因此,色调更适合于判断像素是否为皮肤。
162.通过以上过程,可以确定每个检测区域中的像素是否属于眼影。在一些实施方式中,如果不存在眼影,可能发生一些像素可能仍然被识别为眼影的错误。
163.为了减少以上错误,对检测区域的每一列进行检查。如果当前列中的眼影像素数目大于某个阈值,则将当前列标记为眼影列。如果眼影列与检测区域宽度的比率大于某个阈值,则认为当前图像中存在眼影,并且使用收集到的眼影像素的中值颜色作为最终颜色。以此方式,被误分类为眼影的少数像素不会导致对整体眼影的错误判断。
164.考虑到艺术风格,大多数游戏通常不允许在颜色上自由调整所有以上部位。对于放开了颜色调整的部位,通常仅允许匹配一组预定义的颜色。以头发为例,如果发型允许选择五种头发颜色,则资源包中的发型将包含对应于每种头发颜色的纹理图像。在检测期间,只要根据头发颜色预测结果选择具有最接近颜色的纹理图像,就可以获得期望的头发渲染效果。
165.在一些实施方式中,在仅提供一个颜色纹理图像时,可以根据检测到的任何颜色合理地改变纹理图像的颜色。为了便于颜色转换,将常用的rgb颜色空间表示转换为hsv颜色模型。hsv颜色模型包括三个维度:色调h、饱和度s和亮度v。色调h在模型中表示为360度的颜色范围,其中红色为0度,绿色为120度,并且蓝色为240度。饱和度s表示光谱颜色和白色的混合。饱和度越高,颜色越亮。当饱和度接近0时,颜色接近于白色。亮度v表示颜色的亮度,并且值范围是从黑色到白色。在颜色调整之后,期望纹理图像的hsv中值与预测的颜色匹配。因此,每个像素的色调值计算可以表示如下:hi′
=(hi+h
′‑
h)%1,其中hi′
和hi表示调整之前和调整之后的像素i的色调,并且h和h
′
表示调整之前和调整之后的纹理图像色调的中值。
166.与作为端到端连接的连续空间的色调不同,饱和度和亮度具有类似0和1的边界奇点。如果使用类似于色调调整的线性处理方法,则当初始图片或调整后的图片的中值接近0或1时,许多像素值将出现饱和度或亮度过高或过低。这种现象导致颜色不自然。为了解决该问题,使用以下非线性曲线来拟合像素调整之前和像素调整之后的饱和度和亮度:
167.y=1/(1+(1-α)(1-x)/(αx)),α∈(0,1)
168.在以上等式中,x和y分别是调整之前和调整之后的饱和度值或亮度值。唯一不确定的参数是α,其可以被导出为
169.α=1/(1+x/(1-x)
×
(1-y)/y)
170.该等式可以保证α落入从0到1的区间中。以饱和度为例,可以简单地基于输入图片来计算初始中值饱和度s。并且可以通过头发颜色提取和颜色空间转换来获得目标饱和度值s
t
。因此α=1/(1+s/(1-s)
×
(1-s
t
)/s
t
)。针对默认纹理图像中的每个像素si,然后可以通过等式:si′
=1/(1+(1-α)(1-si)/(αsi))来计算调整后的值。同样的计算也适用于亮度。
171.为了使调整后的纹理图片的显示效果更接近真实图片,对不同部位进行特殊处理。例如,为了保持头发的低饱和度,设置s
′
=s
′×v′
^0.3。图18示出了根据本公开内容的一些实现方式的一些示例性颜色调整结果。列1802示出了由特定游戏提供的一些默认纹理图片、列1804示出了根据列1804顶部示出的真实图片从同一行中的对应默认纹理图片调整的一些纹理图片,并且列1806示出了根据列1806顶部示出的真实图片从同一行中的对应默认纹理图片调整的一些纹理图片。
172.图19是示出根据本公开内容的一些实现方式的从真实生活中的人的2d面部图像中提取颜色的示例性过程的流程图1900。
173.从真实生活中的人的2d面部图像中提取颜色的过程包括步骤1910:基于关键点预测模型对2d面部图像中的多个关键点进行识别。
174.该过程还包括步骤1920:使2d面部图像旋转直到从多个关键点中选择的关键点对准。
175.该过程还包括步骤1930:在旋转后的2d面部图像中定位多个部位,并且每个部位由多个关键点的相应子集来限定。
176.该过程还包括步骤1940:从2d面部图像的像素值中提取由关键点的对应子集限定的多个部位中的每个部位的平均颜色。
177.该过程还包括步骤1950:使用2d面部图像中的多个部位的提取颜色来生成与2d面部图像的相应面部特征颜色匹配的真实生活中的人的个性化3d模型。
178.其他实现方式可以包括以下特征中的一个或更多个。
179.在一些实施方式中,识别步骤1910中的关键点预测模型是通过根据用户手动注释的关键点进行机器学习来形成的。
180.在一些实施方式中,用于对准的旋转步骤1920中的所选择的关键点位于2d面部图像的对称左侧和右侧。
181.在一些实施方式中,在步骤1940中,提取多个部位中的每个部位的平均颜色可以包括选择对应部位内的相应的限定区域中的所有像素的r、g、b值的中值作为预测平均颜色。
182.在一些实施方式中,在步骤1940中,提取多个部位中的每个部位的平均颜色可以包括确定皮肤部位内用于皮肤颜色提取的区域,并且选择用于皮肤颜色提取的区域中所有像素的r、g、b值的中值作为皮肤部位的预测平均颜色。在一些实施方式中,皮肤部位内用于皮肤颜色提取的区域被确定为面部上眼睛下方和鼻子下边缘上方的区域。
183.在一些实施方式中,在步骤1940中,提取多个部位中的每个部位的平均颜色可以包括眉毛部位内的眉毛颜色提取,眉毛颜色提取包括:根据确定眉毛位于更靠近2d面部图像的观看者的一侧,选择该眉毛作为目标眉毛;根据确定两个眉毛都与2d面部图像的观看者同等靠近,选择两个眉毛作为目标眉毛;提取目标眉毛内的中间眉毛区域;将中间眉毛区域内的每个像素值与平均皮肤颜色进行比较;收集中间眉毛区域内与平均皮肤颜色的像素值差超过阈值的像素;以及选择针对眉毛颜色提取所收集的像素的r、g、b值的中值作为眉毛部位的预测平均颜色。
184.在一些实施方式中,在步骤1940中,提取多个部位中的每个部位的平均颜色可以包括眼睛部位内的瞳孔颜色提取,瞳孔颜色提取包括:根据确定眼睛位于更靠近2d面部图像的观看者的一侧,选择该眼睛作为目标眼睛;根据确定两个眼睛都与2d面部图像的观看者同等靠近,选择两个眼睛作为目标眼睛;提取目标眼睛内没有睫毛的区域;将所提取的区域内的每个像素值与预定阈值进行比较;收集所提取的区域内具有超过预定阈值的像素值的像素;以及选择针对瞳孔颜色提取所收集的像素的r、g、b值的中值作为瞳孔的预测平均颜色。
185.在一些实施方式中,在步骤1940中,提取多个部位中的每个部位的平均颜色可以
包括嘴唇部位内的嘴唇颜色提取,嘴唇颜色提取包括:收集由下唇的关键点包围的区域中的所有像素,并且选择针对嘴唇颜色提取所收集的像素的r、g、b值的中值作为嘴唇部位的预测平均颜色。
186.在一些实施方式中,在步骤1940中,提取多个部位中的每个部位的平均颜色可以包括头发部位内的头发颜色提取,头发颜色提取包括:识别包括延伸到两侧头发部位中的前额部位的区域;从该区域的中间到左边界和右边界确定超过预定阈值的像素颜色变化;基于超过预定阈值的像素颜色变化将该区域划分为头发区域和皮肤区域;以及选择该区域内的头发区域的像素的r、g、b值的中值作为头发部位的预测平均颜色。
187.在一些实施方式中,包括延伸到两侧头发部位中的前额部位的区域被识别为矩形区域,其中,下边界在两个眉角处,左边界和右边界在从位于2d面部图像的对称左侧和右侧上的关键点向外的固定距离处,并且高度在从眉毛的上边缘到眼睛的下边缘的距离处。
188.在一些实施方式中,在步骤1940中,提取多个部位中的每个部位的平均颜色可以包括眼影部位内的眼影颜色提取,眼影颜色提取包括:根据确定眼睛位于更靠近2d面部图像的观看者的一侧,选择该眼睛作为目标眼睛;根据确定两个眼睛与2d面部图像的观看者同等靠近,选择两个眼睛作为目标眼睛;提取靠近目标眼睛的眼影部位内的中间区域,收集所提取的中间区域内的以下像素,该像素的亮度高于预定亮度阈值以排除睫毛并且与平均皮肤像素色调值差超过预定阈值;根据确定在所提取的中间区域内的一个像素列中收集的像素数目大于阈值,将像素列标注为眼影列;以及根据确定眼影列与所提取的中间区域的宽度的比率大于某个阈值,选择针对眼影颜色提取所收集的像素的r、g、b值的中值作为眼影部位的预测眼影颜色。
189.在一些实施方式中,从真实生活中的人的2d面部图像中提取颜色的过程可以另外包括基于平均颜色转换纹理图,同时保留纹理图的原始亮度和色差,转换纹理图包括:将平均颜色从rgb颜色空间表示转换为hsv(色调、饱和度、亮度)颜色空间表示,并且调整纹理图的颜色以减小平均颜色的中值hsv值与纹理图的中值hsv值像素之间的差。
190.本文所公开的方法和系统可以用于不同场景中的应用,例如角色建模和游戏角色生成。轻量级方法可以灵活地应用于包括移动设备的不同的设备。
191.在一些实施方式中,当前系统和方法中面部关键点的定义不限于当前定义,并且其他定义也是可能的,只要每个部位的轮廓可以被完全表达。另外,在一些实施方式中,可以不直接使用方案中直接返回的颜色,而是可以将其与预定义的颜色列表匹配以实现进一步的颜色筛选和控制。
192.优化拉普拉斯算子的变形方法要求网格是微分流形。然而,在实践中,由游戏艺术家制作的网格通常包含如重复的顶点、未封闭的边缘的伪影,这些伪影将破坏流形的属性。因此,仅在仔细清理网格之后,才可以使用如双谐波变形的方法。本文所提出的仿射变形方法未使用拉普拉斯算子,因此没有这样强的约束。
193.由双谐波变形表式的一系列变形方法在一些情况下具有变形能力不足的问题。一次求解拉普拉斯算子的谐波函数由于其低平滑度要求通常不能实现平滑的结果。求解高阶(》=3)拉普拉斯算子的多谐波函数由于其对至少6阶可微的高要求在许多网格上失败。在大多数情况下,观察到仅两次求解拉普拉斯算子的双谐波变形才可以实现可接受的结果。即便如此,因为双谐波变形缺乏调谐自由度,其变形仍然不能令人满意。本文所提出的仿射
变形可以通过改变平滑度参数来实现精细的变形调谐,并且其变形结果的范围涵盖了使用双谐波变形的范围。
194.图20是示出根据本公开内容的一些实现方式的示例性头部化身变形和生成过程的流程图。使用本公开内容中所提出的技术,头部网格可以在不与骨架绑定的情况下适当变形。因此,极大地减少了艺术家所需的工作量。这些技术适应不同风格的网格以获得更好的通用性。在制作游戏资源时,艺术家可以使用诸如3dmax或maya的工具以各种格式保存头部模型,但是这些格式的内部表示都是多边形网格。多边形网格可以容易地转换为被称为模板模型的纯三角形网格。针对每个模板模型,手动在模板模型上标记3d关键点一次。在这之后,模板模型可以用于根据从任意人类面部图片中检测和重建的3d关键点变形为特征头部化身。
195.图21是示出根据本公开内容的一些实现方式的示例性头部模板模型组成的图。如图21所示,头部模板模型2102通常包括诸如面部2110、眼睛2104、睫毛2106、牙齿2108和头发等部位。在不绑定骨架的情况下,网格变形依赖于模板网格的连接结构。因此,需要将模板模型分解为这些语义部分,并且需要首先对面部网格进行变形。通过在面部网格上设置和跟随某些关键点,可以自动调整所有其他部分。在一些实施方式中,提供了交互式工具来检测所有拓扑连接的部位,并且用户可以使用该交互式工具来便利地导出这些语义部分以用于进一步变形。
196.在一些实施方式中,可以通过一些检测算法或ai模型获得人类面部的图像关键点。出于驱动网格变形的目的,需要将这些关键点映射到模板模型上的顶点。由于网格连接的随机性,以及缺乏3d人类关键点标记数据,不具有可以在任意头部模型上准确地自动标记3d关键点的工具。因此,开发了可以手动地快速标记3d模型上的关键点的交互式工具。图22是示出根据本公开内容的一些实现方式的在诸如2202、2204的逼真风格的3d模型和诸如2206、2208的卡通风格的3d模型上的一些示例性关键点标记的图。
197.在标记过程中,所标记的3d关键点在3d模型上的位置应当最大程度地匹配图片关键点。由于关键点标记在3d模型网格上的离散顶点上,因此偏差引入是不可避免的。为了抵消这样的偏差,一种方法是在姿势处理中定义适当的规则。图23是示出根据本公开内容的一些实现方式的模板模型渲染、手动标记的关键点与ai检测的关键点之间的示例性比较的图。在一些实施方式中,针对那些制作得相对逼真的模型,关键点检测和重建算法可以应用于模板模型的渲染(2302),并且例如通过人工智能的3d关键点的结果(2306)可以进一步与手动标记的关键点(2304)进行比较,并且因此计算两组关键点之间的偏差。在检测人类图片的情况下,从真实生活图像中检测到的关键点减小计算的偏差,并且人工标记的不良影响将被消除。
198.本文所公开的仿射变形的方法是关键点驱动的数学建模,其最终求解线性方程组。此处所公开的方法采用一个步骤以使用检测到的关键点作为边界条件来使模板网格变形,并且在优化过程中采用不同的约束。图24是示出根据本公开内容的一些实现方式的示例性三角形的仿射变换的图。
199.在一些实施方式中,从模板网格到预测网格的变形被认为是每个三角形的仿射变换的集合。三角形的仿射变换可以定义为3
×
3矩阵t和平移向量d。如图24所示,仿射变换之后的变形顶点的位置记为vi′
=tvi+d,i∈1
…
4,其中v1、v2、v3分别表示三角形的每个顶点,
并且v4是在三角形法线方向上引入的额外点,其满足等式v4v1+(v
2-v1)
×
(v
3-v1)/sqrt(/(v
2-v1)
×
(v
3-v1)/)。在以上等式中,对叉积的结果进行归一化以使得其与三角形边的长度成比例。引入v4的原因是因为三个顶点的坐标不足以确定唯一的仿射变换。引入v4之后,获得导出的等式:t=[v
′
2-v
′
1 v
′
3-v
′
1 v
′
4-v
′1]
×
[v
2-v
1 v
3-v
1 v
4-v1]-1
,并且确定了矩阵t的非平移部分。由于矩阵v=[v
2-v
1 v
3-v
1 v
4-v1]-1
仅取决于模板网格,与其他变形因子无关,因此可以将其预计算为稀疏系数矩阵以便后面构建线性系统。
[0200]
到目前为止,表示了数学公式中仿射变换t的非平移部分。为了构建优化的线性系统,假设网格顶点的数目为n且三角形的数目为f,则考虑以下四个约束:
[0201]
关键点位置的约束:ek=∑i=1||v
′
i-c
′i||2,c
′i代表网格变形之后检测到的关键点位置。
[0202]
邻接平滑度的约束:es=∑
i=1
∑
j∈adj(i)
||t
i-tj||2,该约束意指相邻三角形之间的仿射变换应当尽可能类似。可以提前查询和存储邻接关系以避免重复计算并提高构建系统的性能。
[0203]
特性的约束:ei=∑
i-1
||t
i-i||2,其中i表示单位矩阵。该约束意指仿射变换应当尽可能接近不变,这有助于保持模板网格的特性。
[0204]
原始位置的约束:e1=∑
i=1
n||v
′
i-ci||2,其中ci表示变形之前模板网格上每个顶点的位置。
[0205]
最终约束是以上约束的加权求和:mine=w
kek
+w
ses
+w
iei
+w
lel
其中权重wk、ws、wi、w
l
从最强到最弱排列。使用以上约束,最终可以构造线性系统,并且其大小为(f+n)
×
(f+n),并且将权重与系统中的对应系数相乘。除了每个三角形的额外点v
′4之外,未知数是变形之后每个顶点的坐标。由于前面的项是有用的,所以v
′4的结果将被丢弃。在连续变形的过程中,可以重用除了关键点位置的约束之外的所有的约束矩阵。对于具有数千个顶点的网格,仿射变换可以在普通个人计算机和智能电话上实现30fps的实时性能。
[0206]
图25是示出根据本公开内容的一些实现方式的具有混合形状过程和不具有混合形状过程的一些头部模型变形结果的示例性比较的图。
[0207]
在一些实施方式中,在使游戏化身的头部模型变形时,感兴趣的区域通常仅为面部。头部的顶部、背侧和颈部应当保持不变,否则将导致头部与头发或躯干之间的网格穿透。为了避免该问题,以混合形状的方式对仿射变形的结果和模板网格进行线性插值。混合的权重可以在3d建模软件中绘制,或者利用具有较小改变的仿射变形或双谐波进行计算。例如,关键点上的权重设置为1s,同时在头部模型上添加更多的标记(图25中2504中的暗点),并且将标记的权重设置为0s。在一些实施方式中,在求解处理中添加不等式约束以迫使所有权重落入从0到1的范围内,但是这样做将极大地增加求解的复杂性。通过实验可以通过剔除小于0或大于1的权重来获得良好的结果。如图25中的2504中所示,具有最深颜色的模型部分的权重为1s,并且无色的模型部分的权重为0s。在混合权重渲染2504中,亮关键点与暗标记之间存在自然过渡。在具有混合形状的情况下,变形之后的模型背侧(如图25中的2506中所示)与原始的(如图25中的2502中所示)保持相同。在不具有混合形状的情况下,变形之后的模型背侧(如图25中的2508中所示)与原始的(如图25中的2502中所示)不保持相同。
[0208]
在一些实施方式中,仿射变形可以通过操纵约束的权重来实现不同的变形效果,
包括模拟双谐波变形的结果。图26是示出根据本公开内容的一些实现方式的具有不同权重的仿射变形与双谐波变形的示例性比较的图。如图26所示,平滑度是邻接平滑度权重ws和特性权重wi的比率。暗点是关键点,并且颜色的暗度表示顶点的变形位置与其初始位置之间的位移。在所有变形结果中,一个关键点保持不变,并且另一关键点移动到同一位置。这表明在邻接平滑度权重相对于特性权重逐渐增加的情况下,变形球体的平滑度也对应增加。另外,双谐波变形的结果可以与平滑度落入10与100之间的某处的仿射变形的结果匹配。这指示与双谐波变形相比,仿射变形具有更多的变形自由度。
[0209]
使用本文所描述的工作流,游戏可以容易地集成智能生成头部化身的功能。例如,图27示出了根据本公开内容的一些实现方式的使用逼真模板模型根据一些随机挑选的女性图片(图27中未示出)自动生成的一些示例性结果。所有个性化头部化身都反映其对应图片的一些特性。
[0210]
图28是示出根据本公开内容的一些实现方式的根据真实生活中的人的2d面部图像生成3d头部变形模型的示例性过程的流程图2800。
[0211]
根据2d面部图像生成3d头部变形模型的处理包括步骤2810:接收二维(2d)面部图像。
[0212]
该过程还包括步骤2820:基于人工智能(ai)模型(例如,卷积神经网络)对2d面部图像中的第一组关键点进行识别。
[0213]
该处理还包括步骤2830:基于位于3d头部模板模型上的一组用户提供的关键点注释将第一组关键点映射到位于3d头部模板模型的网格的多个顶点上的第二组关键点。
[0214]
该处理还包括步骤2840:通过减小第一组关键点与第二组关键点之间的差异对3d头部模板模型的网格执行变形以获得变形的3d头部网格模型。在一些实施方式中,在第一组中的关键点与第二组中的关键点之间存在对应关系。在将第二组关键点投影到与第一组关键点相同的空间中之后,生成测量第一组关键点与第二组关键点中的每个关键点之间的位置差的函数。通过对3d头部模板模型的网格执行变形,在测量第一组关键点与第二组关键点中的每个关键点之间的位置差(例如,位置、邻接平滑度、特性等)的函数被最小化时,空间中的第二组关键点被优化。
[0215]
该过程还包括步骤2850:将混合形状方法(blendshape method)应用于变形的3d头部网格模型以根据2d面部图像获得个性化的头部模型。
[0216]
其他实现方式可以包括以下特征中的一个或更多个。
[0217]
在一些实施方式中,映射的步骤2830还可以包括:将2d面部图像上的第一组关键点与3d头部模板模型的网格上的多个顶点相关联;基于在3d头部模板模型的网格上的多个顶点上的一组用户提供的关键点注释来识别第二组关键点;以及基于通过面部上的相应关键点而对应识别的特征来对第一组关键点和第二组关键点进行映射。
[0218]
在一些实施方式中,执行变形的步骤2840可以包括:通过使用第一组关键点到第二组关键点的映射,以及通过使用与第一组关键点有关的变形的边界条件,将3d头部模板模型的网格变形为变形的3d头部网格模型。
[0219]
在一些实施方式中,执行变形的步骤2840还可以包括:在变形优化过程中应用不同的约束,该约束包括以下中的一个或更多个:关键点的位置、邻接平滑度、特性和初始位置。
[0220]
在一些实施方式中,执行变形的步骤2840还可以包括:将约束应用于变形过程,该约束是关键点的位置、邻接平滑度、特性和原始位置中的一个或更多个的加权求和。
[0221]
在一些实施方式中,识别第一组关键点的步骤2820包括使用卷积神经网络(cnn)。
[0222]
在一些实施方式中,变形包括没有拉普拉斯算子的仿射变形。在一些实施方式中,仿射变形通过改变平滑度参数来实现变形调谐。
[0223]
在一些实施方式中,3d头部模板模型的网格可以在不与骨架绑定的情况下变形。在一些实施方式中,面部变形模型包括逼真风格模型或卡通风格模型。
[0224]
在一些实施方式中,在步骤2850中,将混合形状方法应用于变形的3d头部网格模型包括:根据变形的3d头部网格模型的关键点的位置对关键点指定相应的混合权重;以及将不同水平的变形应用于具有不同混合权重的关键点。
[0225]
在一些实施方式中,在步骤2850中,将混合形状方法应用于变形的3d头部网格模型包括:保持变形的3d头部网格模型的背侧与变形之前的3d头部模板模型的原始背侧形状相同。
[0226]
在一些实施方式中,模板模型上的语义部分不限于眼睛、睫毛或牙齿。通过在面部网格上添加新的关键点并对其进行跟随(tracking),可以潜在地自适应地调整诸如眼镜的装饰。
[0227]
在一些实施方式中,模板模型上的关键点是手动添加的。在一些其他实施方式中,也可以利用深度学习技术以自动添加不同模板模型的关键点。
[0228]
在一些实施方式中,仿射变形的求解过程可以利用一些数值技巧来进一步提高其计算性能。
[0229]
在一些实施方式中,本文公开的系统和方法形成基于轻量级关键点的面部化身生成系统,其具有许多优点,例如下面列出的这些优点:
[0230]
对于输入图像的低要求。该系统和方法不要求面部直接面向摄像装置,并且一定程度的面内旋转、面外旋转和遮挡不会明显影响性能。
[0231]
适用于真实游戏和卡通游戏两者。本系统不将游戏风格限制为真实风格,并且游戏风格也可以应用于卡通风格。
[0232]
轻量化和定制化。本系统的每个模块都相对轻量,并且适用于移动设备。该系统中的模块是解耦的,并且用户可以根据不同的游戏风格采用不同的组合来构建最终的面部生成系统。
[0233]
在一些实施方式中,对于给定的单个照片,首先检测主面部,然后执行关键点检测。在真实的图片中,面部可能不面向摄像装置,并且真实的面部并不总是完全对称的。因此,对原始图片中的关键点进行预处理以得到统一、对称且平滑的一组关键点。然后根据游戏的具体风格(例如放大的眼睛、瘦削的面部)调整关键点。在得到风格化的关键点后,将风格化的关键点转换成游戏中面部模型的控制参数,一般是骨骼参数或滑块参数。
[0234]
在一些实施方式中,真实面部的视角可能不直接面向摄像装置,并且可能存在诸如左右不对称和关键点检测错误的问题。图29是示出根据本公开内容的一些实现方式的示例性关键点处理流程步骤的图。从原始图片检测到的关键点2904不能直接使用,并且需要某些处理。这里,如图29所示,该过程分为三个步骤:归一化、对称化和平滑化。
[0235]
在一些实施方式中,需要调整基于真实面部关键点预测的游戏中的标准面部模
型。该过程需要确保游戏中的标准面部模型的关键点和真实面部在尺度、位置和方向上对准。因此,预测的关键点和游戏面部模型上的关键点的归一化2906包括以下部分:尺度归一化、平移归一化和角度归一化。
[0236]
在一些实施方式中,原始检测的所有三维面部关键点被定义为p,其中第i个关键点是pi={xi,yi,zi}。例如,归一化原点被定义为1号和17号关键点的中点(参照图1中关键点的定义),即c=(p1+p
17
)/2。对于尺度,第1个和第17个关键点与原点之间的距离被调整为1,使得通过尺度和平移归一化的三维关键点为p
′
=(p-c)/||p
1-c||。
[0237]
在一些实施方式中,在对尺度和平移进行归一化之后,进一步对面部方向进行归一化。如图29的图像2902中所示,实际照片中的面部可能不直接面向镜头,并且总会有一定的偏转,该偏转可能存在于三个坐标轴上。使面部的预测三维关键点沿着x、y和z坐标轴顺序地旋转,使得面部的方向面向摄像机。当沿着x旋转时,将关键点18和24的z坐标(参照图1中关键点的定义)对准,也就是说,使鼻梁最上部的深度处于与鼻子底部相同的深度,以获得旋转矩阵r
x
。当沿y轴旋转时,关键点1和17的z坐标对准以得到旋转矩阵ry。当沿着z轴旋转时,关键点1和17的y坐标对准以得到旋转矩阵rz。因此,关键点的方向被对准,并且归一化的关键点如下所示:p
norm
=rz×ry
×rx
×
p
′
[0238]
在一些实施方式中,归一化的关键点的尺度、位置和角度已经被调整为是均匀的,但是所获得的关键点通常不是完美的面部。例如,鼻梁相对于中心不是一条直线,以及面部特征可能不对称。这是因为照片中的真实面部由于表情或其自身特性而不是完全对称的,并且在预测关键点时将引入另外的误差。虽然真实的面部可能不对称,但是如果游戏中的面部模型不对称,这将导致不美观的外表,并且将极大地降低用户体验。因此,如2908中所示的使关键点对称是必要的过程。
[0239]
由于关键点已被归一化,因此在一些实施方式中,简单的对称方法是对所有左对称关键点和右对称关键点的y坐标和z坐标求平均以替换原始y坐标和z坐标。这种方法在大多数情况下效果很好,但是当面部在y轴方向上以大角度旋转时,将牺牲性能。
[0240]
在一些实施方式中,以图29中的人类面部为例,当面部向左偏转大角度时,部分眉毛将不可见。同时,由于透视的原因,左眼将比右眼小。虽然三维关键点可以部分补偿由透视关系造成的影响,但是与关键点对应的3d关键点的2d投影仍然需要保持在图片上。因此,过大的角度偏转将导致3d关键点检测结果中眼睛和眉毛尺寸的明显差异。为了解决角度造成的影响,当面部沿着y轴的偏转角度较大时,将靠近镜头的眼睛和眉毛用作主眼睛和主眉毛,并且它们被复制到另一侧,以减少由角度偏转造成的误差。
[0241]
在一些实施方式中,由于关键点的预测误差是不可避免的,因此在一些个别情况下,对称的关键点可能仍然不匹配真实面部。由于真实面部和面部特征的形状非常不同,因此使用预定义的参数化曲线很难实现相对准确的描述。因此,当如2910中所示平滑化时,仅平滑一些区域,例如面部、眼睛、眉毛、下唇等的轮廓。这些区域基本上保持单调平滑,也就是说,没有锯齿状的情况。在这种情况下,目标曲线应该始终是凸曲线或凹曲线。
[0242]
在一些实施方式中,针对相关边界逐个检查关键点是否满足凸曲线(或凹曲线)的定义。图30是示出根据本公开内容的一些实现方式的示例性关键点平滑过程2910的图。如图30所示,在不丧失一般性的情况下,目标曲线应该是凸的。对于每个关键点3002、3004、
3006、3008和3010,检查其位置是否在其邻接的左右关键点的线之上。如果满足条件,则意指当前关键点满足凸曲线要求。否则,当前关键点将向上移动到连接左右关键点的线上。例如,在图30中,关键点3006不满足凸曲线的限制,并且关键点3006将被移动到位置3012。如果移动多个关键点,可能无法保证曲线在移动后是凸的还是凹的。因此,在一些实施方式中,使用多轮平滑来得到相对平滑的关键点曲线。
[0243]
不同的游戏有不同的面部风格。在一些实施方式中,需要将真实面部的关键点变换成游戏所需的风格。真实风格的游戏面孔是类似的,但是卡通面部是非常不同的。因此,关键点的风格化难以具有统一的标准。实际使用中风格化的定义来自游戏的设计者,设计者根据具体的游戏风格来调整面部的特征。
[0244]
在一些实施方式中,实现了大多数游戏可能需要的更一般的面部调整方案。例如面部长度调整、宽度调整、面部特征等。根据不同的游戏艺术风格、调整水平、缩放比率等,可以进行定制校正。同时,用户还可以定制任何特定风格的调整方法,例如,将眼睛形状更改为矩形。该系统可以支持任何方式的调整。
[0245]
在一些实施方式中,利用风格化面部的关键点,使标准游戏面部变形,使得变形面部的关键点到达目标关键点的位置。由于大多数游戏使用诸如骨骼或滑块的控制参数来调整面部,因此需要一组控制参数来将关键点移动到目标位置。
[0246]
由于不同游戏中骨骼或滑块的定义可能不同,并且存在随时修改的可能性,因此直接定义从关键点到骨骼参数的简单参数化函数是不可行的。在一些实施方式中,机器学习方法用于通过神经网络将关键点转换为参数,该神经网络被称为k2p(关键点到参数)网络。因为一般参数和关键点的数目不大(通常小于100),所以在一些实施方式中,使用k层全连接网络。
[0247]
图31是示出根据本公开内容的一些实现方式的示例性关键点到控制参数(k2p)转换过程的框图。为了使用机器学习方法,在一些实施方式中,首先对骨骼或滑块参数进行随机采样,将其馈送到游戏客户端3110,并且在生成的游戏面部中提取关键点。以此方式,可以获得大量训练数据(参数3112和关键点3114对)。然后实现了一种自监督机器学习方法,该方法分为两个步骤:第一步骤是训练p2k(参数到关键点)网络3116来模拟生成游戏参数到关键点的过程。在第二步骤中,根据本文描述的方法,使用大量未标注的真实面部图像3102来生成真实面部关键点3104,然后生成大量风格化的关键点3106。这些未标注的风格化的关键点3106是自监督学习训练数据。在一些实施方式中,一组关键点k被输入到k2p网络3108中以用于学习以获得输出参数p。由于对应于这些关键点的理想参数的真值不可用,所以p被进一步输入到在第一步骤中训练的p2k网络3116中以获得关键点k
′
。在一些实施方式中,通过计算k与k
′
之间的均方误差(mean square error,mse)损失,可以学习k2p网络3108。在一些实施方式中,在第二步骤期间,p2k网络3116是固定的,并且将不继续被调整。借助于p2k网络3116,使用神经网络对将游戏客户端3110的参数到关键点的控制过程进行模拟,从而为第二步骤中k2p网络3108的学习奠定基础。以此方式,由参数生成的最终面部保持接近所生成的目标风格化面部的关键点。
[0248]
在一些实施方式中,同时,通过在计算k与k
′
之间的mse损失时调整对应的权重,向某些关键点(例如眼睛的关键点)添加权重。由于关键点的定义是预定义的并且将不受游戏客户端的骨骼或滑块的影响,因此更容易调整权重。
[0249]
在一些实施方式中,在实际应用中,为了提高模型的准确度,对于可以解耦的部分,可以单独训练神经网络。例如,如果一些骨骼参数只影响眼睛区域的关键点,而其他参数对该区域没有影响,则这些参数和关键点的这部分形成一组独立的区域。为每组这样的区域训练单独的k2p模型3108,并且每个模型可以采用更轻量的网络设计。这不仅可以进一步提高模型的准确度,而且可以降低计算复杂度。
[0250]
图32示出了根据本公开内容的一些实现方式的移动游戏的自动面部生成的一些示例性结果。如图32所示,示出了从原始面部图像(3202和3206)到游戏面部化身图像(3204和3208)生成的结果。在一些实施方式中,当风格化时,使张开的嘴是闭合的,并且将不同水平的限制和卡通化应用于鼻子、嘴巴、面部形状、眼睛和眉毛。最终生成的结果仍然保留了某些人类面部特性,并且满足游戏风格的审美要求。
[0251]
图33是示出根据本公开内容的一些实现方式的使用真实生活中的人的2d面部图像来定制游戏中的化身的标准面部的示例性过程的流程图3300。
[0252]
使用真实生活中的人的2d面部图像来定制游戏中的化身的标准面部的处理的过程包括步骤3310:识别2d面部图像中的一组真实生活关键点。
[0253]
该过程还包括步骤3320:将该组真实生活关键点变换成与游戏中的化身相关联的一组游戏风格关键点。
[0254]
该过程还包括步骤3330:通过将该组游戏风格关键点应用于关键点到参数(keypoint to parameter,k2p)神经网络模型来生成游戏中的化身的标准面部的一组控制参数。如以上结合图31所述,k2p网络3108是深度学习神经网络模型,其基于一组输入化身关键点来预测一组面部控制参数,因为不同组的化身关键点可以对应于不同组的面部控制参数,使得当将该组面部控制参数应用于化身的标准面部时,调整的标准面部的关键点可以具有类似于该组输入化身关键点的一组关键点。如以上结合图31所述,与k2p网络3108相反,p2k网络3116是深度学习神经网络模型,其基于该组输入面部控制参数来预测一组化身关键点,因为不同组的面部控制参数可以导致不同组的化身关键点,使得当两个神经网络模型被认为执行彼此相反的过程时,与p2k网络3116相关联的该组输出化身关键点应当匹配与k2p网络3108相关联的该组输入化身关键点。
[0255]
该过程还包括步骤3340:通过将该组面部控制参数应用于标准面部来调整标准面部的多个面部特征。
[0256]
其他实现方式可以包括以下特征中的一个或更多个。
[0257]
在一些实施方式中,在步骤3330中,通过以下步骤对k2p神经网络模型进行训练:获得真实生活中的人的多个训练二维面部图像;针对所述多个训练二维面部图像中的每一个生成一组训练游戏风格关键点;将每组训练游戏风格关键点馈送到k2p神经网络模型以获得一组控制参数;将该组控制参数馈送到预训练的参数到关键点(parameter to keypoint,p2k)神经网络模型以获得与该组训练游戏风格关键点相对应的一组预测游戏风格关键点;以及通过减小该组训练游戏风格关键点与对应组的预测游戏风格关键点之间的差来更新k2p神经网络模型。
[0258]
在一些实施方式中,预训练的p2k神经网络模型被配置成:接收一组控制参数,该组控制参数包括与游戏中的化身相关联的骨骼或滑块参数;以及根据该组控制参数来预测游戏中的化身的一组游戏风格关键点。
[0259]
在一些实施方式中,该组训练游戏风格关键点与对应组的预测游戏风格关键点之间的差是该组训练游戏风格关键点与对应组的预测游戏风格关键点之间的均方误差的总和。
[0260]
在一些实施方式中,训练的k2p和预训练的p2k神经网络模型特定于游戏。
[0261]
在一些实施方式中,2d面部图像中的一组真实生活关键点对应于2d面部图像中的真实生活中的人的面部特征。
[0262]
在一些实施方式中,游戏中的化身的标准面部可以根据不同真实生活中的人的面部图像定制成游戏的不同角色。
[0263]
在一些实施方式中,化身的变形面部是真实生活中的人的卡通风格的面部。在一些实施方式中,化身的变形面部是真实生活中的人的真实风格的面部。
[0264]
在一些实施方式中,在步骤3320中,将该组真实生活关键点变换成该组游戏风格关键点包括:将该组真实生活关键点归一化到规范空间;使归一化的该组真实生活关键点对称;以及根据与游戏中的化身相关联的预定义风格来调整对称的该组真实生活关键点。
[0265]
在一些实施方式中,将该组真实生活关键点归一化到规范空间中包括:将该组真实生活关键点缩放到规范空间中;以及使缩放的该组真实生活关键点根据2d面部图像中的该组真实生活关键点的方向来旋转。
[0266]
在一些实施方式中,将该组真实生活关键点变换成该组游戏风格关键点还包括平滑该组对称的关键点以满足预定义的凸曲线或凹曲线要求。
[0267]
在一些实施方式中,根据与游戏中的化身相关联的预定义风格来调整对称的该组真实生活关键点包括以下中的一个或更多个:面部长度调整、面部宽度调整、面部特征调整、缩放调整和眼睛形状调整。
[0268]
本文公开的系统和方法可以应用于针对真实风格游戏和卡通风格游戏两者的各种游戏的自动面部生成系统。该系统具有易于集成的接口,改善了用户体验。
[0269]
在一些实施方式中,本文公开的系统和方法可以在各种游戏的3d面部化身生成系统中使用,并且复杂的手动调整过程被自动化以改善用户体验。用户可以自拍或上传现有照片。该系统可以从照片中的面部中提取特征,并且然后通过ai面部生成系统自动生成游戏面部的控制参数(如骨骼或滑块)。游戏端使用这些参数生成面部化身,使得创建的面部具有用户的面部特征。
[0270]
在一些实施方式中,该系统可以根据不同的游戏容易地定制,包括关键点定义、风格化方法、骨骼/滑块的定义等。用户可以选择只调整某些参数、自动地重新训练模型,或者添加定制控制算法。以此方式,本发明可以容易地部署到不同的游戏中。
[0271]
其他的实施方式还包括组合或以其他方式重新布置在各种其他实施方式中的以上实施方式的各种子集。
[0272]
在此,参照附图的描述来实现本技术的实施方式的图像处理装置。图像处理装置可以以各种形式实现,例如,被实现为诸如服务器或终端的不同类型的计算机设备(例如,台式计算机、笔记本计算机或智能电话)。下面进一步描述本技术的实施方式的图像处理装置的硬件结构。可以理解,图34仅示出了图像处理装置的示例性结构,而不是所有结构,并且可以根据需要实现图34中示出的部分或全部结构。
[0273]
参照图34,图34是根据本技术的实施方式的图像处理装置的可选硬件结构的示意
图,并且在实际应用中,可选硬件结构可以应用于运行应用程序的服务器或各种终端。图34所示的图像处理装置3400包括:至少一个处理器3401、存储器3402、用户接口3403以及至少一个网络接口3404。图像处理装置3400中的部件通过总线系统3405耦合在一起。可以理解,总线3405被配置成实现部件之间的连接和通信。总线系统3405除了包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线。然而,出于清楚地解释的目的,所有总线在图34中都标记为总线系统3405。
[0274]
用户接口3403可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触摸板、触摸屏等。
[0275]
可以理解,存储器3402可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
[0276]
本技术的实施方式中的存储器3402被配置成存储不同类型的数据以支持图像处理装置3400的操作。数据的示例包括:用于在图像处理装置3400上执行操作的任何计算机程序,例如可执行程序34021和操作系统34022,以及用于执行本技术的实施方式的图像处理方法的程序可以包括在可执行程序34021中。
[0277]
本技术的实施方式中公开的图像处理方法可以应用于处理器3401,或者可以由处理器3401执行。处理器3401可以是集成电路芯片,并且具有信号处理能力。在实现过程中,可以通过使用处理器3401中的硬件的集成逻辑电路或软件形式的指令来完成图像处理方法的每个步骤。前述处理器3401可以是通用处理器、数字信号处理器(digital signal processor,dsp)、另一可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件部件等。处理器3401可以实现或执行本技术的实施方式中提供的方法、步骤和逻辑框图。通用处理器可以是微处理器、任何常规处理器等。本技术的实施方式中提供的方法中的步骤可以由硬件解码处理器直接执行,或者可以通过组合解码处理器中的硬件和软件模块来执行。软件模块可以位于存储介质中。存储介质位于存储器3402中。处理器3401读取存储器3402中的信息,并且通过将信息与其硬件组合来执行本技术的实施方式中提供的图像处理方法的步骤。
[0278]
在一些实施方式中,可以在网络上的服务器组或云上完成图像处理以及3d面部和头部形成。
[0279]
在一个或更多个示例中,所描述的功能可以以硬件、软件、固件或其任意组合来实现。如果以软件实现,那么功能可以作为一个或更多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于有形介质(例如数据存储介质)或者通信介质,通信介质包括有助于例如根据通信协议将计算机程序从一个地方传输到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可以被一个或更多个计算机或一个或更多个处理器访问以检索用于实现本技术中描述的实现方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0280]
在本文的实现方式的描述中使用的术语仅出于描述特定实现方式的目的,而不旨在限制权利要求的范围。如在实现方式和所附权利要求书的描述中所使用的,单数形式(“a”“an”)和“该”也旨在包括复数形式,除非上下文另外清楚地指示。还应当理解,如本文中使用的术语“和/或”指的是并包含各相关列出项中的一个或更多个的任何和所有可能的
组合。还应当理解,当在本说明书中使用时,术语“包括(comprises)”和/或“包括(comprising)”指定了所述特征、元件和/或部件的存在,但是不排除一个或更多个其他特征、元件、部件和/或其组的存在或添加。
[0281]
还应当理解,尽管术语第一、第二等可以在此用于描述各种元件,但这些元件不应受这些术语的限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离实现方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但是它们不是同一电极。
[0282]
本技术的描述是出于说明和描述的目的而呈现的,并且不旨在是穷举的或不限于所公开的形式的本发明。受益于前述描述和相关附图中呈现的教导,许多修改、变化和替选实现方式对于本领域普通技术人员来说将是明显的。选择和描述实施方式是为了最好地解释本发明的原理、实际应用,并且使本领域的其他技术人员能够理解本发明的各种实现方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实现方式。因此,应当理解,权利要求的范围不限于所公开的实现方式的具体示例,并且修改和其他实现方式旨在包括在所附权利要求的范围内。
技术特征:
1.一种生成三维(3d)头部变形模型的计算机实现的方法,包括:接收二维(2d)面部图像;基于人工智能(ai)模型,识别所述2d面部图像中的第一组关键点;基于位于3d头部模板模型上的一组用户提供的关键点注释,将所述第一组关键点映射到位于所述3d头部模板模型的网格的多个顶点上的第二组关键点;通过减小所述第一组关键点与所述第二组关键点之间的差异,对所述3d头部模板模型的网格执行变形,以获得经变形的3d头部网格模型;以及对所述经变形的3d头部网格模型应用混合形状方法,以根据所述2d面部图像获得头部模型。2.根据权利要求1所述的方法,其中,将所述第一组关键点映射到所述第二组关键点还包括:将所述2d面部图像上的所述第一组关键点与所述3d头部模板模型的网格上的所述多个顶点相关联;以及基于通过面部上的相应关键点识别的对应特征,映射所述第一组关键点与所述第二组关键点。3.根据权利要求1所述的方法,其中,执行变形包括:通过使用所述第一组关键点到所述第二组关键点的映射以及通过使用与所述第一组关键点有关的变形的边界条件,将所述3d头部模板模型的网格变形为所述经变形的3d头部网格模型。4.根据权利要求3所述的方法,其中,执行变形还包括:在变形优化的过程中应用不同的约束,所述不同的约束包括以下中的一个或更多个:关键点的位置、相邻平滑度、特性和原始位置。5.根据权利要求3所述的方法,其中,执行变形还包括:对变形的过程应用约束,所述约束是以下中的一个或更多个的加权求和:关键点的位置、相邻平滑度、特性和原始位置。6.根据权利要求1所述的方法,其中,识别所述第一组关键点包括:使用卷积神经网络(cnn)。7.根据权利要求1所述的方法,其中,所述变形包括不具有拉普拉斯算子的仿射变形。8.根据权利要求7所述的方法,其中,所述仿射变形通过改变平滑度参数来实现变形调谐。9.根据权利要求1所述的方法,其中,在不与骨架绑定的情况下对所述3d头部模板模型的网格进行变形。10.根据权利要求1所述的方法,其中,所述面部变形模型包括真实风格模型或卡通风格模型。11.根据权利要求1所述的方法,其中,对所述经变形的3d头部网格模型应用所述混合形状方法包括:根据相应关键点的位置,对所述经变形的3d头部网格模型的所述第二组关键点中的每一个分配相应的混合权重;以及对具有不同的混合权重的所述第二组关键点应用不同水平的变形。12.根据权利要求1所述的方法,其中,对所述经变形的3d头部网格模型应用所述混合形状方法包括:保持所述经变形的3d头部网格模型的背侧的形状与变形之前的3d头部模板
模型的原始背侧形状相同。13.一种电子装置,包括一个或更多个处理单元、耦接至所述一个或更多个处理单元的存储器以及存储在所述存储器中的多个程序,所述多个程序在由所述一个或更多个处理单元执行时,使得所述电子装置执行生成三维(3d)头部变形模型的多个操作,所述多个操作包括:接收二维(2d)面部图像;基于人工智能(ai)模型,识别所述2d面部图像中的第一组关键点;基于位于3d头部模板模型上的一组用户提供的关键点注释,将所述第一组关键点映射到位于所述3d头部模板模型的网格的多个顶点上的第二组关键点;通过减小所述第一组关键点与所述第二组关键点之间的差异,对所述3d头部模板模型的网格执行变形,以获得经变形的3d头部网格模型;以及对所述经变形的3d头部网格模型应用混合形状方法,以根据所述2d面部图像获得头部模型。14.根据权利要求13所述的电子装置,其中,将所述将第一组关键点映射到所述第二组关键点还包括:将所述2d面部图像上的所述第一组关键点与所述3d头部模板模型的网格上的多个顶点相关联;基于在所述3d头部模板模型的网格上的所述多个顶点上的所述一组用户提供的关键点注释来识别所述第二组关键点;以及基于通过面部上的相应关键点识别的对应特征,映射所述第一组关键点与所述第二组关键点。15.根据权利要求13所述的电子装置,其中,执行变形包括:通过使用所述第一组关键点到所述第二组关键点的映射以及通过使用与所述第一组关键点有关的变形的边界条件,将所述3d头部模板模型的网格变形为所述经变形的3d头部网格模型。16.根据权利要求15所述的电子装置,其中,执行变形还包括:在变形优化的过程中应用不同的约束,所述不同的约束包括以下中的一个或更多个:关键点的位置、相邻平滑度、特性和原始位置。17.根据权利要求13所述的电子装置,其中,对所述经变形的3d头部网格模型应用所述混合形状方法包括:根据相应关键点的位置,对所述经变形的3d头部网格模型的所述第二组关键点中的每一个分配相应的混合权重;以及对具有不同的混合权重的所述第二组关键点应用不同水平的变形。18.一种非暂态计算机可读存储介质,其存储有多个程序,所述多个程序用于由具有一个或更多个处理单元的电子装置执行,其中,所述多个程序在由所述一个或更多个处理单元执行时,使得所述电子装置执行生成三维(3d)头部变形模型的多个操作,所述多个操作包括:接收二维(2d)面部图像;基于人工智能(ai)模型,识别所述2d面部图像中的第一组关键点;基于3d头部模板模型上的一组用户提供的关键点注释,将所述第一组关键点映射到位
于所述3d头部模板模型的网格的多个顶点上的第二组关键点;通过减小所述第一组关键点与所述第二组关键点之间的差异,对所述3d头部模板模型的网格执行变形,以获得经变形的3d头部网格模型;以及对所述经变形的3d头部网格模型应用混合形状方法,以根据所述2d面部图像获得头部模型。19.根据权利要求18所述的非暂态计算机可读存储介质,其中,将所述第一组关键点映射到所述第二组关键点还包括:将所述2d面部图像上的所述第一组关键点与所述3d头部模板模型的网格上的所述多个顶点相关联;基于在所述3d头部模板模型的网格上的所述多个顶点上的所述一组用户提供的关键点注释,识别所述第二组关键点;以及基于通过面部上的相应关键点识别的对应特征,映射所述第一组关键点与所述第二组关键点。20.根据权利要求18所述的非暂态计算机可读存储介质,其中,对所述经变形的3d头部网格模型应用所述混合形状方法包括:根据相应关键点的位置,对所述经变形的3d头部网格模型的所述第二组关键点中的每一个分配相应的混合权重;以及对具有不同的混合权重的所述第二组关键点应用不同水平的变形。
技术总结
一种电子装置,其执行用于生成三维(3D)头部变形模型的方法,该方法包括:接收二维(2D)面部图像;基于人工智能(AI)模型,识别2D面部图像中的第一组关键点;基于位于3D头部模板模型上的一组用户提供的关键点注释,将第一组关键点映射到位于3D头部模板模型的网格的多个顶点上的第二组关键点;通过减小第一组关键点与第二组关键点之间的差异,对3D头部模板模型的网格执行变形,以获得变形的3D头部网格模型;以及对经变形的3D头部网格模型应用混合形状方法,以根据2D面部图像获得头部模型。以根据2D面部图像获得头部模型。以根据2D面部图像获得头部模型。
技术研发人员:刘松润 杨博 王博
受保护的技术使用者:腾讯美国有限责任公司
技术研发日:2022.02.28
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
