生成个性化3D头部模型或3D身体模型的方法与流程

文档序号:14204142阅读:527来源:国知局
生成个性化3D头部模型或3D身体模型的方法与流程

发明背景

1.发明领域

本发明的领域涉及生成用户的个性化3d头部模型或3d身体模型的方法,并且涉及相关的系统和计算机程序产品。

2.

背景技术:

通常通过虚拟试衣间(vfr)已知的在线体型和服装穿配可视化技术在过去十年出现,现在已经被许多在线零售商采用。vfr系统(由例如metail[1]代表)允许电子购物者创建代表他们自己形状的3d形象,并以交互方式装扮形象以提供衣服在代表性身体模型上的外观和适合度的相片真实感的可视化。形象与用户越接近,用户可以发现技术越引人注目,他们越可能信任该技术。

建立摄影工作室使得用户可以拍摄到高质量的照片,从而可以使用高质量的输入照片生成高质量的3d头部模型或高质量的3d身体模型通常是不切实际的。用智能手机接收用户拍摄的照片是实际的,但到目前为止,还没有办法使用这种照片来产生高质量的3d头部模型或高质量的3d身体模型。

本专利说明书不仅描述了各种想法和功能,而且描述了它们的创造性表达。因此,本专利文件的一部分公开内容包含受版权保护的材料并且在此给出通知:metaillimited(例如,根据17u.s.c.401)。对与本专利说明书中所说明和描述的本发明的例子相关联的所有保护表达要求版权保护。

版权所有者不反对任何人复制呈现在专利和商标局专利文件或记录中的专利文件或专利公开内容,但保留其他所有版权权利。因此,并不担保任何明示或默示的版权许可。

3.相关领域讨论

wo2012110828a1公开了用于生成和共享通过少量测量值和单张照片创建的虚拟身体模型以及一个或多个服装图像。虚拟身体模型代表用户身体的真实感表现,并用于服装、发型、化妆和/或其他配件的照片真实感的试衣可视化。从多个角度基于真实服装的照片创建虚拟服装。此外,在诸如根据多个渠道、朋友和时尚实体的手动和自动服装、化妆和发型推荐的多个实施方案中使用虚拟身体模型。虚拟身体模型可以共享例如可视化和对外观的评论,此外,它还用于使用户能够购买适合其他用户的服装,适用于礼品或类似用途。这个具体实施也可以用在点对点的在线销售中,在这种销售中,可以在知道卖方与用户具有相似的体型和尺寸的情况下购买服装。



技术实现要素:

根据本发明的第一方面,提供了一种生成用户的个性化3d头部模型的图像文件的方法,该方法包括以下步骤:

(i)获取用户的脸部的至少一个2d图像;

(ii)基于用户的脸部的至少一个2d图像执行自动化脸部2d特征点识别;

(iii)使用形状先验提供3d脸部几何重建;

(iv)提供关于3d脸部几何重建的纹理映射生成和插补以生成用户的个性化3d头部模型,以及

(v)生成用户的个性化3d头部模型的图像文件。

图像文件可以是众所周知的格式,例如jpeg、png、html或tiff。可以经由通信网络向用户传输图像文件。可以在诸如智能电话或平板电脑的移动装置的用户装置上或诸如膝上型电脑或台式电脑的另一装置上呈现图像文件。处理器可以被配置成执行该方法的步骤(i)至(v)或该方法的步骤(ii)至(v)。

一个优点是提供用户的高质量个性化3d头部模型。因此,可以在在线商务中诸如在线服装建模中使用用户的个性化3d头部模型,其可以为用户的3d身体模型的一部分。

该方法可以是其中经由网络通信获取用户的脸部的至少一个2d图像的一种方法。

该方法可以是其中从包含相机的智能手机经由网络通信获取用户的脸部的至少一个2d图像的一种方法。

该方法可以是其中用户的脸部的至少一个2d图像为用户的脸部的正面图像的一种方法。

该方法可以是其中用户的脸部的至少一个2d图像为用户的脸部的智能手机相机图像的一种方法。

该方法可以是其中自动化脸部2d特征点识别包括使用2d脸部特征点检测器的一种方法。

该方法可以是其中基于回归森林算法实现2d脸部特征点检测器的一种方法。

该方法可以是其中自动化脸部2d特征点识别包括使用基于3d约束局部模型(clm)的脸部特征点检测器的一种方法。

该方法可以是其中使用形状先验提供3d脸部几何重建包括使用3d头部形状先验生成近似3d脸部几何特征,接着基于所识别的2d脸部特征点的分布来细化3d脸部几何特征的一种方法。

该方法可以是其中使用3d头部形状先验生成近似3d脸部几何特征包括使用创成式形状先验找出近似头部几何特征作为初始化模型,该创成式形状先验使用降维方法来对低维子空间中的对象类别的形状变化建模的一种方法。

该方法可以是其中使用少量的参数(例如,3至10个参数)来根据这个低维形状先验重建用户的完整头部几何特征的一种方法。

该方法可以是其中使用主成分分析(pca)来捕获人类头部形状变化的主要模式的一种方法。

该方法可以是其中使用形状先验选择过程来使用选择标准诸如用户的种族、性别、年龄和其他属性从库中找出最合适的形状先验的一种方法。

该方法可以是其中使用基于机器学习的属性分类器,其可由例如深度卷积神经网络(cnn)实现,来分析用户的脸部的至少一个2d图像,并且根据用户的脸部的至少一个2d图像中的外观信息(即,肤色、发色和发型等)来预测属性(例如,种族、性别和年龄)的一种方法。

该方法可以是其中基于用户的属性与针对每个形状先验所限定的属性的匹配来从库中选择适当的3d形状先验的一种方法。

该方法可以是其中通过在用户的脸部的至少一个2d图像的图像平面内在各方向上矫正3d模型的脸部特征点位置,使初始头部模型变形来改善头部几何特征以获得更好的真实感,使得3d脸部模型上的脸部特征点的投影是用户的脸部的至少一个2d图像中的对应的2d脸部特征点的相似变换的一种方法。

该方法可以是其中使用3d薄板样条(tps)形变模型来矫正回归头部模型的3d几何特征以实现更好的几何相似,以便从控制点对在整个头部网格中生成3d几何变形的平滑插补的一种方法。

该方法可以是其中图像文件为3d图像文件的一种方法。

该方法可以是其中图像文件为2d图像文件的一种方法。

该方法可以是其中图像文件为动画文件的一种方法。

该方法可以是其中图像文件为个性化贴纸组的一种方法。

该方法可以是其中针对用户的脸部的3d网格几何特征的每个网格三角形的纹理顶点确定uv纹理坐标的一种方法。

该方法可以是其中基于由2d脸部特征点检测器在用户的脸部的至少一个2d图像上所检测的对应的2d脸部特征点位置的结果来计算特征点顶点的uv坐标的一种方法。

该方法可以是其中为了使3d脸部/头部模型的纹理映射完整,使用2d薄板样条(tps)模型进行插补并将uv纹理坐标填充到其他网格顶点上的一种方法。

该方法可以是其中为了构建用于纹理坐标插补的tps模型,使用先前作为源-宿控制点对所分配的所有的脸部特征点及其纹理坐标的前视特征点投影的一种方法。

该方法可以是其中用户的脸部的至少一个2d图像至少包括用户的脸部的正面图像、左侧图像和右侧图像的一种方法。

该方法可以是其中在根据正视图像生成近似3d脸部模型并使用其作为初始化模型后,执行以下这一步骤的一种方法:执行迭代优化算法以校正初始3d脸部几何特征,这是为使得在全部脸部图像上获得的单独的2d脸部特征点检测结果的特征点重投影误差最小化而实现的。

该方法可以是包括以下这一步骤的一种方法::使用3d薄板样条模型来将3d脸部模型形变为具有新的一组特征点位置。

该方法可以是其中重复先前两个句子的步骤,直到实现3d脸部模型的收敛为止的一种方法。

该方法可以是其中通过在每个像素上添加色彩偏移来修复图像之间的色调差,并且其中使用拉普拉斯算子扩散将边界处的色彩偏移值传播到所有图像像素的一种方法。

该方法可以是其中通过以下步骤执行高光去除的一种方法:a)高光检测;以及b)恢复真实色彩。

该方法可以是其中为进行高光检测,创建基于所有输入图像上的对应小平面的色彩分布的高光概率图,然后使用这些输入图像中的一个的梯度恢复高亮区域的色彩的一种方法。

该方法可以是其中导出相机投影矩阵以在3d脸部模型和输入图像之间建立链接的一种方法。

该方法可以是其中在脸部图像的情况下,使用基于模型的特征检测器,即基于3d约束局部模型(clm)的脸部特征点检测器,并且使用关联的相机模型来导出相对相机位置的一种方法。

该方法可以是其中使用投影相机模型来考虑潜在的透视失真,并且因此使用束调整来细化来自clm跟踪器的初始相机参数的一种方法。

该方法可以是其中束调整使用投影相机模型来细化3d顶点和相机位姿的一种方法。

该方法可以是其中脸部面罩近似为两个面罩的总和,这两个面罩是来自clm跟踪器的2d脸部特征点的椭圆拟合和初始前顶点的投影的一种方法。

该方法可以是其中为了从细化处理接缝,更新正视图的色彩的一种方法。

该方法可以是其中执行局部高光检测和去除的一种方法。

该方法可以是其中为了进行高光检测和去除,从单个小平面的色彩差导出高光概率图,其中为了检索所述小平面的色彩,将小平面的顶点反投影到输入图像上并且导出视图之间的2d仿射变换的一种方法。

该方法可以是其中为了创建概率图,使用作为开关的逻辑函数,当平均强度的中值和平均强度的最大值之间的差大于从体型参数估计得出的某个阈值头部尺寸时,该逻辑函数给出高概率的一种方法。

该方法可以是其中执行高亮区域的色彩的恢复的一种方法。

该方法可以是其中支持用户的3d头部模型上的发型定制的一种方法。

该方法可以是其中从体型参数估计得出头部尺寸的一种方法。

该方法可以是其中执行自动图像分析以帮助用户快速获取高质量的输入数据,使得他们更有可能创建照片真实感的个性化形象的一种方法。

该方法可以是其中在开始视频或图像捕获之前,向用户呈现相机馈送的实时视图,并且反馈机制分析实时视图,并且如果需要的话,向用户提供关于如何改善条件以实现高质量的最终结果的建议的一种方法。

根据本发明的第二方面,提供了一种系统,该系统被配置成执行根据本发明的第一方面的任一方面的方法。

根据本发明的第三方面,提供了一种计算机程序产品,该计算机程序产品可在处理器上执行以生成用户的个性化3d头部模型的图像文件,该计算机程序产品可在处理器上执行以:

(i)接收用户的脸部的至少一个2d图像;

(ii)基于用户的脸部的至少一个2d图像来执行自动化脸部2d特征点识别;

(iii)使用形状先验提供3d脸部几何重建;

(iv)提供关于3d脸部几何重建的纹理映射生成和插补以生成用户的个性化3d头部模型,以及

(v)生成用户的个性化3d头部模型的图像文件。

计算机程序产品可在处理器上执行以执行根据本发明的第一方面的任一方面的方法。

根据本发明的第四方面,提供了一种生成用户的个性化3d头部模型的图像文件的方法,该方法包括以下步骤:

(i)获取用户的脸部的至少一个3d扫描;

(ii)使用模板网格拟合过程以拟合用户的脸部的至少一个3d扫描;

(iii)基于模板网格拟合过程来生成用户的个性化3d头部模型,以及

(iv)生成用户的个性化3d头部模型的图像文件。

该方法可以是其中用户的脸部的3d扫描来自以下各项的一种方法:(i)使用运动中恢复结构(sfm)或同步定位与映射(slam)的技术进行的基于图像的3d重建过程;(ii)由深度相机捕获的深度扫描;或(iii)使用3d扫描仪捕获的完整3d扫描。

该方法可以是其中模板网格拟合过程以第一阶段和第二阶段执行的一种方法,在第一阶段,引入3d可形变头部模型(3dmhm)作为形状先验,其中由可形变头部模型通过找出3dmhm的最优形状形变参数和3d头部位姿参数的束调整优化过程来拟合用户的3d扫描的几何特征,以及在第二阶段,使用第一阶段的结果作为起始点,应用非刚性迭代最近点(n-icp)算法,该算法使所得网格变形以实现与用户的脸部的至少一个3d扫描的更好的表面匹配。

该方法可以是其中图像文件为3d图像文件的一种方法。

该方法可以是其中图像文件为2d图像文件的一种方法。

该方法可以是其中图像文件为动画文件的一种方法。

该方法可以是其中图像文件为个性化贴纸组的一种方法。

该方法可以是其中从体型参数估计得出头部尺寸的一种方法。

该方法可以是其中对于配准的头部网格,生成纹理映射的一种方法。

根据本发明的第五方面,提供了一种系统,该系统被配置成执行根据本发明的第四方面的任一方面的方法。

根据本发明的第六方面,提供了一种计算机程序产品,该计算机程序产品可在处理器上执行以生成用户的个性化3d头部模型的图像文件,该计算机程序产品可在处理器上执行以:

(i)接收用户的脸部的至少一个3d扫描;

(ii)使用模板网格拟合过程以拟合用户的脸部的至少一个3d扫描;

(iii)基于模板网格拟合过程来生成用户的个性化3d头部模型,以及

(iv)生成用户的个性化3d头部模型的图像文件。

计算机程序产品可在处理器上执行以执行根据本发明的第四方面的任一方面的方法。

根据本发明的第七方面,提供了一种个性化体型建模的方法,该方法有助于用户进一步约束他们的体型,改善3d身体建模的精确性,并且个性化他们的身体形象,该方法包括以下步骤:

(i)从用户的全身扫描接收可用于配备和可视化的高分辨率3d身体轮廓;

(ii)应用模板网格拟合过程来系统化和归一化从用户的全身扫描中导出的网格拓扑和分辨率;

(iii)基于模板网格拟合过程生成用户的个性化3d身体模型;以及

(iv)生成用户的个性化3d身体模型的图像文件。

该方法可以是其中在步骤(ii)中,执行在3d人形先验的约束下的体型和位姿的粗拟合的一种方法。

该方法可以是其中在步骤(ii)中,优化被构想为类似于束调整的问题,其中pca形变参数和骨胳位姿上的拟合误差最小化的一种方法。

该方法可以是其中在步骤(ii)中,考虑粗拟合结果作为起始点,应用几何特征的细拟合以及利用icp算法对所述骨胳位姿的细化的一种方法。

该方法可以是其中使用不同相机视图的多个输入深度扫描用于网格拟合的一种方法。

该方法可以是包括以下这一步骤的一种方法:将根据本发明的第一方面的任一方面的用户的个性化3d头部模型附接到3d身体模型。

该方法可以是其中调整肤色以使3d头部模型的肤色与3d身体模型的肤色匹配的一种方法。

根据本发明的第八方面,提供了一种系统,该系统被配置成执行根据本发明的第七方面的任一方面的方法。

根据本发明的第九方面,提供了一种方法,该方法包括以下步骤:

(i)提供交互式ui,以帮助用户细化他们的3d身体形象并且容易地编辑他们自己的身体色调,其中基于降维算法(例如,pca)建立ui,该降维算法对体型回归量的3d建模误差的分布进行建模并允许用户有效地填写他们缺少的体型变化。

该方法可以是其中在第一阶段,用户可以通过回归从他们的身体测量值的输入生成初始3d身体形象的一种方法。

该方法可以是其中在第二阶段,然后向用户显示多个滑动块以供用户从在第一阶段生成的初始3d身体形象交互式地细化体型的一种方法。

该方法可以是其中使用残留模型的形状模式来定义细粒度的体型变化,其中每个滑动块对应于模型的特定主成分的一种方法。

根据本发明的第十方面,提供了一种用于虚拟配合的端到端方法或系统,该方法或系统将根据本发明的第一方面的任一方面的用户的个性化3d头部模型以及根据本发明的第七方面的任一方面用户的个性化3d身体模型相结合,其中用户的个性化3d身体模型可使用根据本发明的第九方面的任一方面的方法来修改。

根据本发明的第十一方面,提供了一种商用社交网站,该商用社交网站被配置成传输根据本发明的第一方面的任一方面的用户的个性化3d头部模型的图像文件。

根据本发明的第十二方面,提供了一种用于信使或社交网络应用程序的web应用程序、聊天机器人或其他形式的插件,被配置成传输根据本发明的第一方面的任一方面的用户的个性化3d头部模型的图像文件。

根据本发明的第十三方面,提供了一种用于处理包含多个人的多张脸部的照片以自动生成群体动画的方法,该方法包括以下步骤:

(i)从多张脸部的至少一个输入图像检测至少一个输入图像中的所有正面脸部以及每张脸部的相关的2d脸部特征点;

(ii)基于2d脸部特征点检测结果来在至少一个输入图像中为每个个体重建3d脸部,以及

(iii)使用针对每张脸部所定义的头部位姿参数的独特时间序列来渲染包含一些或全部所得3d脸部的动画。

根据本发明的第十四方面,提供了一种使用基于问题和调查的ui更准确地重建用户体型的方法,该方法包括以下步骤:

(i)识别与用户有关的现有的身体度量和测量值;

(ii)在用户界面中向用户提供关于他们的体型意识和生活方式的问题;

(iii)从用户界面接收关于用户的体型意识和生活方式的问题的答案;

(iv)将接收到的答案转换成一组数字或语义体型属性。

该方法可以是还包括以下步骤的一种方法:

(v)使用回归工具从该组的数值或语义体型属性以及与用户相关的现有的身体度量和测量值映射到体型变化的子空间,以及

(vi)更准确地重建用户的体型。

该方法可以是还包括以下步骤的一种方法:

(v)执行从身体测量值到可形变身体模型的参数的多个回归量/映射,其中每个回归量根据通过数值或语义体型属性来分组的数据进行训练;以及

(vi)更准确地重建用户的体型。

该方法可以是其中使用优化方法来找出在ui中要求的最好的一组问题的一种方法,这将产生最准确的体型,这是基于以下任一标准完成的:1)最小化问题的数量;或2)最小化体型的3d重建误差,或者3)1)和2)的组合。

根据本发明的第十五方面,提供了一种通过使用测量选择过程请求附加测量值来重建用户的体型的方法,该方法包括以下步骤:

(i)从用户接收身体尺寸的指示;

(ii)识别对应于所指示的身体尺寸的体型数据集;

(iii)基于在所识别的体型数据集上的不同组的测量输入来评估所有不同体型回归值的3d重建误差;

(iv)通过将每个相应的新测量值引入用于体型回归的现有的一组测量输入上作为额外测量值来评估3d重建误差的相应减小;

(v)识别给出最大误差减少的测量值;

(vi)请求用户输入给出最大误差减小的所识别的测量值;

(vii)接收给出最大误差减小的所识别的测量值的输入,以及

(viii)使用所输入的测量值重建用户的体型。

该方法可以是其中将ui与具有蓝牙数据传输机制的数字带/串/超声波测量装置的应用程序编程接口(api)集成在一起,使得用户可以容易地将测量数据传输到虚拟试衣间ui,同时进行他们的自我测量的一种方法。

附图说明

现在将参考附图通过举例的方式描述本发明的各方面,在附图中:

图1示出了涉及第1节中所描述的个性化3d形象虚拟试衣系统的示例抽象图解。

图2示出了如第2.1节中所描述的使用用户的单个脸部正面图像作为3d脸部重建的输入的个性化虚拟试衣系统的示例架构。

图3示出了如第2.2节中所描述的使用用户的三个脸部图像(正面、左侧、右侧)作为3d脸部重建的输入的个性化虚拟试衣系统的示例架构。

图4示出了如第2.3节中所描述的基于用于3d脸部获取的slam技术使用基于移动的3d脸部扫描模块的输入的个性化虚拟试衣系统的示例架构。

图5示出了如第2.1节中所描述的使用可形变头部模型作为形状先验以恢复用户的脸部的缺失深度信息的示例性的基于单视图的3d脸部识别模块的端到端图解。

图6示出了由第2.1.1节中所描述的脸部特征点检测器采用的特征点布局的例子。

图7示出了基于单视图的3d脸部模型重建模块的示例变型形式的端到端图解,其中使用机器学习属性分类器来分析用户的照片并根据图像预测他的/她的属性(例如,性格和性别),然后从库中选择适当的3d形状先验以更准确地恢复用户脸部的缺失深度信息,如第2.1.2节中所描述的。

图8示出了使用机器学习分类器来根据单个脸部正面图像预测用户属性(例如,年龄、头发色彩、皮肤色彩)的例子,如第2.1.2节中所描述的。在这个例子中,针对脸部属性预测的任务独立地测试两个不同的深度学习分类器alexnet[19]和vggnet[29]。

图9示出了重建具有不同形状先验的韩国用户的3d模型的例子,如第2.1.2节中所描述的。(a)和(c)是使用3d脸部的欧洲形状先验的结果,而(b)和(d)是使用亚洲形状先验的结果,它们给出了更具真实感的鼻子几何特征的剖面视图。

图10示出了使用第2.1节中所述的方法的根据单个脸部正面图像进行3d脸部重建的示例最终结果。

图11示出了根据多个图像进行3d脸部重建的例子(第2.2.1节)(a):要求用户在角落视图中拍摄两张额外的脸部图像,只需将头部稍微旋转一边即可;(b):单视图与三个视图的对比结果。可以注意到,与真实地面照片相比,剖面图中的鼻子几何特征在多视图重建结果中更准确。

图12示出了第2.2.2节中所提及的单次旋转输入图像的例子:a)正面图像;b)来自左右相机旋转的图像,其中使用黑色框架的图像来创建最终纹理映射,而使用其他输入图像来识别高光;c)简单的色彩平均会导致特别是在眼睛周围的重影效应,这可能会显著降低渲染质量。

图13示出了根据脸部特征点所估计的相机位姿的例子(参见第2.2.3节):(a)和(b):由clm跟踪器所检测的脸部特征;(c):使用束调整所细化的相机位置和3d特征点。将坐标系分别用圆圈和三角形标记,分别代表细化前后的相机位置和特征点。

图14示出了用于创建外观模型的初始顶点分类(参见第2.2.3节):(a):基于简单启发式方法获得的初始分类结果;(b):(a)的渲染结果;以及(c):其中在主要脸部特征点上无接缝的(a)的重新分类结果。

图15示出了第2.2.3节中所描述的色调平衡的例子:(a):使用第2.2.3节中所描述的方法获得的网格分类结果;(b):边界顶点到正面图像上的反投影;(c):在每个色彩通道上的边界点处的估计的色彩偏移;(d):(c)到所有像素的拉普拉斯扩散。

图16示出了第2.2.3节中所描述的在(a)色调平衡之前和(b)色调平衡之后的拉普拉斯扩散的例子。

图17示出了近距离脸部图像(参见第2.2.4节)上的高光的例子。单个三角形(a)到每个输入图像(b)上的反投影可以显示由于(c)中的光线方向的改变,色彩可以变化多少。所提供的方法基于强度分布来估计每个三角形脸部的高光的概率。

图18示出了所检测的基于第2.2.4节中的方法的高光的例子。(a):输入图像;(b):叠加在(a)上的高光映射,其中强调的像素表示成为高光像素的高概率;(c):来自(b)的高光面罩。

图19示出了使用在所提供的高光去除方法之前(a)和之后(b),使用第2.2.4节中所述的方法的高光去除的例子。

图20示出了如第2.3.2节中所述的使用形状先验的头部尺寸估计的例子说明。在这个例子中,为了对用户的头部的形状建模,使用根据不同的身体测量值所预测的身体模型的头部几何特征作为形状先验来根据扫描数据对用户的头部的形状建模。

图21示出了如第2.3.3节中所述的将纹理映射从原始扫描数据传送到配准的头部模型的过程的例子说明。

图22示出了第2.3.3节中所述的纹理采样问题的例子说明。考虑到分段的纹理映射,最初的纹理采样产生接缝伪影(中)。通过纹理增强(右)完成更好的纹理传递。

图23示出了用于配准的头部模型的无缝纹理图生成的增强纹理映射的例子。

图24示出了如第3.1节中所提及的具有不同光线问题和其他质量问题的输入脸部图像的例子。

图25示出了如第3.1节中所述的在移动装置上实现的客户端输入质量检测工具的示例用户界面。

图26示出了使用第2.1节中所述的方法的基于单视图的3d脸部模型创建移动应用程序的详细用户流的例子。在该用户流中,集成有第3节中所描述的输入质量分析模块。

图27示出了第4.1节中所提供的二阶段无标记身体网格拟合算法的示例流水线。

图28示出了如第4.1节中所述的使用三个kinect扫描(每120度)进行无标记身体网格拟合的例子。

图29示出了如第4.2.2节中所述的具有测量-回归接着是轮廓细化的二阶段身体模型创建过程的示例流水线。

图30示出了如第4.3节中所述的基于决策树的最丰富的测量选择过程的简化例子。

图31示出了如第4.4节中所述的具有测量-回归接着是快速身体意识调查的二阶段身体模型创建过程的示例流水线。

图32示出了个性化3d形象的服饰的端到端可视化的例子。个性化3d形象是使用第5节中所描述的方法生成的,这可以在几何特征和纹理中正确地合并用户的脸部模型和身体模型。它还包括发型的定制。

图33示出了如第5.1节中所述的将不同的头部模型附接到同一体型模型的说明例子。

图34示出了第5.2.1节中所描述的基于线性色彩变换的肤色匹配过程的说明例子。

图35示出了第5.2.2节中所述的从脸部区域到身体模型其余部分的更平滑的色彩过渡的α色彩混合过程的说明例子。

图36示出了如第5.2.3节中所述的基于球谐函数(sh)分析的去光线和光线重照的说明例子。

图37示出了如第5.3.1节中所述的用于对3d头发模型的变形进行建模的网格蒙皮与物理模拟之间的转换的说明例子。

图38示出了如第5.3.1节中所述的用于快速地渲染照片真实感的3d头发模型的聚合α修片方案的说明例子。

图39示出了如第5.3.2节中所述的用于2d发型建模的纹理关联方法的说明例子。

图40示出了如第6节中所述的用于根据用户照片自动生成3d脸部gif动画或个性化贴纸组的应用程序的示例系统图解。

图41示出了如第6节中所述的3d脸部gif生成器应用程序的示例简化用户流。

图42示出了如第6.1节中所述的基于3d脸部重建技术的个性化gif生成聊天机器人的示例用户流。

图43示出了图42中的个性化gif生成即时通应用程序的示例用户流,其进一步实现直接共享机制。在这个例子中,具体实施基于脸书即时通。

图44示出了图42中的个性化gif生成即时通应用的示例用户流,其进一步实现了外部共享。在这个例子中,具体实施基于脸书即时通。

图45示出了如第6.2节中所述的集成有语音识别模块的示例3d脸部gif动画应用程序的图解。

图46示出了使用第6.3节中所述的方法从群组照片中进行脸部轮盘渲染的例子。

具体实施方式

1.概述

用户测试表明,个性化是在电子商务技术中对在线身体建模的不断采用和习惯性使用的关键因素。

支持以高质量水平表示用户自己的脸部、体型的准确性和发型的定制是该技术的重要目标。

在本文中,提供了新的系统和相关的方法来为在线用户创建个性化3d形象,这可以用于配备可视化、试衣建议以及3d印刷。本文表明计算机视觉技术的使用将如何显著提高3d头部和身体模型的质量,以及创建它们的方便性,特别是允许用户将他们的脸部添加到虚拟形象。该技术的关键特征包括:

1.支持根据不同类型的输入(例如,使用来自手机的单个或多个自拍或使用深度扫描捕获)对个性化3d头部模型的自动和准确重建;

2.支持对用户的3d头部模型的发型定制;

3.根据不同的输入源重建用户的精确且个性化的3d体型模型;

4.创建用户的3d形象结合他们的个性化脸部模型的照片真实感可视化;

5.快速的客户端反馈机制,用于引导用户获取良好的输入数据,从而创建高质量的3d形象。

这些创新将使消费者在网上购物时有更好的体验和更大的信心,并且使用虚拟试衣间技术显著提高了网站购物者的比例。例如,如图1所示,为了创建个性化身体形象而提供的虚拟试衣系统可以包括以下主要组件:

1.输入质量控制模块:在客户端执行自动图像分析以帮助用户快速获取高质量的输入数据,使得他们更有可能创建照片真实感的个性化形象(例如,参见第3节);

2.个性化3d头部建模模块:用于根据各种输入源创建用户的个性化3d脸部和头部模型(例如,参见第2节);

3.个性化3d身体建模模块:用于根据各种输入源创建明显捕获用户3d体型的高质量3d模型(例如,参见第4节);

4.形象集成模块:它将3d头部模型、3d身体模型和定制发型模型的几何特征和外观合并成用户的单个统一3d形象(例如,参见第5节)。

5.可视化引擎:利用指定的服装组对用户的3d个性化形象进行试衣模拟、对穿配建模并且产生成衣虚拟形象的最终可视化。

6.数据库:存储用户信息(例如,身体测量值、照片、脸部图像、3d身体扫描等)、服装数据(包括图像数据和元数据)和发型数据(例如,照片图形发型的2d图像或3d数字发型模型)。

模块1-4是实现个性化的重要模块。可以根据图1中的示例设计推导出端到端虚拟试衣系统的几个变型形式。例如,为了解决用于创建用户的3d脸部模型的不同形式的输入,可以使用1)单视图图像输入(例如,见图2),2)多个2d输入图像的不同视图(例如,见图3),以及3)多个图像或视频序列(例如,见图4)作为输入。

在本文的其余部分,第2-5节将针对系统设计的不同变型形式实现四个个性化模块的具体实施细节和技术步骤。最后,在节6中,提出了根据第2-5节中所述的系统和方法推导出的几个另选的个性化应用程序。它们可以与商业社交网络网站、信使和其他移动应用程序集成,使得用户可以方便地创建、可视化并且分享他们的个性化3d模型。

2.个性化头部建模

允许用户以3d的形式对他们自己的脸部建模是个性化的关键特征。在本节中,描述了几种独特的自动方法和推导系统,它们允许用户根据不同的输入数据源创建3d脸部/头部模型:

*单个2d图像,例如,要求用户在手机上拍摄单张正面自拍照片或上传自己的照片(例如,参见第2.1节和图2)。

*多个2d图像,例如,要求用户在不同的相机视图中拍摄几张自拍(例如,参见第2.2节和图3)。

*3d扫描,可以使用深度相机、3d扫描或使用基于计算机视觉的3d重建方法从图像序列获取(例如,参见第2.3节和图4)。

以下小节将描述3d头部/脸部建模方法的每个分支的技术细节。

2.1根据单个2d脸部正面图像所进行的3d脸部重建

本小节描述了全自动流水线,允许用户仅根据一张正面脸部照片快速方便地创建自己的3d脸部或头部模型。例如,在图5中示出了基于单视图的3d脸部重建的典型的端到端过程。总之,它包括以下三个关键步骤:

*自动化脸部特征点检测(第2.1.1节);

*使用形状先验进行单视图3d脸部几何重建(第2.1.2节);

*纹理映射生成和插补(第2.1.3节);

细节描述如下。

2.1.12d脸部定位和自动特征点检测

为了重建用户的3d脸部,首先分析输入图像并提取用户的脸部的形状特征。为了实现这一点,通过集成2d脸部特征点检测器在流水线中自动地检测2d脸部特征点,在一个示例中,可以通过开源图像处理和计算机视觉库(例如,dlib或opencv)提供2d脸部特征点检测。在一个例子中,基于回归森林算法[18]实现所采用的检测器。能够从图像中检测nl=68个脸部特征点(例如,见图6),这些特征点表征眼睛、眉毛、鼻子、嘴巴、嘴唇、下巴线等的位置和轮廓。可以证明,该检测器对于具有不同的光线条件、头部位姿变化和面部表情的输入图像是非常具有鲁棒性的。然而,该模块可以更换为其他更复杂的2d或3d脸部特征点检测器或跟踪器,例如,基于3d约束局部模型(clm)的脸部特征点检测器[11]。

2.1.23d脸部几何重建

下一步是根据第2.1.1节中提取的脸部形状特征(即,2d脸部特征点)重建用户的3d脸部模型。几何重建过程涉及两个阶段。首先使用3d头部形状先验生成近似3d脸部几何特征,然后根据第2.1.1节中所检测的2d脸部特征点的分布细化3d几何特征。详情如下。

使用形状先验生成近似几何特征:在第一阶段,使用创成式形状先验找出近似头部几何特征作为初始化模型,该创成式形状先验使用降维方法来对低维子空间中的对象类别(即,脸部)的形状变化建模。使用少量的参数来根据这个低维形状先验重建用户的完整头部几何特征。用于头部建模的代表性方法是学习3d可形变头部模型(3dmhm)[8],其中使用主成分分析(pca)来捕获人类头部形状变化的主要模式。在3dmhm中,这些参数为pca权重每个主成分向量up表示头部/脸部形状变化的模式,如下所示:

在具体实施中,可以通过以下方案生成近似头部几何特征:

1.仅使用3dmhm的平均值x平均值作为形状先验,其对应于群体的平均头部形状;

2.使用形状先验选择过程来使用诸如用户的种族、性别、年龄和其他属性的选择标准在库中找出最合适的形状先验。在图7中示出这个解决方案的系统图解例子。在流水线中,引入了额外的基于机器学习的属性分类器,该属性分类器可以通过例如深度卷积神经网络(cnn)[19,21,29]来实现,以分析用户的照片,并根据图像中的外观信息(即,肤色、头色和发型等)预测属性(例如,种族、性别和年龄)。基于用户的属性与针对每个形状先验所限定的属性的匹配来从库中选择适当的3d形状先验。该方法可以更准确地恢复用户脸部的缺失深度信息。这对于建立跨不同种族地区作用的产品很有用。参见图8,获得由cnn分类器实现的基于图像的脸部属性分类的例子。

1.根据2d特征点位置预测3dmhm的pca权重。这通过训练回归量r来进行,该回归量给出了从m个归一化的2d特征点位置到3d可形变头部模型的基础模型参数的映射,其中每个2d特征点位置li=(li,x,li,y)首先通过尺寸hi,wi,然后通过脸部检测边界框的中心ci=(ci,x,ci,y)来归一化。

根据形变权重可以重建用户的完整3d头部几何特征x用户,如下所示。

2.通过基于2d脸部特征点(即,眼睛距离、眼睛到嘴巴的距离、鼻子的高度、鼻子的长度、下巴宽度等)定义直观脸部生物特征作为脸部回归的变型形式来根据脸部测量值预测完整3d头部模型。然后可以应用线性回归来将这些生物测量值映射到pca形变参数。

特征点驱动的几何细化:在第二阶段,通过使初始头部模型变形来改善头部几何特征以获得更好的真实感。在图像平面内在各方向上(即x方向和y方向)校正3d模型的脸部特征点位置,使得3d脸部模型上的脸部特征点的投影将是图像中的对应2d脸部特征点的相似变换。这个过程将使生成的3d头部模型看起来与输入照片中的用户的脸部更加相似,特别是在近侧正视图中。这个细化阶段不会改变头部或脸部模型的深度(即z方向)。

在该算法中,首先基于2d图像特征点到根据上述形状回归获得的3d头部模型x用户的对应3d特征点li=(li,x,li,y,li,z)的正面投影的布局找出相似变换t*(3×2矩阵)。这可以通过对(4)中的以下最小二乘问题求解来获得。

然后,使用3d薄板样条(tps)变形模型[9]来校正回归头部模型x用户的3d几何特征,以实现更好的几何相似。为了实现这一点,将3dtps模型的m个源和宿控制点对定义为:

si=li=(li,x,li,y,li,z),(5)

ti=(ji,x,ji,y,li,z)=([li,1]t,li,z),i=1,2,…,m(6)

其中ji=[li,1]t=(ji,x,ji,y)为3d脸部特征点的修改后的xy坐标。这个tps模型将生成从以上m个控制点在整个头部网格x用户上的3d几何变形的平滑插补。关于tps模型的详细构成,请参见第7节。

最后,通过使用[28]中所述的网格裁剪算法裁剪具有3d平面(由前额上的2个顶点和下巴上的1个顶点定义)的用户的头部模型的网格来生成用户的3d脸部模型。这将产生具有平滑边界的用户的脸部的3d网格。上面的3d脸部模型使用现成的网格固化算法进一步细化为水密3d脸部面罩网格。可以使用该结果用于个性化3d脸部面罩的3d印刷。

2.1.3外观模型创建

基于第2.1.2节中所述的技术,可以重建用户的脸部的3d网格几何特征x={v,t},其中v和t分别表示网格的顶点和三角形的集合。然后,需要生成3d模型的外观模型(即,纹理映射),使得可以通过确定每个网格三角形t∈t的纹理顶点的uv纹理坐标{(ut,1,vt,1),(ut,2,vt,2),(ut,3,vt,3)}来真实地呈现用户的3d脸部模型。

对于基于单视图的解决方案,这种纹理映射过程相对简单。首先,分配这些顶点的uv纹理坐标,这些顶点是脸部模板上预先确定为3d脸部特征点(具有顶点索引)的l个顶点。基于由2d脸部特征点检测器在输入图像i上所检测的对应2d脸部特征点位置fi=(fi,x,fi,y)的结果,计算特征点顶点的uv坐标(ui,vi)(见第2.1.1节),如以下等式所示。

其中wi和hi分别指输入图像的宽度和高度。

其次,为了使3d脸部/头部模型x的纹理映射完整,采用2d薄板样条(tps)模型[9]进行插补,并将uv纹理坐标填充到其他网格顶点上。对于每个顶点v∈v,首先基于完美的正面透视相机模型根据它的3d顶点位置p={px,py,pz}来估计它的正视投影如(8)示出的那样。

其中d相机是根据实验估计出的相机到用户的脸部的经验平均距离

这里设定d相机=40cm。

为了构建用于纹理坐标插补的tps模型,使用先前作为源-宿控制点对所分配的所有的脸部特征点及其纹理坐标的前视特征点投影这将最终给出从任何顶点v∈v的正视图2d投影到其纹理坐标t的全局映射。关于tps模型的一般构成见第7节。在具体实施中,忽略了一些脸部特征点,例如,指示嘴唇的内部剪影的那些特征点,以平衡控制点的密度,导致生成更平滑的纹理插补。

上面提供的纹理映射解决方案在一系列不同的面部表情和光线条件下是鲁棒的,如图10所示。

2.2根据多个图像所进行的3d脸部重建

当从近侧正视图呈现时,第2.1节中所述的基于单视图的方法能够生成就几何特征和外观真实感而言具有相当好的质量的3d脸部模型。然而,几何真实感在侧视图上降低,主要问题是鼻子形状不准确。这个伪影主要是由于单个正视图图像中显式深度信息的缺失造成的。

鉴于上述问题,还通过给予用户在不同的相机视图中上传他们自己的另外的脸部照片的选项来提供一种基于根据多个输入图像的3d重建的方法。额外的图像将给3d重建问题带来新的约束,从而提高侧视图和轮廓视图的几何精度。典型的设置是在不同的相机视图中使用用户的三张自拍照片作为输入:即中央正视图照片、左侧视图照片和右侧视图照片(参见图11(a))。在第2.2.1节中详细描述从多个图像进行几何校正的方法。

生成良好的外观模型(即,纹理映射)是另一个具有挑战性的任务。高质量的纹理映射在真实感渲染中起着重要的作用。例如,通过附加高质量的纹理映射,可以容易地改善不太准确的3d模型的感知到的渲染质量。类似地,即使底层几何特征足够好,纹理映射不足也会使结果显著恶化。

在基于多视图的系统中,良好的纹理映射通常从不同视角的多个图像中收集信息,以覆盖组合到与模型[33]的参数空间对应的单个图像图集中的3d模型的整个表面。因此,两个相邻纹理贴片之间的任何小的错位可能会产生明显的拼接接缝。此外,即使它们正确对齐,每个输入图像的不同光线条件也可能在边界处产生视觉伪影,例如,色调差。一个理想的解决方案是采取不包含任何镜面反射的反照率图像。然而,这对于使用移动装置的工作场景来说是不可行的。

由于最终目标是人非常熟悉的脸部模型的逼真渲染,因此非常需要完美的纹理映射。在用户界面中,允许用户从脸部周围的手持相机的单次旋转拍摄多个输入图像。这可以给出足够数量的图像来覆盖脸部模型的广泛查看范围(参见图12(a)和(b))。在这种情况下,为了产生合理的结果,发现应该解决以下三个问题:

*拼接接缝,来自每个图像的不同光线方向;

*重像效应,由小的面部移动产生(例如,眨眼);

*脸上的高光,这可以在渲染时给出错误的深度印象。

在第2.2.2节中给出了如何解决三个难题的详情。

2.2.1几何纠正

为了在多视图设置中重建更好的3d脸部模型,提供了一种二阶段几何校正算法。首先,使用第2.1节中所述的方法来根据单个正视图图像ic生成近似3d脸部模型f0并将其用作初始化模型。然后,实现了迭代优化算法来修改初始3d脸部几何特征f0。目标是利用以下过程将所有脸部图像上获得的单独的2d脸部特征点检测结果的特征点重投影误差最小化(例如,对于3视图,设定“中央”ic、“左侧”il和“右侧”ir)。

将以上图像集合表示为i={ic,il,ir}。首先,对于每个视图v∈i,基于当前脸部几何特征的对应的3d特征点位置li(i=1,2,…,nl)(近似的)和在视图v中所检测的它们的2d图像特征点位置li,v(i=1,2,…,nl)来估计近似非本征相机矩阵pv(3×4),如(9)示出的那样。

其中k0代表相机非本征矩阵,其在假设知道装置上的相机模型的情况下是已知的,并且代表将2d均匀坐标转换为常规2d坐标的操作。在具体实施例子中,使用opencv库的“pnpsolver”函数来解决以上优化问题。

其次,在每个视图v∈i中,通过(10)来估计特征点投影差异向量

然后使用所估计的非本征相机矩阵pv来将2d特征点投影差异向量δli,v(i=1,2,…,nl)反投影到3d空间,并且通过(11)来估计每个3d特征点li在图像平面的各方向上在脸部模型f上的3d偏差δli,v。

其中为将3d均匀坐标转换为常规3d坐标的操作。然后在所有视图中对3d偏差向量δli,v求平均以修改每个特征点的3d特征点位置li,如下所示:

第三,如第7节所述使用3d薄板样条模型来利用新的一组特征点位置使3d脸部模型f形变。源和宿控制点对为修改之前和之后的3d特征点位置:

重复上述三个步骤进行几次迭代,直到收敛为止。在算法1的概述中,多视图几何纠正算法的端到端过程总结如下。已发现,这种方法可以显著提高轮廓视图中脸部模型的几何精度(例如,参见图11)。

算法1:在不同的相机视图中,根据多个脸部图像所进行的脸部几何纠正算法的概述,如第2.2.1节中所述的那样。

输入:不同的视图中的脸部图像的集合:l。

输出:纠正后的3d脸部几何特征。

1.使用第2.1.2)节中所述的方法,从正视图图像(ic)执行单个视图重建以获得近似3d脸部几何特征f0。

2.在每个视图v∈l上,单独地执行第2.1.1节中所述的脸部特征点检测。这在每个视图v∈l中给出三组2d特征点

3.利用f0的初始化执行3d几何纠正f,然后重复执行以下步骤4-8:

4.对于每个视图v∈l,根据(9),基于f的对应3d特征点位置li和所检测的2d图像特征点位置li,v(i=1,2,…,nl)来估计近似本征相机矩阵pv。

5.对于每个视图v∈l,根据(10)和(11),通过将图像特征点位置li,v(i=1,2,…,nl)反投影来估计f的每个3d特征点li(i=1,2,…,nl)的3d偏差δli,v。

6.对于每个特征点li,根据(12),在所有视图i中对3d偏差向量δli,v求平均,并且更新3d特征点位置。

7.使用节a中的3dtps模型来使f形变以基于新的一组3d特征点位置来生成修改的3d脸部模型f*

8.重新分配f=f*

2.2.2多视图纹理合成和增强

本小节描述了在基于多视图的系统中在外观模型创建过程中克服上述挑战的算法技术(即纹理接缝、重影伪影、局部高光)。

取代所有输入图像的融合,而只使用三个图像来创建最终纹理映射,诸如最左侧、最右侧和正视图(例如,在图12中,黑色框架中的图像)。使用其他输入图像来识别这三幅图像上的高光。为了无缝地融合三个相机视图的图像,所提供的方法首先将3d脸部模型的每个小面分类为3个类(即,正面、左侧、右侧),并为每个类分配这三个图像中的一个。由于眼睛的纹理映射非常重要(参见图12(c)中标准图像拼接方法的不良结果例子),因此使用最先进的脸部特征点检测器[4]来检测正面图像上的主要脸部特征并使相应的网格具有相同的类id。这使穿过主要脸部特征点(即,眼睛、嘴巴等)的拼接接缝的情况的数量最小化。

通过在每个像素上添加色彩偏移来修复图像之间的色调差。由于知道拼接边界处偏好的色彩偏移,因此使用拉普拉斯扩散将边界处的偏移值传播到所有图像像素。由于大多数脸部区域通常是无纹理的(例如,脸颊),因此这种平滑传播足以修复肤色差。

然而,已发现,高光去除的问题更具挑战性。尽管已经在计算摄影界对高光检测进行了长时间的研究,但仍然是一个难题,因为成功的检测依赖于许多因素,例如,对象的形状、当时的光线条件和相机位置。

为了使问题更容易处理,将问题分解成两部分:a)高光检测;以及b)恢复真实色彩。对于高光检测,基于所有输入图像上的对应小平面的色彩分布来创建高光概率图。这可以迅速识别受影响的区域。然后使用其中一个输入图像的梯度来恢复高亮区域的色彩。

在第2.2.3节和第2.2.4节中分别给出了关于无缝拼接和高光去除的更多细节。

2.2.3无缝纹理拼接

相机位姿估计为了在3d脸部模型和输入图像之间建立链接,需要估计相机投影度量。实际上,这是相机跟踪问题,可以通过一系列计算机视觉技术例如稀疏束调整[22]或slam技术[12]来解决。然而,这些方法通常在图像之间具有分布均匀的点对应的情况下产生可靠的结果。不幸的是,不能期望从脸部图像获得这个结果。标准图像匹配算法由于缺少图案而无法检测脸颊周围的用于建立图像对应的图像特征。

在脸部图像的情况下,使用基于模型的特征检测器即基于3d约束局部模型(clm)的脸部特征点检测器[11]。基于clm的脸部特征点检测器使用预先训练的3d脸部特征点[32]来鲁棒地检测脸部特征点,并且基于相关的相机模型[4]来估计相对相机位置。

然而,许多clm跟踪器为了计算简单而采用正交投影模型。这种近似对于远程图像来说通常是足够的,但如果如同本实施方案的情况一样,对象接近相机,则应该使用投影相机模型来考虑潜在的透视失真。为了解决这个问题,使用束调整来优化来自clm跟踪器的初始相机参数。

图13(c)示出了来自束调整的细化相机位姿的一个例子。在这个例子中,clm跟踪器初始估计:i)相对相机位姿;ii)每个图像上的预定脸部特征点的2d位置;以及iii)对应于2d脸部特征点的3d顶点。束调整然后使用投影相机模型来细化3d顶点和相机位姿二者。由于2d下颌点的位置有时不准确(见图13(a)),因此通常在细化过程中不包括它们。然而,如果需要的话,还可以使用普通图像特征检测器(例如,sift或surf[27])来添加更多的脸部特征,因为更多的点对应通常有助于改善束调整的稳定性。

网格顶点分类估计的相机位姿也有助于对脸部模型分类。例如,可以基于顶点法线和相机查看方向之间的角度差或者到相机中心的顶点距离来确定顶点类。这个简单的分类是快速和可并行的,但它不知道脸部特征。为了解决这个问题,如果对正面图像的投影落入脸部面具,则所提供的方法将侧面顶点的初始类id更新到前面。脸部面罩近似为两个面罩的总和,即,来自clm跟踪器的2d脸部特征点的椭圆拟合和初始前顶点的投影。这种组合可以使所得面罩可靠地覆盖前额和下颌区域。

为了计算简单,还假设内部相机参数总是固定的,并且没有严重的径向失真。因此,输入图像的投影矩阵可以近似为三个参数的简单线性变换:内部相机矩阵k;旋转矩阵r;以及转换矢量

所提供的重新分类很简单,但需要知道投影前的顶点可见性。为了解决这个问题,假设脸部是凸面的,并且在鼻子上具有单一全局最大值,使得可以安全地认为脸部的左侧从前面始终可见,而左边的所有相机视图始终可见,例如,图12(b)的第一行。类似地,脸部的另一侧从前面始终可见,而右边的所有相机视图始终可见,例如,图12(b)的底行。使用这个近似顶点可见性阵列,可以避免通过检查深度缓冲区来进行额外的运行时遮挡计算。

图14(a)示出了初始分类的例子。如先前所提及的,这种初始分类通常会在脸部特征周围产生一些伪像(例如,参见图14(b))。然而,细化的分类有助于避免这种情况,因为主要脸部特征点的色彩是在同一图像中定义的(例如,参见图14(c))。

相邻视图之间的色彩平衡所提供的网格分类不会引入穿过主要脸部特征点(例如,眼睛)的任何拼接接缝。但这并不意味着没有接缝。实际上,这仅仅是为了在正视图上将接缝移到脸部面罩上。

为了从细化处理接缝,所提供的方法基本上更新正视图的色彩。例如,假设正面图像ic上的像素位置处的色彩值表示为处的新色彩将被定义为:

其中为像素上的三通道色彩偏移量,即,[rdgdbd]t。可以定义边界处的优选色彩偏移量,即,

其中为边界顶点vb=[xyz]t的投影,即,并且proj(.)为使用内部相机参数矩阵k以及相机位姿r和来将3d顶点投影到正面图像的函数。

可以通过检查其相邻顶点的类id容易地找到,例如,是至少其中一个邻居具有“左”类id时的左边界顶点,即并且其中n和cl表示与相邻的一组顶点分别具有左类idl。

假定偏移色彩是c2函数的离散逼近,则边界处的色彩偏移(例如,参见图15(c))被传播到所有图像像素。因此,可以基于拉普拉斯条件来估计未知的偏移值(例如,参见图15(d)),即

其中为像素的4个连接的邻居。可以在图15(d)和图16(b)中找到这个过程的处理结果的一些例子。

2.2.4局部高光检测和去除

高光检测图像上的高光是另一个重要的视觉线索,可以有助于更好地感知对象的形状。换句话说,如果仅仅将来自不一致光线条件的多个图像相结合,则所得到的纹理映射可能使渲染的真实感恶化。

高光通常是由强烈的镜面反射引起的。因此,需要知道下面的几何图形和光线模型来正确地恢复真实色彩。从图像估计这个信息是一个不适定向题,通常需要很长的处理时间。为了使问题更加可行,开发了一种不需要色彩反射模型的基于图像的算法。这是由许多最近的高光检测算法激发的,其可以仅仅基于色彩信息例如色彩色度[30]获得相当好的结果。

图17(最初的色彩)示出了高亮区域的色彩可以变化多少的例子。基于这一观察,提出了一种新的高光检测算法,该算法可以根据单个小平面的色差来估计高光概率图。为了检索小平面的色彩,将小平面的顶点投影到输入图像上,并估计视图之间的2d仿射变换。例如,假设fk是3d脸部模型的第k个小平面。由于使用三角形小平面,因此单个小平面的投影足以定义图像之间的单个2d仿射变换,即

其中表示可以将第i个图像上的像素映射到第j个图像上的像素的仿射变换,并且订阅k表示像素为3d顶点在fk上的投影。

然后,定义矩形区域,该矩形区域拟合正视图上的投影点,收集该区域的像素强度,并估计平均强度。假设第i个图像上的小平面fk的平均强度为由于有多个输入图像,因此可以估计所有的平均强度以及第k个小平面fk的平均强度的平均值如下所示:

其中n为输入图像的索引。

为了创建概率图,使用作为开关工作的逻辑函数,这在平均强度的平均值和平均强度的最大值之间的差大于某个阈值时给出高概率,即,

其中并且α为强度差的阈值。在这个具体实施中,α≈70。

还发现,一般在平均强度的中值较高时定义高亮区域,即,较亮的小平面比较暗的小平面更可能是高亮小平面。为了包含这个行为,定义了另一个逻辑函数pb(fk)如下:

其中在这个系统中,β≈0.25且γ≈160。小平面fk的最终概率函数仅仅通过两个概率的乘积来定义,即

p(fk)=pa(fk)pb(fk).(20)

使用上述方法在一些脸部图像上的高光检测结果,如图18所示。

恢复高光空闲色彩高亮区域的色彩恢复与第5节中所解释的色彩平衡问题稍有不同,即色彩偏移的平滑传播无法恢复清晰的脸部特征。为了解决这个问题,利用其中一个输入图像的梯度映射作为色彩扩散的指导。这与泊松图像拼接[25]相似。换句话说,所提供的方法使新的正面图像的梯度与中值图像的梯度之间的差最小化,因此,

使得(15)可以改写为:

为了估计(22)中的im,将所有小平面的中值色彩相结合。可以仅仅通过使用仿射变换将来自不同输入图像的色彩转换为前方图像并使用高斯滤波器对所得图像进行平滑来实现这一点。

例如,如图19所示,可以成功检测鼻子和额头上的高光,并用新值替换受影响的色彩值。关于所提供的方法的一件事情是,基于以下假设来估计新的色彩:其中一个输入图像的梯度足够接近反照率图像的梯度。因此,如果所有输入图像一直高亮,则不能正确地固定高光,例如,图19(b)的一些前额区域比预期的更亮。

同样的流水线可以应用于这两个侧面图像,但这个实验表明,修复正面图像的高光通常是足够的。

2.3原始3d脸部扫描

3d个性化脸部重建的第三种方法是通过他们的脸部的任意深度扫描或3d扫描来创建用户的3d头部模型。用户脸部的原始3d扫描可以从三个来源获得:

*源1:使用运动中恢复结构(sfm)[14]或同步定位与映射(slam)[12]的技术进行的基于图像的3d重建过程。

*源2:由商用深度相机捕获的深度扫描(例如,microsoftkinect,intelrealsensef200/r200);

*源3:使用3d扫描仪捕获的完整3d扫描,例如,arteceva.。

下面描述了根据脸部扫描输入创建3d几何特征和外观模型的详细过程。

2.3.1几何特征处理:拟合原始脸部扫描

尽管在输入扫描数据中捕获了用户脸部的3d几何特征,但通常仍然需要模板网格拟合过程,原因有三:

1.由于输入扫描通常只包含正面脸部几何特征(例如,对于源1和2的扫描数据),因此将必须使头部的几何特征完整;

2.需要对网格拓扑和分辨率进行归一化处理;

3.必须解决一些扫描数据的比例不确定性(例如,来自源1)。

在具体实施中,这可以使用二阶段网格拟合过程来完成,例如如图20所示。在第一阶段,即“粗拟合”阶段,引入3d可形变头部模型(3dmhm)作为形状先验(例如,参见等式(1))。用户的头部/脸部扫描y的几何特征可以由可形变头部模型x通过束调整优化过程进行拟合,该束调整优化过程找到3dmhm的最优形变参数w、3d头部位姿参数p以及当存在比例不确定性时全局比例s的估计。以下等式为每次迭代制定上述问题:

其中r3(p)表示由位姿参数p参数化的矩阵3×3,其对全局3d旋转进行建模;表示克罗内克积的算子,这产生在全部n个模板网格顶点上施加3d旋转r3(p)的3n×3n矩阵;yi为在迭代i时在输入扫描数据y上对应于可形变头部模型上的每个顶点的最近顶点的集合,并且这个对应关系在每次迭代中都会改变;p0为基于位姿估计的先验位姿;s0为尺寸先验,其为输入数据的平均头部比例;并且αh和βh为控制这些术语的权重的超参数。为了解决上面的优化问题,在以下两个步骤之间迭代:1)基于当前可形变模型找到最近的顶点yi;以及2)在每次迭代时使用levenberg-marquardt算法[13]来对最小化问题求解。在粗拟合阶段之后,可以通过以下公式来重建用户的配准的3d头部模型x*

x*=x平均值+w*u.(24)

在拟合过程的第二阶段,即,“细拟合”阶段,使用粗拟合x*的结果作为起始点,并且另外应用非刚性迭代最近点(n-icp)算法[3],该算法使所得网格变形以实现与输入脸部扫描数据y的更好的表面匹配x**,如图20所示。

2.3.2根据体型参数所进行的头部尺寸估计

第2.1.2节、第2.2.1节和第2.3.1节中所述的方法对用户的脸部几何特征建模,但它没有对输入图像中没有捕获到的头部其余部分的信息即头骨的形状、头部的体积等建模。为了填补关于头部尺寸的缺失信息,研究在caesar数据集[10]上训练的全身可形变模型的形状先验,其中可以根据一组身体测量值(例如,身高、体重、胸围、腰围和臀围)来估计3d体型。根据卷尺测量获得的回归身体模型的头部部分捕获头部尺寸相对于群体体型的相关性,并且提供用于估计用户的完整头部模型x的形状的良好的形状先验(称为x0)。

为了将形状先验结合在第2.1.2节、第2.2.1节和第2.3.1节中所述的形状预测器或配准过程中,需要重新形成形状回归和网格拟合的相关优化问题。对于具有目标函数ω和参数集p的每个原始优化问题,具有附加的头部尺寸形状先验二次约束的新优化问题的目标函数可以表示如下:

其中η为控制形状先验的影响力的超参数;m为在头部模板上每个顶点v上所定义的面罩加权函数,对于平稳过渡,该函数将脸部区域内部的网格顶点映射为0,脸部区域外部的网格顶点映射为1,并且与边界区域附近的网格顶点映射为0和1之间的值;表示每个顶点上的元素相乘。可以使用相同的优化方法例如icp[7]或levenberg-marquardt[13]算法来解决(25)中的修正后的问题。它也适用于第2.1.2节中的线性回归问题,其中修正的回归量成为岭回归量。图20给出了将头部形状先验结合在第2.3.1节中所述的网格拟合过程中以根据扫描数据对用户头部的形状进行建模的例子。

2.3.3用于配准的头部网格的纹理映射生成

还需要将纹理从原始脸部扫描转移到配准的头部模型,如图21所示。生成配准的头部网格的纹理映射的一个技术难题是,原始3d脸部扫描的原始纹理映射通常由几个不连续的纹理贴片组成(例如,参见图22(左))。在这种情况下,初始纹理采样方案,即根据原始网格的三角形中的以其中心点为中心的坐标对uv纹理的重新采样,以及原始纹理映射的重新使用,通常得到较差的结果。由于3d配准过程中网格拓扑结构发生了变化,因此,重采样网格三角形的三个顶点的uv纹理坐标可能属于原始纹理映射中的不同纹理贴片(之为“边界”三角形),因此它们在uv空间中是不相邻的。当使用基于插补机制的标准渲染引擎(例如,directx,opengl)渲染重新采样的网格时,这导致在那些边界三角形上形成严重的纹理接缝伪影。关于初始纹理采样之后的接缝伪像的例子参见图22。

考虑到这个问题,可以通过扩大输入脸部扫描的原始纹理图像来为配准的脸部/头部模型重新生成不同的纹理图像。除了原始纹理之外,首先将在表面法线方向上从相机视图获得的那些边界三角形作为附加的纹理贴片在扩大的纹理映射图像中重新渲染,然后相应地将三角形的uv纹理坐标重新分配给那些新的纹理贴片。这种方法将解决网格重新采样后的接缝伪影。关于例子请参见图23。

3.客户端输入图像质量控制

3.1问题描述

为了利用先前小节中所述的方法创建脸部模型,用户必须拍摄自拍(第2.1节)或他们的头部从一边转到另一边的短视频(第2.2节和第2.3节),通常使用移动装置的前置摄像头。然后将该图像或视频用作系统中后面模块的输入以重建或数字化3d脸部模型和相应的纹理映射。

输出3d脸部模型的精度取决于输入图像或视频的质量。该系统必须确保最终结果是逼真的和令人愉快的,否则存在用户放弃服务的风险。用户无需大量的反复试验就可以达到预期的效果也是很重要的,这又可能导致沮丧并最终导致糟糕的用户体验。

由于用户提供的输入脸部图像或视频大部分都是在不受控制的环境下进行拍摄,因此从用户测试来看,一些典型的摄影问题可以分为两类,包括:

*光线问题,即,光线不平衡或阴影;强热点高光(例如,在额头上或在脸部的一侧);强烈的背面光线(例如,后面有窗户);总体太亮或太暗;彩色光线;等等。

*情境问题:即,用户戴着眼镜,嘴巴大大张开,用户的头发覆盖关键特征点(例如,眼睛和眉毛)等等。

一些真实的例子见图24。这些不好的输入图像或视频通常会导致3d重建后头部/脸部模型和个性化形象的不良,从而损害用户对产品的满意度。

鉴于所述问题,在这个端到端系统中提供了新的模块作为产品特征;这个新的模块负责在3d脸部重建模块之前自动检测客户端的病理输入模式。ios上的示例ui请参见图25。这创建了实时反馈机制来帮助用户获得高质量的图像或视频。

在开始视频/图像捕获之前,向用户呈现相机馈送的实时视图。反馈机制分析实时视图,并在必要时为用户提供如何改善条件以获得高质量最终结果的建议。这种机制为用户提供了快速的反馈循环,以便在3d脸部/身体重建开始之前自己快速纠正摄影问题,并生成良好的输入。通过大大增加用户成功创建好看的头部/脸部模型的机会,有助于提高产品的满意度和参与度。在第3.2节中给出了更多的具体实施细节。

3.2具体实施

在分析了模型提取算法的敏感性之后,可以识别两大组输入质量问题:光线相关问题;以及上下文问题,如第3.1节所提及的。

不正确的光线会导致结构和纹理提取问题。例如,脸上强烈高光的位置取决于入射光线的方向,并且当用户在视频中旋转头部时,倾向于不与脸部其余部分一起移动。这种效果对于结构提取算法是有问题的,因为高光可能被误解为静态特征点或妨碍真实的脸部特征。类似地,强烈的定向光线或具有高色彩含量的光源在纹理提取之后可能导致不均匀和不自然的肤色。

背景问题主要是在结构提取过程中引起困难,并且由于所采用的算法的假设和限制而出现。例如,如果用户的边缘覆盖额头的一部分,或者如果用户戴着眼镜,则这些结构结合到所提取的3d网格中,其结果与脸部的形状几乎没有相似之处。

那么输入图像的质量分析是图像分类问题。必须决定输入图像中是否存在任何有问题的情况。在参考数据足够的情况下,训练机器学习分类器例如深度卷积神经网络[21,19,29],以识别这些质量问题。已经用其他方式(通常由人类)分类的参考图像的可用性是应用机器学习的关键必要性。虽然判断某人是否戴眼镜对于人来说是微不足道的,但在手动分类参考输入时客观评估光线问题则更加困难。而且,质量分析必须在移动装置上足够快地运行,以在实时视频预览期间提供实时反馈。这个性能要求限制了对一些计算昂贵的的机器学习技术的使用。

做出的权衡是使用机器学习技术来识别背景问题,并使用基于启发式的统计图像特征来解决与光线相关的问题。背景问题往往变化相对较慢(例如,用户不太可能继续以高频率开关眼镜),因此可以在交替帧中对其进行分析。观察到的光线可以变化得更快,例如当用户在房间中移动时,或者相机的自动曝光和白平衡控制适应光线条件。这就需要以更高的速度分析光线,以保持系统的响应。可以在知道输入图像包含正面的情况下利用大量的先验信息。我可以使用例如平均脸部比例和形状、肤色的平均色度和特定区域中的典型皮肤纹理,作为光线条件的指标。

总之,已经将质量分析作为多级算法来实现,该多级算法一次一帧地分析实时视频预览,同时利用帧间相关性来提高效率。输出是指示存在质量问题的预定范围内的一组分数。在算法2中给出该算法的总结。而且,图26给出了具有集成的输入质量分析模块的用于基于单视图的3d脸部模型创建的移动应用程序的详细示例用户流(第2.1节)。

算法2——输入图像质量分析模块的算法概述。

1.使用viola-jones脸部检测[31]来找到框架中脸部的粗略位置。搜索被限制在前一帧中的脸部位置周围的区域。

2.使用基于快速机器学习的算法来精确定位一些重要的脸部特征点。使用脸部特征点之间的已知的典型空间关系,计算关于框架内的脸部的位置和取向的更精确的估计。

3.基于脸部特征点和精确位置估计,可以从框架中提取归一化子区域。

4.使用针对特定条件设计的启发法来针对光线问题对归一化子区域进行评分,因为它们将在归一化图像中显现。

5.使用卷积神经网络对交替帧进行单独的情境问题评分

6.向建议逻辑呈现一组标准化质量分数。计算改进建议的问题可以被认为是另一个分类问题。这种情况下的输入是从图像质量分析算法获得的分数,并且可能的输出类表示图像中最紧迫的问题。然后可以使用这个最终分类向用户提供关于如何改变输入以获得良好结果的反馈。

4个性化体型建模

在本节中,描述了关于体型建模的几种独特的方法和用户界面(ui)设计,这些方法可以用于帮助用户创建个性化3d身体形象,这些个性化3d身体形象可以精确地捕获他们自己的身体形态特征。

用于在线虚拟试衣的典型统计体型建模机制基于回归的方法[10]。在该算法中,从一组成对训练数据中教导回归量(包括但不限于线性回归量、高斯过程回归量[10]或神经网络[21]),以提供从用户常用的身体度量(包括但不限于身高、体重和罩杯尺寸)和最知名的尺量法(包括但不限于胸围、体重和臀围)到低维统计可形变身体模型的参数的映射,这可以用来重建完整的3d体型。例如,如果实现了基于pca的可形变身体模型[2],那么参数将是主成分的权重。当提供了6个输入测量值(即身高、体重、罩杯尺寸、下胸围、腰围和臀围)时,目前的基于回归的方法在主要身体测量值上提供了平均2-3厘米的建模误差[10]。由于基于回归的方法使用少量的测量值作为输入,并且由于信息缺失和形状重建过程中缺少约束而没有完全捕获用户的完整体型细节。因此,基于用户测试的反馈,注意到现有体型的两个主要病理问题:

*身体形象在没有定义测量值的身体区域上的准确性较差。例如,对于六个测量身体回归量(身高、体重、罩杯尺寸、下胸围、腰围和臀围),许多用户发现其形象的腿长、大腿宽度或臂长出现错误。

*用户还发现,在形象中并未捕获他们的体型的细微体型变化(例如,胃部周围的肿块和凸起、肌肉色调)。这是由于由回归量生成的所得身体形象造成所有具有指定输入测量值的体型的平滑统计平均值的事实造成的。

在以下小节中,描述了几种独特的方法和相关的用户界面(ui)设计,这可以帮助用户进一步限制他们的体型、提高3d身体建模的准确性并针对上述问题个性化他们的身体形象。这些方法也可以结合在一起以达到更好的身体建模精度。

4.1第三方全身扫描的使用

第一种方法是创建高清晰度的3d身体配置文件,如果用户能够访问激光扫描仪,则这些3d身体配置文件可以直接根据用户的全身扫描进行配备和可视化。

尽管全身扫描输入数据捕获用户的大部分3d几何特征,但扫描可能会出现空洞和异常值。因此,模板网格拟合过程对于网格拓扑和分辨率的规则化和归一化是必需的。

与caesar数据集[26]中的身体扫描数据不同,对于大多数第三方激光扫描数据,身体测量特征点(标记)均不可用。这对于实现基于迭代最近点(icp)[7]和衍生算法的良好形状配准提出了挑战。这是因为icp算法优化了每个顶点的变换参数,并且该算法很难在没有良好的初始化和对应关系指导的情况下收敛到全局最小值。标记(也称为特征点)可以对全局形状对应性进行约束,如果没有它们,icp算法很可能会收敛到局部最优。

为了解决上述问题,使用二阶段算法,其类似于2.3.1中所述的用于无标记身体网格拟合的算法,如图27中所示。为了替代由标记对应关系所提供的缺失的形状约束,使用在caesar数据集[10]上预先训练的可形变骨架体模型mb作为体型的形状先验来为优化问题提供附加的全局约束。

在网格拟合过程的第一阶段,先在3d体型的约束下进行体型和位姿的粗拟合。优化被表述为与束调整类似的问题,其中在每次迭代中使pca形变参数w和骨骼位姿p的拟合误差e最小化,如下面的等式(26)所示:

其中yi为在迭代i时与可形变身体模型上的顶点中的每一个相对应的输入扫描数据y上的最近顶点的集合,并且这个对应关系在每次迭代中都会发生变化;m为在模板模型的每个顶点上定义的二进制掩模,在感兴趣区域中为1,否则为0,用于在网格拟合过程中排除噪声(即,位置噪声的生产者)身体区域(例如,头部、手部和脚部);p0为基于输入激光扫描数据的粗略身体位姿估计的位姿先验;以及αb和βb为调整这些参数以避免不切实际的体型和位姿组合的超参数。为了解决上述优化问题,基于当前可形变模型迭代地找到最近的顶点集yi,并且使用levenberg-marquardt算法[13]以新的点对应关系来优化模型参数{w,p}。在具体实施中,优化了30个形变参数和18个联合参数。经过网格拟合阶段,可以获得网格拟合的结果,其与输入扫描数据具有约3mm的rms误差。

在第二阶段,以粗拟合结果为起始点,然后应用几何特征的细拟合,并利用icp算法[2]对骨骼位姿进行细化。假定粗拟合结果的几何特征通常非常接近输入扫描的几何结构并且由于它提供了良好的初始化,因此icp算法将有很好的机会收敛到所期望的全局最优。与输入扫描数据相比,这个最终拟合结果能够实现约0.5mm的rms误差。

上面的二阶段方法可以概括为考虑用于网格拟合的k个不同相机视图的多个输入深度扫描。例如,在针对每次迭代的k个不同视图中,(26)中的优化问题成为使pca形变参数w和位姿参数上的拟合误差最小化的一个问题,如下所示。

其中yk,i为第k视图(k=1,2,…,k)中的输入扫描数据yk上的与迭代i时可形变身体模型上的顶点中的每一个相对应的最近顶点的集合,并且这个对应关系在每次迭代中都会发生变化;pk,0为基于第k视图中的输入激光扫描数据的粗略身体位姿估计和相机的已知设置的位姿先验。使用microsoftkinect相机的k=3深度扫描来重建用户体型的示例,如图28所示。

4.2为进行体型细化而对交互式界面的使用

提供的第二种方法是使用交互式ui来帮助用户细化3d身体形象并轻松编辑自己的体态。ui是基于降维算法(例如,pca)构建的,该算法对体型回归量的3d建模误差的分布进行建模并且允许用户有效地填充其缺失的体型变化。

4.2.1体型残差的建模

假设训练数据集t,其中包含一些(比如说m个)3d体型实例{x1,x2,…,xm}(例如,以3d激光扫描的形式)并且在指定试衣点(例如,胸围、胸肌、腰围、臀围、大腿围)处搜定义的它们的相关测量值{m1,m2,…,mm}是可用的。这种数据集的一个例子为美国和欧洲民用表面身体测量资源项目(caesar)[26]。假设x为训练数据集t中的3d身体扫描的模板网格拟合结果的3d几何特征。在数学上,x是3n-d向量的形式,它连接了所有n个网格顶点{v1,v2,…,vn}的3d位置,如下所示:

x=[v1x,v1y,v1z,v2x,v2y,v2z,…,vnx,vny,vnz].(28)

假设m为在与体型相对应的拟合点处定义的身体测量值的向量。假设x′为根据使用回归量r的测量矢量m来重建的3d体形,该回归量在数据集t上或在另一个训练集t′上进行训练。

x′=r(m).(29)

假设x和x′之间存在顶点对应关系。通过以下公式来对体型实例的形状残差r建模

r=x-x′=x-r(m),(30)

这定义了回归体型和基本事实(即,原始身体扫描的模板网格拟合结果)之间的差。

通过使用(30),计算训练集t中所有体型实例{x1,x2,…,xm}上的所有形状残差{r1,r2,…,rm},其中使用身体回归量r根据数据集中给出的相应测量值{m1,m2,…,mm}来计算回归的体型{x′1,x′2,…,x′m}。然后,对上述形状残差应用种降维算法(包括但不限于主成分分析(pca))来学习低维子空间模型m,该模型跨数据集t的群体捕获形状残差{r1,r2,…,rm}上的身体回归量r的建模误差。在使用pca作为降维方法的情况下,形状模式将对应于第一k主成分(pc1,pc2,…,pck)。

4.2.2用于细化体型的ui设计

对于用户界面,采用如图29所示的二阶段过程。在第一阶段,如(28)所示,用户可以通过回归输入他们的身体测量值m来生成初始3d身体形象x′。在第二阶段(参见图29),然后向用户显示一些滑块(比如k个滑块),以供用户从第一阶段生成的初始3d本体形象x′交互地细化体型。每个滑块将控制体型变化的独特模式。使用第4.2.1)节中所定义的残差模型m的形状模式来定义细粒度的体型变化。第k滑块(k=1,2,…,k)对应于模型m的第k主成分。当体型残差的数据分布近似为多变量高斯分布时,可以使用pca模型来对残差建模。第k滑块的范围(k=1,2,…,k)通过以下公式来定义

其中λk是指对应于模型m的第k主成分pck(k=1,2,…,k)的本征值,并且它的平方根对应于在这个主成分方向上的数据分布的标准偏差;t以标准偏差为单位定义滑块的范围,并且在具体实施中,选择t=3。当使用pca模型来对残差建模时,通过以下公式生成细化的体型x″:

其中从用于细化体型变化的相应滑块的读数获得权重wk(k=1,2,…,k),并且pck(k=1,2,…,k)表示由每个主成分所定义的形变。更一般地,如果使用任意k参数子空间模型m来对残差建模,则通过以下公式生成细化的体型x″:

x″=x′+m(w)=x′+m(w1,w2,…,wk),(33)

其中再一次从用于细化体型变化的相应滑块的读数获得wk(k=1,2,…,k)。

在ui设计中,可以实施一些工具来帮助用户更准确地修改他们的身体模型,例如,用户的照片和所渲染的形象x″的并排显示或叠加显示,使得用户可以将身体形象的轮廓与他们的轮廓匹配。另外,可以通过优化过程自动初始化体型变化权重w=(w1,w2,…,wk)的向量(即,滑块的值),其中使用户体型的轮廓s用户(这是从用户的正视图照片提取并且通过身高标准化)和x″的正面投影的轮廓s(x″)(这通过身高标准化)之间的差最小化,如下所示:

其中d(·,·)是指将两个轮廓的差进行比较的距离度量,这包括但不限于倒角匹配[5]和豪斯道夫距离[17]。

4.2.3总结和可能的扩展

在残余形状空间中定义第4.2.2节中生成的细微体型变化模式。因此,它们与由输入测量值定义的回归量的形状空间正交。这意味着当用户通过ui对他们的体型进行调整时,这种改变对于通过输入定义的那些关键拟合点的测量值具有最小的影响。该属性将确保基于拟合点测量值(例如,胸围、腰围和臀围)的服装尺寸/合身建议不受所提供的体型编辑的影响。

降维和子空间方法具有能量压缩的特性。这意味着用户可能使用最小数量的滑块(即,子空间模型的参数)来对回归量输出中缺失的残余体型变化建模。

每个体型变化滑块的范围由用于训练统计模型的数据的分布来限定,例如,如果应用pca,则可以将每个主成分的范围定义为t=±3个标准偏差。因此,由ui生成的不同体型变化模式的组合将落入统计模型的建模范围内。这有助于防止用户通过ui生成不切实际的体型。

所提供的交互式方法也可以用于对新种族的体型变化建模,并且改善在现有数据集上训练的体型回归量的结果。当为了模型校准的目的而呈现额外的训练数据集(即,第4.2.1节所提及的t′)时,通过填充当前回归量和目标体型之间的形状变化来完成。

4.3使用测量选择过程对附加测量值的请求

体型个性化的第三种方法是用户将被指示递增地提供他们的身体测量值以进一步约束体型的ui。在ui中,用户将看到候选测量值的一小部分,称为最丰富的测量值。他们可以根据自己的知识或自我测量值选择提供该一个或多个所提供的测量值。

为了选择候选测量值,可以使用决策树(参见图30)来基于用户已提供的当前测量值集合来确定哪些是将提供对体型的最多约束的下一个或多个测量值。择附加测量值的过程是增量式的,并且基于在给定现有测量集合的情况下使信息最大化或使可能的残余体型变化最小化的标准。这可能是根据以下意义的:1)对于下一次测量,使(30)中的总体体型残差误差最小化;或2)使给定下一个测量的预计误差的减小最大化。

如图30所示,在用户提供了身高、体重和腰围的测量值的情况下,最有助于用户限制其体型的三个最丰富的测量值是:腿长、腿围和臂长。如果用户提供大腿围,接下来的三个丰富的测量值是腿长、肩宽和臂长。目的是让用户以最少量的测量值重建最准确的身体模型。具体实施的一个例子如下所示:

1.基于指定体型数据集上的不同的测量输入集,评估所有不同体型回归量的3d重建误差;

2.通过在现有的体型回归测量输入集上引入每个新的测量值作为额外的测量值来评估3d重建误差的减少;

3.选择可以减少最大误差的测量值。ui允许用户逐一提供最丰富的测量值,以逐渐细化体型。

ui可以与具有蓝牙数据传输机制的数字带/字符串/超声波测量装置的api集成。这将允许用户在进行自我测量时轻松将测量数据传输到虚拟试衣间ui。ui可以向用户提供体型的反馈,并询问他们认为哪个区域具有最大的误差,以便指导下一个测量选择过程。

4.4其他问题和调查的使用

体型个性化的第四种方法是使用基于问题和调查的ui。图31给出了基于二阶段调查的ui的简化示例流水线。除了标准的身体测量输入(例如,身高、体重、胸围、腰围、臀围、罩杯尺寸等)之外,这个ui还涉及为用户呈现简短的调查,询问用户关于他们的体型属性、形状意识和他们的生活方式的其他问题。这个简短的调查包括但不限于:

*“您是否将自己归类为体格健壮型?”

*“您每周运动多少小时?”

*“您如何分类您的体型?(沙漏型、柱型、梨型或苹果型)”,等等。

这些问题的答案以一组数字或语义身体属性标签的形式提供附加信息,以约束从用户获得的体型信息。可以学习:1)使用与第4.2.1节所述过程类似的回归工具(例如,线性回归)从一组数字身体定义标签或语义属性(编码为二进制或离散变量)结合其他数字身体测量值到体型变化的子空间(即,可形变模型的形变参数)的映射,或者2)利用在通过语义主体定义标签或属性来分组的数据上进行训练的每个回归量从身体测量值到可形变身体模型的参数的多个回归量/映射。然后,连同用户现有的身体度量和测量值,可以更准确地重建用户的体型。使用优化方法来找出在ui中要求的最佳身体属性问题集,以产生最准确的体型。这是基于使问题数量和体型3d重建误差两者最小化的标准来完成的。

4.5移动摄影或扫描的使用

第五种方法是使用移动摄影或扫描来捕获用户的局部形状变化。除了标准的身体测量输入之外,用户还将被指示使用移动装置(手机或平板电脑)上的相机来拍摄他们自己的全身或特定身体区域例如腰部区域的短视频序列或几张照片(在不同的相机视角中)。可以使用基于算法的图像特征检测(例如,使用sift[23]或harris角[15]检测器)和运动中恢复结构(sfm)[14]或同步定位与映射(slam)[12]来重建指定身体区域上的用户体型的3d表面。然后,可以使用这个重建的几何特征来

1.估计或细化指定身体部位的尺量值(如腰围);或从扫描中自动提取新的附加测量值。

2.定义并补充虚拟形象上指定区域的细节形状变化和/或身体色调。可以使用视觉边缘检测技术[15,24]加上加速度计数据来测量身体的水平范围。

4.6用户脸部形状和用户体型之间的相关性的利用

第六种方法是通过利用脸部几何特征和外观之间的相关性以及他们的体型来从他们的脸部图像输入中挖掘出关于用户的附加体型信息。

用户的脸部几何特征和外观通常提供他们体型的一些信息。例如,下巴、脸颊和颈部的形状是用户身体脂肪百分比的良好指标。可以使用回归工具(例如,线性回归)学习从用户的脸部几何特征和外观的特征(包括2d脸部特征点位置、脸部肤色等)到体型变化残差的子空间的映射。结合用户现有的身体度量和测量值,可以更准确地重建用户的3d体型。

5通过将头部模型、身体模型和发型模型集成而进行的统一身体建模

一旦分别经由第2节和第4节中所述的过程获得了用户的3d脸部/头部模型的各个组成部分以及他们的3d体型模型,则可以将这些元素组合在一起来创建用户的个性化3d形状的统一可视化。这要求克服以下挑战:

*头部几何附接:即,需要一种以自然方式合并身体模型和头部模型的3d几何特征的解决方法。详情请参见第5.1节。

*肤色匹配:即,需要在用户的脸部/头部模型和身体其他部位之间进行肤色匹配,以便为整个身体生成一致的外观模型。详情请参见第5.2节。

*发型建模。为了完成用户的体型的可视化,还需要包括发型模型。这涉及解决如何在用户的头部模型上渲染照片真实感的发型以及如何针对不同体型对发型建模的问题。详情请参见第5.3节。

第1节中所提及的形象集成模块结合了算法特征来解决上述三个挑战,并且设法实现了如图32所示的统一个性化3d形象。本节的其余部分将详细描述这些方法。

5.1头部附接和几何合并

假设h为通过第2节中的方法所创建的3d头部模型,并通过包含其全部n个顶点的3d位置的n×3矩阵建模。hb是指用户图形模型b的头部分(通过第4节中的方法创建)。在头部附接过程中,假设在h和hb之间给出了顶点对应关系。这可以通过在头部模板和身体模板之间共享相同的网格拓扑来实现,该网格拓扑是所有3d形状配准和回归过程中所使用的,如第2节和第4节分别所述的。

作为头部附接过程的第一步,需要估计线性变换t,该线性变换将重新定位和重新缩放头部模型h,使得变换的结果ht=th将与体型模型b的头部对准。从使用最小二乘直接线性变换(dlt)[16]来根据h和hb的所有相应顶点估计仿射变换t仿射开始,如下所示。

其中头部顶点位置矩阵h的均匀对应物(n×4矩阵)。

然后,为了保持变换后头部模型的刚性,进一步将qr因式分解应用于从dlt估计出的变换矩阵,

t仿射=qr,(36)

其中q为正交矩阵且r为上三角矩阵。然后通过将该变换的上三角矩阵r替换为对角矩阵λr=diag(sr,sr,sr,1)来去除t仿射的偏斜组分,其中比例因子最终变换t呈以下形式:

t=qλr.(37)

并且最终,变换后的头部模型ht可以计算为:

其中分别为ht和h的均匀对应物。

在上述头部几何对准过程之后,在头部模型h的一组边界顶点v边界周围应用加权几何混合,以便生成与颈部区域周围的体型模型的平滑合并。

其中加权因子wi=max(1,n/nr),如果顶点i为任一顶点v∈v边界的n-环邻居(n=0,1,2,…,nr)。在这个具体实施中,选择nr=3。也可基于与v边界的网格边缘距离或使用其他扩散模型来计算权重wi。

上面描述的方法允许将用户的3d头部模型附接和合并到第2节中的任意3d体型模型生成。在图33中给出例子。它也可以应用于涉及以下两项的应用程序,例如:1)交换是朋友的两个用户的头像;或者2)将用户的头部模型移植到名人的身体模型上,反之亦然,等等。

5.2自动肤色匹配和皮肤纹理混合

能够使虚拟形象的肤色与用户脸部的肤色相匹配是个性化虚拟形象的照片真实感的重要产品特征。为了生成个性化皮肤纹理,首先估计从身体肤色空间到头部肤色空间的全局色彩变换(请参见第5.2.1节)然后使用这种色彩变换来将脸部肤色传播到身体其余部分的纹理。为了在脸部和身体之间实现更好的色彩转换,在渲染个性化形象时应用α色彩混合(请参见第5.2.2节),并且还实现光线重照算法(请参见第5.2.3节)以改善输入脸部纹理的光线平衡。下面详细描述上面的每个特征。

5.2.1与线性色彩变换的估计的肤色匹配

考虑到用户头部模型h和目标身体模型头部hb之间的顶点对应关系,可以自然地获得h和hb之间的uv纹理坐标的对应关系。这允许将头部纹理映射并打开到体型hb的正则化反照率皮肤纹理映射上(如图34所示)。为了为用户生成个性化反照率肤色纹理映射,那么需要将用户的肤色从脸部区域传播到皮肤纹理映射上的其余身体部位。

首先,试图找出全局色彩变换tc,该全局色彩变换从原始模板身体模型的肤色空间映射到用户的脸部图像中的目标肤色空间。关于肤色匹配过程的例子请参见图34。

在头部模型和身体模型的皮肤纹理映射上定义感兴趣区域aroi,这指定了相应脸部区域。然后基于所有相应像素p∈aroi上的相应的rgb色彩样本ch,p和cb,p来通过最小二乘线性回归估计色彩变换tc(4×3矩阵),如以下等式所示:

其中为rgb色彩样本的均匀表示。

考虑到tc,然后可以变换身体模型的整个反照率皮肤纹理图像的色彩,该身体模型包含头部(包括头皮以及图像脸部纹理中未捕获的所有其他区域)、躯干部分和肢体。

5.2.2边界周围的α色彩混合

(40)中的tc给出了全局色彩变换的最小二乘估计,然而由于局部光线和色彩变化,不能保证沿着脸部边界具有色彩一致性(例如,参见图35)。

为了解决这个问题,使用软α混合来实现平滑的色彩过渡,在这个过程中,根据它到网格边界的距离来自动地为脸部模型f的每个顶点i分配α值αi,如下面的等式所示:

αi=255×n/k,(41)

如果顶点i为边界顶点v边界的n-环邻居(n=0,1,2,…,k)。在这个具体实施中,选择k=3。在一个例子中,标准渲染引擎(例如,directx或opengl)的像素着色器可以用于插补从受影响的网格三角形所投影的所有像素的α值。然后,利用刚刚描述的上述α修片方案来重新渲染原始脸部网格f。这通常会在个性化虚拟形象的最终可视化中给出更平滑的色彩过渡。

5.2.3光线校正和光线重照

虽然输入质量检测模块会拒绝大多数光线条件较差的输入图像,但实际上在相机视图中应用色彩混合时,可以观察到仍然存在一些小的光线不平衡问题。为了校正这种微小的光线不平衡,实现去光线和光线重照模块,以基于球谐函数(sh)分析[6]来纠正输入的脸部纹理图像。

已经表明,可以使用前九个球谐基础hi(n)(i=1,2,…,9)来对各种各样的光线条件精确地建模,这些基础是表面法线n方向[6]的函数。对于rgb输入图像,这需要估计9×3=27个球谐系数以捕获环境的光线分布。

通过本征分解,可以将在特定光线条件下拍摄的图像i分解为表征对象本征色彩的反照率分量i反照率和描述由外部光线环境引起的光线和反射率分布的阴影分量s。对于rgb图像,那么

其中(u,v)为图像像素坐标,n为表面法线,并且cch,i(i=1,2,…,9,ch∈{r,g,b})为每个色彩信号的球谐系数。

假设用户脸部的皮肤在反照率图像中具有统一的色彩,则可以通过最小二乘法估计脸部皮肤区域(例如,不包括眼睛、嘴巴、鼻孔等.)中的色彩样本的27个球谐(sh)系数cch,i。如果提供了根据完美光线条件的脸部图像估计出的新的一组球谐系数则这也允许在输入的脸部图像上执行光线重照。可以通过以下等式计算光线重照之后的图像ir:

图36给出了以上提及的去光线和光线重照过程的说明例子。

5.3定制发型建模

除了个性化脸部模型之外,还允许用户选择不同的头发模型来在个性化虚拟试衣系统中定制他们的3d形象上的发型。在该系统中,发型模型是离线创建的并存储在数据库中。然后用户可以从一系列可用的发型模型中进行选择,以便在运行时进行尝试。

为了对虚拟形象的发型建模,提供了适用于不同场景的两个独特解决方案:

*计算机生成的3d数字发型,其中邀请3d艺术家设计这些数字资源或使用可用于游戏的现成资源。作为优势,这个解决方案自然支持360度可视化、3d头部旋转和3d悬垂模拟。而且,设计师通常更容易通过在重新着色纹理映射的同时重新使用几何模型来创建不同发色的模型。详情请参见第5.3.1节。

*2d摄影发型:其中在几个指定的离散相机视图中将2d纹理映射到3d几何特征。然可用的观点有限,但这个2d解决方案的优势在于其可扩展性。虽这些2d发型模型的创建通常更容易且更便宜,同时实现了良好的照片真实感。此外,2d发型的建模通常更快,因为2d纹理变形的计算量比3d更低。详情请参见第5.3.2节。

5.3.13d数字发型模型的使用

3d数字发型广泛用于计算机游戏和其他应用程序。它们通常是由3d艺术家使用商业软件(例如,maya和3dsmax)手动创建的3d资源的形式。支持3d数字发型模型的两个挑战是:

1.如何对不同用户的头部和身体上的发型的变形建模,

2.如何正确渲染发型等半透明模型以提供良好的可视化。

下面描述了在这个系统中采用的解决这两个挑战的方法。

几何变形的建模:为了对发型在每个用户的头部和身体上如何变形建模,提供了网格蒙皮和物理模拟的混合方法。

为了提高计算效率,网格蒙皮方法适用于对头发网格顶点接近目标头部模型h的顶点的短发型的变形建模。对于每个发型模型s0,可以基于它们到模板头部模型h0上的附近j个头部网格顶点的距离来预先计算每个网格顶点si,0(i=1,2,…,ns)的皮肤权重

其中γ为正则化常数,通常设为1。在运行时,新的头部模型h上的每个头发顶点si,蒙皮(i=1,2,…,ns)的变形位置可以作为(45)中的线性加权平均值来快速计算。

对于在头部下方垂下的长发型,需要应用物理模拟来对头发模型与用户体型模型的更真实的悬垂和准确的碰撞点建模。执行3d头发模型的高度详细的物理模拟可能在计算上是昂贵的。为了对长发型模型在每个用户的头部和身体上如何变形建模,采用多分辨率模拟方法。

首先基于从原始发型模型s0简化的低分辨率网格几何特征创建发型的粗糙有限元模型。这可以使用网格简化算法(例如,二次抽取)来实现。使用商用物理模拟引擎(例如,nvidiaphysx库)。可以在相当短的时间内完成物理模拟然后,考虑到低分辨率头发模型的模拟结果sl,可以使用将低分辨率头发模型的每个顶点(i=1,2,…,nl)与高分辨率头发模型s0上的j个附近顶点(索引为)相关联的每个预先计算出的蒙皮权重来从sl恢复物理模拟之后的全分辨率的头发几何特征s,如以下等式所示:

在具体实施中,选择j=4。

最后通过加权平均机制引入网格蒙皮结果与物理模拟结果之间的线性混合,如(47)所示,

si=tisi,蒙皮+(1-ti)si,模拟,(47)

其中加权因子ti(i=1,2,…,ns)为第i头发网格顶点的高度yi的单调函数,如下所示:

其中加权阈值yth被设为身体模型的鼻高,并且过渡带宽σ被设为8cm。实际上,在头发的顶部应用网格蒙皮,并模拟长发的下半部分(关于说明例子请参见图37)。

建模半透明度为了获得更具照片真实感的发型可视化,需要在渲染时正确捕获头发的半透明效果。诸如发型模型的分片式半透明网格的渲染的挑战在于,α混合不是交换过程。可以将从任意n个叠加的半透明层可以观察到的色彩c建模为:

其中ci和αi(i=1,2,…,n)分别为层i的rgb色彩和半透明度。

为了在给定相机视点中获得正确的半透明度,必须对所有n个三角形预先排序,使得按正确的深度顺序完成α混合。这种排序过程在计算上很昂贵,但必须在渲染时执行,因为α混合的深度顺序将随像素位置和相机视图而改变。

为了解决这个问题,提供了基于近似α修片方案的三遍渲染解决方案,以避免以上提及的三角形排序过程。关于说明例子请参见图38。

在第一遍,使用“max”混合操作在所有关联的深度层(z缓冲区关闭)的α值上渲染整个网格上的聚合α映射。对于每个像素,通过以下公式计算总体透明度α

α=max(α1,α2,…,αn).(50)

由于“max”算子是可交换的,因此不需要排序。

在第二遍,渲染了其中z-缓冲区打开的聚合不透明发型纹理渲染,其中在一个例子中,使用标准图形引擎(例如,opengl或directx)来执行深度排序和遮挡计算以高效地渲染不透明纹理。

然后在最后一遍,利用在第一遍中获得的聚合α-映射对在第二遍中获得的聚合不透明纹理执行α修片。这将产生在边界上具有半透明度的发型纹理的最终渲染,如图38所示。

可以发现,这种解决方案适用于渲染接近均匀色彩的半透明模型诸如发型。

5.3.22d照片发型模型的使用

在第二种解决方案中,使用纹理关联方法来在n视图个离散相机视图中为2d摄影发型建模。考虑到特定的相机视点i(i=1,2,…,n视图),在给定视图中将2d头发纹理模型与下面的3d头部几何特征的投影相关联,然后在3d头部形状改变时基于所述关联使2d头发纹理变形。为了通过身体形象和衣服来对正确的构图顺序建模,通常将2d发型模型手动分割为多个层。然后,在每个视图i(i=1,2,…,n视图)中,将2d发型层与3d模板头部模型h0的2d投影hi,0相关联。关于示例过程的说明请参见图39。

值得一提的是,相关的头部模板网格h0的定义可以针对不同的头发层而不同。例如,对于对意在跟随头皮和肩膀的头发区域建模的那些层,分配相关的模板网格以包括头部、颈部基部和肩部的上部;而对于对长发悬垂的层,只将相关模板分配为头部部分。

为了生成全局纹理形变场,首先计算样本纹理位置的wg×hg矩形网格g上的蒙皮权重其中dg为uv纹理坐标中每个网格的步长。对于落入hi,0的轮廓内的任何纹理网格位置g=(u,v),它都映射到相应的网格三角形t。将g与三角形t的n=3个相应的顶点{v1,0,v2,0,v3,0}相关联。

然后基于三角形中的给定网格点g的重心坐标来计算蒙皮权重如下所示。

w3=1-w1-w2,(54)

其中nt是指三角形t的法线。

另一方面,对于落在hi,0的轮廓之外的任何纹理网格位置g,不能执行直接纹理映射。在这种情况下,采用基于纹理到网格蒙皮的外推法。2d纹理网格点g以加权平均方式属于投影的头部模板hi,0的np个最近顶点(在2d坐标中)。蒙皮权重与它们到各个顶点的距离成反比,如下所示。

其中γ为正则化常熟,通常设为1。在具体实施中,选择np=4。

当在用户的头部模型h上对头发纹理建模时,头发纹理将根据每个相机视图i中的投影的头部模型hi中的相关顶点的位移相应地变形。对于在采样网格g上定义的原始头发纹理图像上的每个纹理位置gx,y,可以如下面的等式所示计算其在纹理形变之后的新纹理位置

其中vj,0和vj分别为投影的模板头部模型hi和投影的用户头部模型hi上的关联顶点位置。然后,对于原始头发纹理图像上的任意纹理点p=(u,v),可以基于双线性插补从4个附近角落网格点的位移获得其新的纹理位置p*,如下所示:

p*=px,y+(1-bx)(1-by)δg1+bx(1-by)δg2

+(1-bx)byδg3+bxby)δg4,(57)

其中

并且|·|代表将实数向下舍入到其最接近整数的地板函数。

6基于3d脸部建模的个性化应用程序

在本节中,描述从第2节中所述的个性化3d脸部/头部重建技术推导出的个性化应用程序的其他例子。通过将它们与移动平台上的商用社交网站和/或消息通信应用程序相集成,可以允许用户方便地创建、可视化并共享其个性化3d模型。

作为一个关键特征,这些应用程序可以基于用户的3d脸部模型(例如,从左到右的旋转脸部的gif动画)自动创建图形表示,其中3d脸部模型是使用第2.1节中所述的单视图3d脸部重建方法而根据用户的自拍或离线单2d人像照片来自动重建。用户的3d脸部的表示可以是以下各项的动画gif:

*仅脸部形状,

*合并有完整头部和发型的脸部,

*全身模型,使用第5节中所述的方法创建,在指定的背景图像的顶部渲染。这些方法可以概括为考虑到不同的影响,包括但不限于:

*相机位置的变化,作为头部运动和移动的动画;

*脸部传输:即,将脸部外观从一个传输到另一个,或者通过例如求平均、混合和形变来将两个或更多个用户的脸部外观合并。

*表达修改,即逐渐改变用户的表达。

*皮肤外观修改和光线改变,即以虚拟晒黑和虚拟化妆应用程序的形式。

在图40中以例如图41所示简化图解和用户流程的形式示出所提供的示例提系统的流水线。该系统可能包含以下关键组件:

*3d脸部重建模块,使用第2.1节中所述的方法来根据单张2d正面自拍/上传的脸部照片重建用户的3d脸部模型。图5给出了模块流水线细节的一个例子。

*背景数据库,存储各种主题的静态或动态背景图像供用户选择作为其个性化动画的背景。

*头部位姿序列数据库,为用户存储不同头部位姿序列的预定义元数据以组成他们的个性化动画。

*对话逻辑管理模块,保持ui的状态并将用户的文本对话框和ui输入转换成逻辑指令。然后将从背景库中选择指定的背景图像,并选择头部位姿运动序列来渲染3d脸部模型。

*渲染和动画模块,考虑到指定背景图像和头部位姿序列,根据3d脸部模型渲染动画(例如,动画gif)。

作为具体实施的具体例子,该系统可以通过以下实现:1)使用亚马逊网络服务(aws)lambda函数进行图像上载和下载、3d脸部重建、对话逻辑管理、渲染和动画;以及2)使用amazons3存储桶来存储背景图像集的数据、预定义的头部位姿序列、用户上传的照片以及3d脸部模型的中间结果,如图40所示。

6.1聊天机器人和即时通插件

上述系统可以在pc上或在移动装置上与商业社交网络网站(例如,脸书)或者即时通(例如,脸书即时通、微信、kakao聊天、slack)集成。它可以是网络应用程序、聊天机器人或用于即时通或社交网络应用程序的其他形式的插件。作为示例,图42中示出了用于3d脸部重建的即时通聊天机器系统的示例用户流程。

上面提供的即时通应用程序系统可以扩展为进一步支持1)保存所得到的gif动画;2)在同一即时通信道中与朋友分享gif结果(例如,参见图43);或者3)将gif结果共享到外部网站或其他社交网络平台(例如,参见图44)。上述分享机制所包含的信息将涉及一种传播机制,该传播机制使流量重新进入信道,以实现病毒式传播。

6.2语音聊天系统

语音聊天支持功能可以通过在系统输入端上集成语音识别库(例如,cmusphinx[20])来在图45的系统上进一步实现,以将语音信号转换为文本对话框(参见图45以获得修改的系统图解)。考虑到语音识别模块的输出有时可能是错误的这一事实,字符串模式匹配方案,例如,可以使用基于最小编辑距离的语音识别模块来将语音识别模块的输出与对应于会话逻辑控制模块中的特定状态的预定义对话模式匹配以激活聊天机器人对话进程。

6.3多个3d脸部的动画

第2.1节中的系统和方法可以概括为处理包含多个人的集合(两个或多个)的照片,并自动生成群组动画。考虑到多个小平面的单个输入图像i,示例过程如下所示:

1.检测图像中的全部n个正面以及每个脸部fi(i=1,2,…,n脸部)的相关l个2d脸部特征点例如,这可以通过开源脸部检测器(例如,dlib[18])来自动实现。

2.使用第2.1节中所述的方法,基于2d脸部特征点检测结果来为照片i中的每个个体i(i=1,2,…,n脸部)重建3d脸部fi。

3.使用针对每个脸部fi(i=1,2,…,n脸部)所定义的头部位姿参数pi(t)的独特时间序列渲染包含部分或全部所得3d脸部的动画(例如,动画gif)。典型的一组位姿参数包括3d旋转ri(t)(3×3矩阵)、旋转质心ci(t)、3d平移向量ti(t)和全局比例因子si(t)。逐顶点变换的表述如下:

其中vi,j和是指分别在变换之前和之后的图像中的第i个3d脸部模型的第j个顶点。

作为示例效应,可以根据一组n脸部个脸部照片生成“脸部轮盘”,其中应用头部位姿参数pi(t)={ri(t),ci(t),ti(t),si(t)}来生成效果:

si(t)=1,(i=0,1,2,…,n脸部-1),(68)

其中样本超参数设置分别为d=30mm、w=180mm、d相机=400mm。图46示出了该效果的示例可视化。作为应用程序的例子,可以将上述系统集成到社交网络或即时通应用程序中,使得它允许为群聊中或同一信道中的所有成员自动生成旋转脸部轮盘动画。

6.4个性化贴纸组的创建

上面的脸部/头部动画生成系统可以进一步扩展以根据具有不同表情的用户的一个单一图像或多个正视图静态图像来为用户创建个性化贴纸组的集合(例如,参见图40)。

个性化贴纸组包含使用以下组合利用以上方法创建的几种gif动画:

*不同主题的背景图像,其可以为静态或动态背景(例如,动画gif),该静态或动态背景对例如表情、手势和卡通人物的动作表征;以及

*表示原始人物在背景中的头部运动,使得通过将用户的3d脸部模型渲染到背景图像上来将原始人物的头部替换为用户的脸部。

在图41中给出了一些例子。

a.基于薄板样条模型的光滑形状和纹理映射

使用薄板样条(tps)模型[9]来基于多个预先计算的成对控制点生成形状或纹理的光滑的全局变形场。考虑到任意的k维输入位置p(在这个应用程序中通常为k=2或3),映射后的k维输出位置q由下面的插补函数(69)获得:

其中通常将核函数选择为φ(r)=rlogr;b为(k+1)×k系数矩阵;ci(i=1,2,…,l)为1×k加权向量,其还满足以下条件:

基于在匹配阶段获得的所有l个控制点对来选择系数b和ci以使匹配误差以及弯曲能量最小化:

其中φ=[φ(ppi-pjp)]1≤i≤l,1≤j≤l为l×l核矩阵;为l×k加权矩阵;以及β为控制平滑度的正则化因子,在这个具体实施中通常设为1。(71)中的etps可以通过以下线性系统来在分析上最小化:

其中为l×(k+1)矩阵,为l×k矩阵,并且为l×l矩阵。

参考文献:

[1]t.adeyoola,n.brown,n.trott,e.herbert,d.robertson,j.downing,n.day,r.boland,t.boucher,j.townsend,e.clay,t.warren和a.unadkat,用于为服装试衣可视化生成虚拟身体模型的计算机实现的方法和系统(computerimplementedmethodsandsystemsforgeneratingvirtualbodymodelsforgarmentfitvisualisation),美国专利gb2488237,metaillimited,2012年8月。

[2]b.allen,b.curless和z.popovic,人体形状的空间:根据距离扫描的重建和参数化(thespaceofhumanbodyshapes:reconstructionandparametrizationfromrangescans),acm图形学汇刊,22(3):587–594,2003年。

[3]b.amberg,s.romdhani和t.vetter,用于表面配准的最佳步骤非刚性icp算法(optimalstepnonrigidicpalgorithmsforsurfaceregistration),ieee计算机视觉和模式识别会议,2007年。

[4]t.baltrusaitis,p.robinson和l.-p.morency,用于鲁棒性脸部特征点检测的约束局部神经场(constrainedlocalneuralfieldsforrobustfaciallandmarkdetectioninthewild),ieee计算机视觉研讨会国际会议论文集,354–361页,2013年。

[5]h.barrow,j.tenenbaum,r.bolles和h.wolf,参数化对应性和倒角匹配:两种新的图像匹配技术(parametriccorrespondenceandchamfermatching:twonewtechniquesforimagematching),第5届人工智能联合会议,659–663页,1977年。

[6]r.basri和d.jacob,朗伯反射和线性子空间(lambertianreflectanceandlinearsubspaces),ieee模式分析和机器智能汇刊(pami),2003年。

[7]p.besl和n.mckey,一种3-d形状配准的方法(amethodforregistrationof3-dshapes),ieee模式分析和机器智能汇刊(pami)),14(2):239–256,1992年。

[8]v.blanz和t.vetter,用于合成3d脸部的可形变模型(amorphablemodelforthesynthesisof3dfaces),siggraph论文集,187–194页,1999年

[9]f.bookstein,主要经纱:薄板样条和变形分解(principalwarps:thin-platesplinesandthedecompositionofdeformations),ieee模式分析和机器智能汇刊(pami),11(6):567–585,1989年。

[10]y.chen,d.robertson和r.cipolla,用于根据单视图测量值对体型建模的实用系统(apracticalsystemformodellingbodyshapesfromsingleviewmeasurements),英国机器视觉会议,2011年。

[11]d.cristinacce和t.cootes,使用约束局部模型进行的自动特征定位(automaticfeaturelocalisationwithconstrainedlocalmodels),模式识别,41(10):3054–3067,2008年。

[12]d.fidaleo和g.medioni,视频模型辅助的3d脸部重建(model-assisted3dfacereconstructionfromvideo),脸部和手势的分析和建模,124–138页,springer,2007年。

[13]p.gill,w.murray和m.wright,levenberg-marquardt方法,伦敦学术出版社,1981年。

[14]k.haming和g.peters,运动中恢复结构的重建流程——针对短图像序列的调查(thestructure-from-motionreconstructionpipeline¨casurveywithfocusonshortimagesequences),kybernetika,46(5):926–937,2010年。

[15]c.harris和m.stephen,组合式角落和边缘检测器(acombinedcornerandedgedetector),第四届alvey视觉会议论文集,147–151页,1988年。

[16]r.hartley和a.zisserman,计算机视觉中的多视图几何,剑桥大学出版社,剑桥大学,2003年,choixdedocumentsenappendice。

[17]d.huttenlocher,r.lilien和c.olson,使用对hausdorff度量的本征空间近似进行的基于视图的识别(view-basedrecognitionusinganeigenspaceapproximationtothehausdorffmeasure),ieee模式分析和机器智能汇刊(pami),21(9):951–955,1999年。

[18]e.kazemi和j.sullivan,与回归树的集合的一毫秒脸部对准(onemillisecondfacealignmentwithanensembleofregressiontrees),ieee计算机视觉和模式识别会议,2014年。

[19]a.krizhevsky,i.sutskever和g.e.hinton,深度卷积神经网络的图像分类(imagenetclassificationwithdeepconvolutionalneuralnetworks),神经信息处理系统的进展,2012页。

[20]p.lamere,p.kwok,w.walker,e.gouv¨oa,r.singh,b.raj和p.wolf,cmusphinx-4解码器的设计(designofthecmusphinx-4decoder),第八届欧洲语音通信技术会议(eurospeech,2003年。

[21]y.lecun,l.bottou,y.bengio和p.haffner,应用于文档识别的基于渐变的学习(gradient-basedlearningappliedtodocumentrecognition),ieee论文集,86(11):2278–2324,1998年11月。

[22]m.lourakis和a.argyros,基于levenberg-marquardt算法的通用稀疏束调整软件包的设计和具体实施(thedesignandimplementationofagenericsparsebundleadjustmentsoftwarepackagebasedonthelevenberg-marquardtalgorithm),2004年。

[23]d.lowe,来自尺度不变的关键点的独特图像特征(distinctiveimagefeaturesfromscale-invariantkeypoints),国际计算机视觉期刊,2(60):91–110,2004年。

[24]d.martin,c.fowlkes和j.malik,学习使用局部亮度、色彩和纹理提示来检测自然图像边界(learningtodetectnaturalimageboundariesusinglocalbrightness,color,andtexturecues),ieee模式分析和机器智能汇刊(pami),26(5):530–549,2004年。

[25]p.pérez,m.gangnet和a.blake,泊松图像编辑(poissonimageediting),acm图形学汇刊(tog),volume22,313–318页,acm,2003年。

[26]k.robinette,h.daanen和e.paquet,caesar项目:3-d表面人体测量学调查(thecaesarproject:a3-dsurfaceanthropometrysurvey),国际3d数字成像与建模会议,380–386页,1999年。

[27]c.schmid,r.mohr和c.bauckhage,兴趣点检测器的评估(evaluationofinterestpointdetectors),国际计算机视觉杂志,37(2):151–172,2000年。

[28]p.j.schneider和d.eberly,计算机图形学的几何工具,爱思唯尔科学公司,美国纽约,2002年。

[29]k.simonyan和a.zisserman,用于大规模图像识别的非常深的卷积网络(verydeepconvolutionalnetworksforlarge-scaleimagerecognition),corr,abs/1409.1556,2014年。

[30]r.t.tan和k.ikeuchi,使用单个图像对纹理化表面的反射分量的分离(separatingreflectioncomponentsoftexturedsurfacesusingasingleimage),ieee模式分析和机器智能汇刊,27(2):178–193,2005年。

[31]p.viola和m.jones,强大的实时对象检测(robustreal-timeobjectdetection),国际计算机视觉杂志,2001年。

[32]y.wang,s.lucey和j.f.cohn,增强凸度以改善与约束局部模型的对准(enforcingconvexityforimprovedalignmentwithconstrainedlocalmodels),2008年ieee国际计算机视觉与模式识别会议(cvpr2008.ieeeconference),1–8页,ieee,2008年。

[33]k.zhou,x.wang,y.tong,m.desbrun,b.guo和h.-y.shum,texturemontage,acmsiggraph2005年论文,siggraph’05,1148–1155年,美国纽约,2005年,acm。

注意

应理解,上面提到的布置仅仅说明了本发明原理的应用。在不背离本发明的精神和范围的情况下,可以设计多种修改和可替换方案。虽然本发明已经在附图中示出并在上文结合当前被认为是本发明的最实用和优选的实施例详细地进行了完整的描述,但对于本领域技术人员来说显而易见的是,可以进行各种修改而不背离本文阐述的本发明的原理和概念。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1