CN116091676B - 虚拟对象的面部渲染方法及点云特征提取模型的训练方法 - Google Patents

虚拟对象的面部渲染方法及点云特征提取模型的训练方法 Download PDF

Info

Publication number
CN116091676B
CN116091676B CN202310390200.1A CN202310390200A CN116091676B CN 116091676 B CN116091676 B CN 116091676B CN 202310390200 A CN202310390200 A CN 202310390200A CN 116091676 B CN116091676 B CN 116091676B
Authority
CN
China
Prior art keywords
point cloud
facial feature
point
facial
offset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310390200.1A
Other languages
English (en)
Other versions
CN116091676A (zh
Inventor
郑强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310390200.1A priority Critical patent/CN116091676B/zh
Publication of CN116091676A publication Critical patent/CN116091676A/zh
Application granted granted Critical
Publication of CN116091676B publication Critical patent/CN116091676B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2012Colour editing, changing, or manipulating; Use of colour codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Abstract

本申请公开了一种虚拟对象的面部渲染方法及点云特征提取模型的训练方法,属于计算机技术领域。本申请通过在虚拟对象的面部点云数据的基础上,依次将虚拟对象的面部特征点从点云空间投影到规范空间,得到规范点云特征,再将面部特征点从规范空间投影到偏移空间,得到偏移点云特征,再将面部特征点从偏移空间投影到形变空间,得到形变点云特征,这样利用形变点云特征能够预测出来面部特征点的深度值和颜色向量,进而对面部区域中的每个像素点进行着色,得到虚拟对象最终的面部区域,在着色阶段只需要很低的计算开销,从而能够降低渲染开销、提升渲染速度、避免动态表情卡顿,优化游戏性能。

Description

虚拟对象的面部渲染方法及点云特征提取模型的训练方法
技术领域
本申请涉及计算机技术领域,特别涉及一种虚拟对象的面部渲染方法及点云特征提取模型的训练方法。
背景技术
随着计算机技术的发展,用户在终端上能够随时打开游戏客户端进行游戏。在3D(3 Dimension,三维)游戏中,虚拟对象的面部表情在动态渲染过程中经常会出现卡顿,导致渲染失败。
这是由于在游戏中通常虚拟对象种类繁琐,且需要搭配头饰、面饰、特效等,变量因素较多,使得渲染阶段的计算量很高,即,虚拟对象的面部表情其渲染开销大、易卡顿,影响游戏性能。
发明内容
本申请实施例提供了一种虚拟对象的面部渲染方法及点云特征提取模型的训练方法,能够降低渲染开销、提升渲染速度、避免动态表情卡顿,优化游戏性能。
一方面,提供了一种虚拟对象的面部渲染方法,所述方法包括:
基于虚拟对象的面部点云数据,提取所述虚拟对象的面部特征点的规范点云特征,所述规范点云特征表征所述面部特征点与表情姿态无关的规范特征;
基于所述规范点云特征进行特征变换,得到所述面部特征点的偏移点云特征,所述偏移点云特征表征所述面部特征点在设定表情姿态下的偏移特征;
基于所述偏移点云特征进行加权变换,得到所述面部特征点的形变点云特征,所述形变点云特征表征所述面部特征点在所述设定表情姿态下与所述虚拟对象的面部外观资源进行适配的形变特征;
基于所述形变点云特征,对所述虚拟对象进行面部渲染,得到所述虚拟对象呈现所述设定表情姿态的面部区域。
一方面,提供了一种点云特征提取模型的训练方法,所述方法包括:
将样本对象的面部点云数据输入点云特征提取模型,得到所述样本对象的面部特征点的形变点云特征,所述形变点云特征表征所述面部特征点在设定表情姿态下与所述样本对象的面部外观资源进行适配的形变特征;
基于所述形变点云特征,对所述样本对象进行面部渲染,得到所述样本对象呈现所述设定表情姿态的预测面部图像;
基于所述预测面部图像和所述样本对象呈现设定表情姿态的参考面部图像,获取所述点云特征提取模型的训练损失值;
基于所述训练损失值,对所述点云特征提取模型进行训练。
一方面,提供了一种虚拟对象的面部渲染装置,所述装置包括:
特征提取模块,用于基于虚拟对象的面部点云数据,提取所述虚拟对象的面部特征点的规范点云特征,所述规范点云特征表征所述面部特征点与表情姿态无关的规范特征;
特征变换模块,用于基于所述规范点云特征进行特征变换,得到所述面部特征点的偏移点云特征,所述偏移点云特征表征所述面部特征点在设定表情姿态下的偏移特征;
加权变换模块,用于基于所述偏移点云特征进行加权变换,得到所述面部特征点的形变点云特征,所述形变点云特征表征所述面部特征点在所述设定表情姿态下与所述虚拟对象的面部外观资源进行适配的形变特征;
面部渲染模块,用于基于所述形变点云特征,对所述虚拟对象进行面部渲染,得到所述虚拟对象呈现所述设定表情姿态的面部区域。
在一些实施例中,所述规范点云特征包括所述虚拟对象的多个面部特征点在规范空间中的规范点云坐标;
所述特征提取模块用于:
对所述多个面部特征点中的任一面部特征点,基于所述面部点云数据,确定所述面部特征点的原始点云坐标;
将所述原始点云坐标输入规范特征提取模型,通过所述规范特征提取模型对所述原始点云坐标进行变换,得到所述面部特征点的规范点云坐标,所述规范特征提取模型用于将面部特征点从点云空间投影到所述规范空间。
在一些实施例中,所述偏移点云特征包括所述虚拟对象的多个面部特征点在偏移空间中的偏移点云坐标;
所述特征变换模块包括:
扭曲子模块,用于对所述多个面部特征点中的任一面部特征点,将所述面部特征点的规范点云坐标输入偏移特征提取模型,通过所述偏移特征提取模型对所述规范点云坐标按照所述设定表情姿态进行扭曲,得到所述面部特征点的偏移点云坐标,所述偏移特征提取模型用于将面部特征点从所述规范空间投影到所述偏移空间。
在一些实施例中,所述扭曲子模块用于:
基于所述设定表情姿态关联的面部偏移指示信息,确定所述面部特征点的面部偏移量,所述面部偏移指示信息表征所述虚拟对象在所述设定表情姿态下的面部偏移情况;
基于所述面部特征点的面部偏移量,对所述面部特征点的规范点云坐标施加偏移,得到所述面部特征点的偏移点云坐标。
在一些实施例中,所述形变点云特征包括所述虚拟对象的多个面部特征点在形变空间中的形变点云坐标;
所述加权变换模块包括:
提取子模块,用于基于所述虚拟对象的面部外观资源,提取所述面部外观资源的姿态指示信息,所述姿态指示信息指示按照所述面部外观资源对所述偏移点云特征的形变系数;
形变子模块,用于对所述多个面部特征点中的任一面部特征点,将所述面部特征点的偏移点云坐标输入形变特征提取模型,通过所述形变特征提取模型对所述偏移点云坐标按照所述姿态指示信息进行形变,得到所述面部特征点的形变点云坐标,所述形变特征提取模型用于将面部特征点从所述偏移空间投影到所述形变空间。
在一些实施例中,所述姿态指示信息包括所述面部外观资源的姿态修正向量和表情修正向量;
所述提取子模块用于:
基于所述面部外观资源的表情动画系数,确定所述面部外观资源的附加姿态信息、表情偏移信息、混合形状信息和转换混合形状信息;
基于所述附加姿态信息和所述混合形状信息,提取所述面部外观资源的姿态修正向量;
基于所述表情偏移信息和所述转换混合形状信息,提取所述面部外观资源的表情修正向量。
在一些实施例中,所述形变子模块用于:
基于所述姿态修正向量和所述表情修正向量,对所述偏移点云坐标进行修正,得到修正点云坐标;
将所述表情偏移信息输入所述形变特征提取模型中的第一线性回归器,得到表情回归信息,所述第一线性回归器用于对表情偏移信息进行线性回归;
将所述修正点云坐标、所述表情回归信息、所述附加姿态信息和蒙皮权重系数输入所述形变特征提取模型中的第二线性回归器,得到所述形变点云坐标,所述第二线性回归器用于对所述修正点云坐标按照蒙皮权重系数进行加权。
在一些实施例中,所述面部渲染模块包括:
确定子模块,用于对所述面部区域中的任一像素点,确定深度缓冲区中待绘制到所述像素点的多个按照深度值排序的面部特征点;
预测子模块,用于基于所述形变点云特征,预测每个所述面部特征点的颜色向量、透明度系数和透射率系数;
积分子模块,用于基于所述透明度系数和所述透射率系数,对所述多个按照深度值排序的面部特征点的颜色向量进行积分,得到所述像素点的像素值;
着色子模块,用于基于所述像素值对所述像素点进行颜色写入,以在所述面部区域中对所述像素点完成着色。
在一些实施例中,所述预测子模块包括:
获取单元,用于基于所述面部外观资源的反照率贴图,获取所述面部特征点的反照率向量;
阴影预测单元,用于基于所述面部特征点在所述形变点云特征中的形变点云坐标,预测所述面部特征点的阴影向量;
颜色预测单元,用于基于所述反照率向量和所述阴影向量,预测所述面部特征点的颜色向量。
在一些实施例中,所述阴影预测单元包括:
预测子单元,用于基于所述面部特征点在所述规范点云特征中的规范点云坐标和所述形变点云坐标,预测所述面部特征点的点法线向量;
变换子单元,用于将所述点法线向量输入阴影特征提取模型,通过所述阴影特征提取模型对所述点法线向量进行变换,得到所述面部特征点的阴影向量,所述阴影特征提取模型用于基于面部特征点的点法线向量预测阴影向量。
在一些实施例中,所述预测子单元用于:
将所述规范点云坐标和所述形变点云坐标输入视觉距离函数,通过所述视觉距离函数对所述规范点云坐标和所述形变点云坐标进行空间梯度运算,得到所述面部特征点的点法线向量,所述视觉距离函数用于获取所述面部特征点到网格曲面的最近距离。
在一些实施例中,所述预测子模块包括:
透明度确定单元,用于基于所述面部特征点的渲染半径和渲染偏移量,确定所述面部特征点的透明度系数,所述渲染偏移量表征所述面部特征点的渲染中心与所述像素点的像素中心之间的距离。
在一些实施例中,所述预测子模块包括:
特征点确定单元,用于对每个所述面部特征点,确定深度值排序位于所述面部特征点之前的至少一个前序特征点;
透射率预测单元,用于基于所述至少一个前序特征点的透明度系数,预测所述面部特征点的透射率系数。
在一些实施例中,所述积分子模块用于:
将每个面部特征点的所述颜色向量、所述透明度系数和所述透射率系数相乘,得到所述面部特征点的待积分颜色向量;
将所述多个按照深度值排序的面部特征点的待积分颜色向量进行积分,得到所述像素点的像素值。
一方面,提供了一种点云特征提取模型的训练装置,所述装置包括:
特征提取模块,用于将样本对象的面部点云数据输入点云特征提取模型,得到所述样本对象的面部特征点的形变点云特征,所述形变点云特征表征所述面部特征点在设定表情姿态下与所述样本对象的面部外观资源进行适配的形变特征;
面部渲染模块,用于基于所述形变点云特征,对所述样本对象进行面部渲染,得到所述样本对象呈现所述设定表情姿态的预测面部图像;
损失值获取模块,用于基于所述预测面部图像和所述样本对象呈现设定表情姿态的参考面部图像,获取所述点云特征提取模型的训练损失值;
模型训练模块,用于基于所述训练损失值,对所述点云特征提取模型进行训练。
在一些实施例中,所述点云特征提取模型包括:规范特征提取模型,偏移特征提取模型和形变特征提取模型;
所述特征提取模块用于:
将所述样本对象的任一面部特征点在所述面部点云数据中的原始点云坐标输入所述规范特征提取模型,得到所述面部特征点的规范点云坐标,所述规范特征提取模型用于将面部特征点从点云空间投影到规范空间;
将所述规范点云坐标输入所述偏移特征提取模型,得到所述面部特征点的偏移点云坐标,所述偏移特征提取模型用于将面部特征点从所述规范空间投影到偏移空间;
将所述偏移点云坐标输入所述形变特征提取模型,得到所述面部特征点的形变点云坐标,所述形变特征提取模型用于将面部特征点从所述偏移空间投影到形变空间;
将所述样本对象的多个面部特征点的形变点云坐标确定为所述形变点云特征。
在一些实施例中,所述训练损失值包括以下至少一项:图像颜色损失项,图像特征损失项,面部掩码损失项,形变姿态损失项;其中,所述图像颜色损失项表征所述预测面部图像和所述参考面部图像之间的像素颜色误差,所述图像特征损失项表征所述预测面部图像和所述参考面部图像之间的图像特征误差,所述面部掩码损失项表征所述预测面部图像和所述参考面部图像之间的面部掩码误差,所述形变姿态损失项表征所述形变特征提取模型拟合所述设定表情姿态的训练误差。
一方面,提供了一种电子设备,该电子设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的虚拟对象的面部渲染方法或点云特征提取模型的训练方法。
一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现如上述任一种可能实现方式的虚拟对象的面部渲染方法或点云特征提取模型的训练方法。
一方面,提供一种计算机程序产品,所述计算机程序产品包括一条或多条计算机程序,所述一条或多条计算机程序存储在计算机可读存储介质中。电子设备的一个或多个处理器能够从计算机可读存储介质中读取所述一条或多条计算机程序,所述一个或多个处理器执行所述一条或多条计算机程序,使得电子设备能够执行上述任一种可能实施方式的虚拟对象的面部渲染方法或点云特征提取模型的训练方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过在虚拟对象的面部点云数据的基础上,依次将虚拟对象的面部特征点从点云空间投影到规范空间,得到规范点云特征,再将面部特征点从规范空间投影到偏移空间,得到偏移点云特征,再将面部特征点从偏移空间投影到形变空间,得到形变点云特征,这样利用形变点云特征能够预测出来面部特征点的深度值和颜色向量,进而对面部区域中的每个像素点进行着色,得到虚拟对象最终的面部区域,这一面部区域不但呈现出来设定表情姿态,而且能够与虚拟对象自身的面部外观资源相适配,并且由于在点云基础上调整得到的形变点云特征,再预测出来的颜色向量具有可微的性质,因此在着色阶段只需要很低的计算开销,从而能够降低渲染开销、提升渲染速度、避免动态表情卡顿,优化游戏性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其他的附图。
图1是本申请实施例提供的一种虚拟对象的面部渲染方法的实施环境示意图;
图2是本申请实施例提供的一种虚拟对象的面部渲染方法的流程图;
图3是本申请实施例提供的另一种虚拟对象的面部渲染方法的流程图;
图4是本申请实施例提供的一种虚拟对象的面部渲染方法的原理图;
图5是本申请实施例提供的一种点云特征提取模型的训练方法的流程图;
图6是本申请实施例提供的一种虚拟对象的面部渲染方法的效果图;
图7是本申请实施例提供的一种虚拟对象的面部渲染装置的结构示意图;
图8是本申请实施例提供的一种点云特征提取模型的训练装置的结构示意图;
图9是本申请实施例提供的一种电子设备的结构示意图;
图10是本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个面部特征点是指两个或两个以上的面部特征点。
本申请中术语“包括A或B中至少一项”涉及如下几种情况:仅包括A,仅包括B,以及包括A和B两者。
本申请中涉及到的用户相关的信息(包括但不限于用户的设备信息、个人信息、行为信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,当以本申请实施例的方法运用到具体产品或技术中时,均为经过用户许可、同意、授权或者经过各方充分授权的,且相关信息、数据以及信号的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到虚拟对象的面部点云数据都是在充分授权的情况下获取的。
以下,对本申请涉及的术语进行解释说明。
虚拟场景:是游戏应用在终端上运行时显示(或提供)的虚拟环境。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。用户可以控制虚拟对象在该虚拟场景中进行移动。
虚拟对象:是指在虚拟场景中的可活动对象。该虚拟对象可以是用户通过游戏应用控制的玩家角色,也可以是设置在虚拟场景中能够进行互动的非玩家角色(Non-PlayerCharacter,NPC),还可以是不受用户控制的野怪或者陪玩机器人等。示意性地,该虚拟对象是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象,例如虚拟人物、虚拟动物、动漫人物等。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。可选地,当虚拟场景为三维虚拟场景时,可选地,虚拟对象可以是一个三维立体模型,该三维立体模型可以是基于三维人体骨骼技术构建的三维角色,同一个虚拟对象可以通过穿戴不同的皮肤来展示出不同的外在形象。在一些实施例中,虚拟对象也可以采用2.5维或2维模型来实现,本申请实施例对此不加以限定。
游戏引擎:指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
渲染引擎:在图像技术领域中,渲染引擎是指将针对虚拟对象建模完毕的三维模型渲染成一张二维图像,使得二维图像中仍然保持三维模型的立体效果。特别地,在游戏技术领域中,游戏所布置的虚拟场景本身以及虚拟场景中的所有虚拟对象,都是在将建模完毕的三维模型的模型数据导入到渲染引擎后,通过渲染引擎来驱动GPU中的渲染管线进行渲染,从而在终端的显示屏上对三维模型所指示的对象进行可视化呈现的。
图形处理器(Graphics Processing Unit,GPU):一种用于现代个人计算机,服务器,移动设备,游戏主机等专门用于图形图像处理的专用芯片。
图形API(Application Programming Interface,应用程序编程接口):CPU(Central Processing Unit,中央处理器)向GPU进行通信的过程会按照特定标准的图形API进行,主流的图形API有OpenGL、OpenGL ES、Direct X、Metal、Vulkan等,GPU厂商在生产GPU时会实现某些规范的接口,在进行图形开发时,按照接口所定义的方法来调用GPU即可。
绘制(Draw Call,DC)命令:在图形API中通常提供有可供CPU命令GPU进行渲染的操作的一类DC命令,例如,DirectX中的DrawIndexedPrimitive命令,OpenGL中的glDrawElement命令等均属于对应图形API中支持的DC命令。
渲染管线:在GPU中运行的图形渲染流程。在图像渲染过程中,通常会涉及到如下几种渲染管线:顶点着色器、光栅化器、像素着色器,通过在着色器中编写代码,能够控制GPU对渲染组件进行绘制渲染。
顶点着色器(Vertex Shader,VS):GPU渲染管线的一个必选环节,一种增加3D特效的影像处理单元,VS具有可程序化特性,允许开发人员利用新式指令来调整特效,每个顶点(Vertex)被数据结构定义,顶点的基本属性有x、y、z三个方向上的顶点坐标,除此以外,顶点属性还可能有颜色、最初的径路、材质、光线特征等。程序会根据代码将三维模型的每个顶点进行逐个顶点计算,并将结果输出到下一个阶段。
光栅化器:GPU渲染管线的一个不可编码环节,程序自动将顶点着色器或者几何着色器输出的结果装配成三角形,并按照配置光栅化成离散像素点,输出到像素着色器。
像素着色器(Pixel Shader,PS):也被实施为片元着色器(Fragment Shader,FS),GPU渲染管线的一个必选环节,当模型顶点变换完、光栅化之后,是需要填充颜色的,FS/PS填充算法是针对屏幕上的每个像素点的:程序会根据代码将光栅化后的像素点进行着色计算,通过测试之后输出到帧缓冲区,完成一次渲染管线流程。
帧缓冲区:是一个内存缓冲区,其中包含代表某一帧完整游戏画面中所有像素点的数据,在计算机系统中专门用来存放正在合成或显示的图像。换一种表述,帧缓冲区是一个部分随机存取存储器(Random-Access Memory,RAM)含有的一个位图,其驱动计算机的显示屏。现代显卡的内核中包含帧缓冲电路,该帧缓冲电路将内存中的位图转换为可以在显示屏上显示的画面信号。
z缓冲区(即深度缓冲区):在帧缓冲区中用于存储所有像素点的深度信息的内存被称为z缓冲区或者深度缓冲区。当渲染三维虚拟场景中的对象时,每一个所生成的像素点的深度(即z坐标)就保存在z缓冲区中,z缓冲区通常组织成一个保存每个屏幕像素点深度的x-y二维数组。在z缓冲区中需要对同一像素点上出现的多个对象的点进行深度排序,并由GPU按照z缓冲区中记录的深度排序来进行计算,达到较近的对象遮挡较远的对象的深度感知效果。
颜色缓冲区:在帧缓冲区中用于存储所有像素点的颜色信息的内存被称为颜色缓冲区。当渲染三维虚拟场景中的对象时,每一个通过深度测试的点会被光栅化器装配成离散像素点,每个离散像素点的颜色就保存在颜色缓冲区中,按照颜色模式的不同,像素点的颜色向量具有不同的格式。
游戏线程(GameThread):游戏应用运行中采用多线程技术时的线程之一,用于维护主要的游戏业务逻辑的线程,可用于实现虚拟物体、虚拟对象等的创建/销毁逻辑。
渲染线程(RenderThread):游戏应用运行中采用多线程技术时的线程之一,用于非硬件级别的渲染指令处理逻辑。
点云(Point Cloud):指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。根据不同的分类标准将点云划分为不同的类别,例如,按照点云的获取方式划分为密集点云和稀疏点云,又如,按照点云的时序类型划分为静态点云和动态点云。
点云数据(Point Cloud Data):点云中各个点具备的几何信息和属性信息共同组成点云数据。其中,几何信息也称为三维位置信息,点云中某个点的几何信息是指该点的空间坐标(x,y,z),包括该点在三维坐标系的各个坐标轴方向上的坐标值,例如,X轴方向上的坐标值x,Y轴方向上的坐标值y和Z轴方向上的坐标值z。点云中某个点的属性信息包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也称为反射率);通常,点云中的每个点具有相同数量的属性信息,例如,点云中的每个点都具有颜色信息和激光反射强度两种属性信息,又如,点云中的每个点都具有颜色信息、材质信息和激光反射强度信息三种属性信息。
网格(Mesh):计算机图形学中的基础单元称为Mesh,常见的Mesh是三角形面片网格。
反照率(即反照率贴图):渲染阶段中用于控制模型表面的基色的一张反照率贴图,也称为Albedo贴图。反照率贴图用于体现模型的纹理,颜色,反照率贴图本身是一张颜色与纹理的贴图。反照率贴图既有贴图属性,也有颜色属性。两个属性可以单独使用,也可以组合使用;当颜色属性为纯白色时,则不影响贴图的效果;当颜色属性为其他颜色时,则叠加贴图效果。
点法线(即点法线向量):对于一个三维空间的正则曲面R(u,v),点(u,v)处的切平面(Ru,Rv)的法向量即为曲面在点(u,v)的法向量。点云中的点是曲面的一个点采样,采样曲面的法向量就是点云中的点的法向量,称为这一点的点法线向量。在GPU渲染管线中,光照模型的渲染是需要指定法线向量的,无论是面法线还是点法线,不指定的话可能会造成不可预知的渲染效果。对于虚拟对象的面部渲染过程来说,每个面部特征点的点法线向量可用于光照渲染。
以下,对本申请实施例的技术构思进行说明。
随着游戏效果品质的提升,游戏中虚拟对象的面部表情的逼真渲染效果,能够让虚拟对象在动态过程中变得栩栩如生、逼真生动。因此,为了提升虚拟对象的渲染效果,存在对虚拟对象的面部表情进行渲染优化的需求。
在相关技术中,基于Mesh来建模表情,即学习虚拟对象在不同表情姿态下的面部Mesh数据,但这种基于Mesh的建模方式难以应用到游戏场景中,这是由于游戏中虚拟对象的表情可变特效较多,虚拟对象种类繁多,导致学习出来面部Mesh数据难以融入到虚拟场景中;并且,还需要针对特定纹理图片进行大量计算,易导致动态渲染中的卡顿,难以实现通用性;此外,基于Mesh的建模方式其学习阶段,针对现实生活的照片来建模面部姿态、光照、表情控制等模式,并不涉及到结合游戏中的面部特效,来实现夸张表情的快速生成和渲染。
有鉴于此,本申请实施例提出一种虚拟对象的面部渲染方法,能够针对3D游戏中的虚拟对象,学习到该虚拟对象的面部增强渲染的表示即形变点云特征,这种可变形的基于点云中的点的表示,能够使用点云来表示规范几何并学习动画的连续变形场,这种基于点云的建模方式在学习阶段可以学习到新颖的头像渲染表达,从而将训练结果迁移应用到游戏场景中虚拟对象的面部动画渲染表达。对于点云中的每个点,可以将该点的颜色向量分别成一个固有的反照率向量和一个与点法线相关的阴影向量,从而只需要通过预测点法线向量,进而预测阴影向量,即可预测点的颜色向量。这种方式弥合了基于Mesh的建模方式和直接提取面部的隐式表示之间的差距,能够将高质量的几何形状与拓扑灵活性、易于变形和渲染效果相结合,并且在动态渲染中计算消耗更小、渲染速度更快,能够适配到来自不同来源的3D模型,适配到不同的虚拟对象,甚至适配到不同的游戏中,具有很强的适配性、兼容性、通用性和可移植性。
具体来说,优化了一个定向点云来表示规范空间中虚拟对象面部(即主体)的几何形状,对于虚拟对象的2D面部模型,基于学习的连续变形场,通过学习的混合形状和蒙皮权重将规范点映射到形变空间,给定预训练3D面部模型的表情和姿态参数,这样能够将基于2D面部模型学习到的映射方式,通过学习的混合形状和蒙皮权重,将3D面部模型其面部特征点的规范点云坐标也同理映射到形变空间,进而来预测3D面部模型其每个面部特征点的颜色向量,从而进行虚拟对象的面部渲染。这样与传统基于Mesh的建模方式(通常不可微)相比,这种基于点云的建模方式,所提取到的形变点云特征可以使用标准的可微光栅化器进行有效渲染,并支持使用已建立的技术来进行面部表情的有效形变,能够应用到各类开放世界游戏的3D面部贴图资源优化过程中。
以下,对本申请实施例的系统架构进行说明。
图1是本申请实施例提供的一种虚拟对象的面部渲染方法的实施环境示意图。参见图1,在该实施环境中涉及终端101和服务器102,终端101和服务器102通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
终端101安装和运行有支持虚拟场景的游戏应用。可选地,该游戏应用包括:ARPG(Action Role-Playing Game,动作角色扮演游戏)、MMORPG(Massive Multiplayer OnlineRole-Playing Game,大型多人在线角色扮演游戏)、MOBA(Multiplayer Online BattleArena,多人在线战术竞技)游戏、MMOG(Massive Multiplayer Online Game,大型多人在线游戏)、射击类游戏、虚拟现实应用程序、三维地图程序、多人器械类生存游戏等。
在一些实施例中,终端101是用户所使用的电子设备,当用户在终端101上运行并登录游戏应用后,终端101加载并显示虚拟场景,并在虚拟场景中显示用户控制的虚拟对象,以及该虚拟对象视野范围内的其他虚拟对象(如其他用户控制的虚拟对象、NPC等)。
服务器102包括一台服务器、多台服务器、云计算平台或者虚拟化中心中的至少一种。服务器102用于为支持虚拟场景的游戏应用提供后台服务,服务器102能够提供游戏的基本玩法逻辑。可选地,服务器102承担主要游戏逻辑运算工作,终端101承担次要游戏逻辑运算工作;或者,服务器102承担次要游戏逻辑运算工作,终端101承担主要游戏逻辑运算工作;或者,服务器102和终端101之间采用分布式计算架构进行协同游戏逻辑运算。
可选地,服务器102是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个示例性场景中,服务器102中创建GameSvr进程来提供游戏的基本玩法逻辑。相应地,终端101运行游戏应用时则创建有游戏线程GameThread和渲染线程RenderThread,游戏线程GameThread用于维护主要的游戏业务逻辑,渲染线程RenderThread用于非硬件级别的渲染指令处理逻辑。
在任一帧游戏画面的渲染过程中,终端101侧的游戏线程GameThread将虚拟场景的场景资源提交到渲染线程RenderThread中,由渲染线程RenderThread对虚拟场景中的每个虚拟对象执行OC(Occlusion Cull,遮挡裁剪)检测,将通过OC检测的虚拟对象提交到RHI(Render Hardware Interface,渲染硬件接口)线程即RHIThread,由RHIThread驱动GPU上的渲染管线来对通过OC检测的虚拟对象进行渲染,得到当前帧的游戏画面。
本申请实施例提供的虚拟对象的面部渲染方法,适用于RHIThread对任一通过OC检测的虚拟对象的面部区域的渲染过程中,即,OC检测判断的是虚拟对象的可见性,对于每个可见的虚拟对象,在渲染该虚拟对象的面部区域时,都可以应用本申请实施例的方法,来保证虚拟对象具有灵动的面部表情和适配的五官姿态,体现出来面部动画细节,并巧妙融入到游戏提供的虚拟场景中,且能够适配到虚拟对象自身的面部外观资源(如面部特效、面饰、头饰、发型等),体现其面部区域的光照和高光、阴影细节表现,提升虚拟对象面部的逼真渲染效果,且具有较小的计算消耗和较高的渲染速度。
需要说明的是,终端101的设备类型包括:智能手机、平板电脑、智能音箱、智能手表、智能掌机、便携式游戏设备、车载终端、膝上型便携计算机和台式计算机中的至少一种,但并不局限于此。例如,终端101是智能手机,或者其他手持便携式游戏设备。以下实施例,以终端101包括智能手机来举例说明。
本领域技术人员能够知晓,上述终端的数量为更多或更少。比如上述终端仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。
以下,对本申请实施例的面部渲染基本流程进行介绍。
图2是本申请实施例提供的一种虚拟对象的面部渲染方法的流程图。参见图2,该实施例由电子设备执行,以电子设备为终端为例进行说明,该实施例包括以下步骤。
201、终端基于虚拟对象的面部点云数据,提取该虚拟对象的面部特征点的规范点云特征,该规范点云特征表征该面部特征点与表情姿态无关的规范特征。
在本申请实施例中,虚拟对象是指虚拟场景中任一包含面部区域的可活动对象,如包含面部区域的虚拟人物、虚拟动物、动漫人物等。虚拟对象可以是用户通过终端控制的虚拟对象,也可以是位于用户所挂载虚拟相机的视野范围(Field of View,FoV)的其他虚拟对象,其他虚拟对象可以是其他用户通过其他终端控制的虚拟对象,也可以是不受用户控制的NPC、野怪、陪玩机器人等。
对于第一人称的游戏来说,用户所挂载虚拟相机就绑定在用户控制的虚拟对象身上,此时用户通常无法看到自身控制的虚拟对象的全身,只能看到自身控制的虚拟对象的一部分,或者看不到自身控制的虚拟对象;对于第三人称的游戏来说,用户所挂载虚拟相机位于虚拟场景中,但并不会绑定在用户控制的虚拟对象身上,此时用户通常能够看到自身控制的虚拟对象的全身,并且能够在一定范围内调整自身的FoV,达到类似于“上帝视角”的观察效果。
在一些实施例中,用户在终端上启动并登录游戏应用,该游戏应用创建有游戏线程GameThread和渲染线程RenderThread。在登录游戏应用以后,可以加载并显示虚拟场景,在虚拟场景中显示用户控制的虚拟对象,以及位于用户所挂载虚拟相机的视野范围的其他虚拟对象。对于虚拟场景中所待渲染面部区域的任一虚拟对象,都可以执行本申请实施例的步骤201-204,来对该虚拟对象的面部区域进行渲染,达到高品质的面部渲染效果。需要说明的是,如果某一虚拟对象位于用户所挂载虚拟相机的视野范围内,但是这一虚拟对象的面部区域不可见(比如虚拟对象背对用户所挂载的虚拟相机),那么此时对该虚拟对象的面部区域不存在渲染需求,并不需要进行面部渲染优化。
由于游戏应用会实时渲染游戏画面流,以游戏画面流中任一帧游戏画面的渲染过程为例进行说明,游戏线程GameThread将虚拟场景的场景资源提交到渲染线程RenderThread中,由渲染线程RenderThread确定虚拟场景中位于当前相机FoV内的各个虚拟对象,再对位于FoV内的每个虚拟对象执行OC检测,将通过OC检测的虚拟对象提交到RHIThread,由RHIThread通过图形API中的绘制命令,驱动GPU上的渲染管线来对通过OC检测的虚拟对象进行渲染,得到当前帧的游戏画面。
在GPU渲染管线绘制任一通过OC检测的虚拟对象的面部区域时,在获取虚拟对象的面部点云数据之后,通过步骤201-203提取面部点云数据中每个面部特征点的形变点云特征,再根据形变点云特征可以预测出来虚拟对象在设定表情姿态情况下每个面部特征点的颜色向量。进而,清空帧缓冲区的颜色和深度,利用顶点着色器在z缓冲区中对每个面部特征点进行深度写入,再通过光栅化器来进行光栅化,再利用像素着色器在颜色缓冲区中对每个离散化后的像素点进行颜色写入,最终能够在终端显示屏中输出对面部区域的渲染结果。
在一些实施例中,在当前帧中对于虚拟场景中任一待渲染面部区域的虚拟对象,获取该虚拟对象的面部点云数据。从该面部点云数据中,确定该虚拟对象的多个面部特征点,例如,将面部点云数据中的每个点都作为一个面部特征点,或者,将面部点云数据中较为凸显面部特征的每个点作为一个面部特征点即,将面部点云数据中挑选出来的部分点作为面部特征点,本申请实施例对面部特征点的确定方式不进行具体限定。接着,提取出该虚拟对象的面部特征点的规范点云特征,这一规范点云特征是指面部特征点与表情姿态无关的规范特征,换一种表述,这一规范点云特征是指虚拟对象在面无表情的情况下其面部特征点的规范特征,这里的面无表情是指虚拟对象不作出任何表情时五官具有的姿态,能够表征虚拟对象的五官所固有的规范特征。上述在面部点云数据的基础上提取规范点云特征的过程,相当于将点云中的面部特征点从点云空间投影到规范空间,关于规范点云特征的提取方式在下一实施例中详细说明,此处不再赘述。
202、终端基于该规范点云特征进行特征变换,得到该面部特征点的偏移点云特征,该偏移点云特征表征该面部特征点在设定表情姿态下的偏移特征。
在一些实施例中,终端在步骤201中提取到的规范点云特征的基础上,基于设定表情姿态,对该面部特征点的规范点云特征进行特征变换,即可得到该面部特征点的偏移点云特征,这一偏移点云特征是指面部特征点在设定表情姿态下的偏移特征,相当于按照设定表情姿态对规范点云特征施加偏移,即可得到偏移点云特征,换一种表述,这一偏移点云特征是指虚拟对象在设定表情姿态的情况下其面部特征点的偏移特征,能够表征虚拟对象五官固有的规范特征按照设定表情姿态进行偏移以后的偏移特征。上述在规范点云特征的基础上提取偏移点云特征的过程,相当于将点云中的面部特征点从规范空间投影到偏移空间,关于偏移点云特征的提取方式在下一实施例中详细说明,此处不再赘述。
203、终端基于该偏移点云特征进行加权变换,得到该面部特征点的形变点云特征,该形变点云特征表征该面部特征点在该设定表情姿态下与该虚拟对象的面部外观资源进行适配的形变特征。
在一些实施例中,终端在步骤202中提取到的偏移点云特征的基础上,基于虚拟对象的面部外观资源,对该面部特征点的偏移点云特征进行特征变换,即可得到该面部特征点的形变点云特征,这一形变点云特征是指面部特征点在设定表情姿态下与该面部外观资源进行适配的形变特征,相当于按照面部外观资源对偏移点云特征进行形变,即可得到形变点云特征,换一种表述,这一形变点云特征是指虚拟对象在设定表情姿态的情况下,将其面部特征点的偏移特征适配到自身面部外观资源以后所得的一个特征,这一形变点云特征能够表征虚拟对象五官固有的规范特征按照设定表情姿态进行偏移以后,再叠加到自身面部外观资源来进行精细调整以后的形变特征。上述在偏移点云特征的基础上提取形变点云特征的过程,相当于将点云中的面部特征点从偏移空间投影到形变空间,关于形变点云特征的提取方式在下一实施例中详细说明,此处不再赘述。
204、终端基于该形变点云特征,对该虚拟对象进行面部渲染,得到该虚拟对象呈现该设定表情姿态的面部区域。
在一些实施例中,终端在步骤203中提取到的形变点云特征的基础上,可以预测出来每个面部特征点的深度值和颜色向量,进而,根据GPU渲染管线的流程,对于面部区域中的每个像素点,确定位于该像素点上重叠的多个面部特征点,并对这些面部特征点按照其在深度缓冲区中写入的深度值进行排序,将这些有序排列的面部特征点的颜色向量按照透明度系数和透射率系数进行积分,即可得到这一像素点的像素值,对面部区域中的全部像素点重复以上操作,即可得到渲染完毕的虚拟对象的面部区域,并在虚拟对象的面部区域呈现该设定表情姿态,且能够与该虚拟对象的面部外观资源相适配。其中,面部区域中的像素点是指虚拟对象的面部特征点在经过光栅化器离散化后的像素点。关于面部特征点的颜色预测过程以及渲染流程将在下一实施例中详细说明,此处不再赘述。
在相关技术中,基于Mesh的建模方式通常不可微分,因此无法使用光栅化器来进行有效渲染,这会导致动态表情渲染失败,出现游戏卡顿。但在本申请基于点云的建模方式中,在点云基础上调整得到的形变点云特征,再预测出来的颜色向量具有可微的性质,因此可以直接送入到如PyTorch3D等可微分点渲染器中,实现对面部区域的有效渲染,不但使得面部区域完美融合到虚拟对象自身的面部外观资源、进而融合到虚拟场景中,而且保证了着色阶段可微分、可积分,相当于保障了动态表情不会由于不可微而导致的渲染失败,这样也极大提升了动态表情的渲染成功率,降低卡顿发生的概率。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,在虚拟对象的面部点云数据的基础上,依次将虚拟对象的面部特征点从点云空间投影到规范空间,得到规范点云特征,再将面部特征点从规范空间投影到偏移空间,得到偏移点云特征,再将面部特征点从偏移空间投影到形变空间,得到形变点云特征,这样利用形变点云特征能够预测出来面部特征点的深度值和颜色向量,进而对面部区域中的每个像素点进行着色,得到虚拟对象最终的面部区域,这一面部区域不但呈现出来设定表情姿态,而且能够与虚拟对象自身的面部外观资源相适配,并且由于在点云基础上调整得到的形变点云特征,再预测出来的颜色向量具有可微的性质,因此在着色阶段只需要很低的计算开销,从而能够降低渲染开销、提升渲染速度、避免动态表情卡顿,优化游戏性能。
在上述实施例中,简单介绍了面部渲染基本流程,而在本申请实施例中,将对规范点云特征、偏移点云特征、形变点云特征等的计算方式进行详细说明。
图3是本申请实施例提供的另一种虚拟对象的面部渲染方法的流程图。参见图3,该实施例由电子设备执行,以电子设备为终端为例进行说明,该实施例包括以下步骤。
301、终端对虚拟对象的多个面部特征点中的任一面部特征点,基于该虚拟对象的面部点云数据,确定该面部特征点的原始点云坐标。
在一些实施例中,在当前帧中对于虚拟场景中任一待渲染面部区域的虚拟对象,获取该虚拟对象的面部点云数据。从该面部点云数据中,确定该虚拟对象的多个面部特征点,例如,将面部点云数据中的每个点都作为一个面部特征点,或者,将面部点云数据中较为凸显面部特征的每个点作为一个面部特征点即,将面部点云数据中挑选出来的部分点作为面部特征点,本申请实施例对面部特征点的确定方式不进行具体限定。
接着,对该虚拟对象的多个面部特征点中任一面部特征点,从该面部点云数据中查询到该面部特征点的原始点云坐标,该原始点云坐标表征面部特征点在点云空间中的(x,y,z)三维坐标。例如,使用x表征某一面部特征点的原始点云坐标。
302、终端将该原始点云坐标输入规范特征提取模型,通过该规范特征提取模型对该原始点云坐标进行变换,得到该面部特征点的规范点云坐标。
其中,该规范特征提取模型用于将面部特征点从点云空间投影到该规范空间,该规范特征提取模型的训练过程将在下一实施例中详细说明,不再赘述。
在一些实施例中,对该虚拟对象的每个面部特征点,将该面部特征点的原始点云坐标输入到规范特征提取模型中,通过该规范特征提取模型对该原始点云坐标进行变换,得到该面部特征点的规范点云坐标。
在一个示例中,对每个面部特征点,将原始点云坐标x输入到规范特征提取模型中,通过该规范特征提取模型对该原始点云坐标x进行变换,得到一个规范点云坐标xc
在上述步骤301~302中,提供了对单个面部特征点从点云空间投影到该规范空间的一种可能的实施方式,这样能够将每个面部特征点在点云空间中的原始点云坐标变换成规范空间中的规范点云坐标。接着,将多个面部特征点的规范点云坐标作为该虚拟对象的规范点云特征,换言之,该规范点云特征包括该虚拟对象的多个面部特征点在规范空间中的规范点云坐标。
在一些实施例中,从面部点云数据中,将多个面部特征点的原始点云坐标配置成一个三维矩阵,三维矩阵中位于同一位置的元素分别具有(x,y,z)三个通道的坐标值,即,三维矩阵中第一维记录每个面部特征点的x坐标,第二维记录每个面部特征点的y坐标,第三维记录每个面部特征点的z坐标,这样处于同一位置的(x,y,z)三个维度的坐标构成了该面部特征点的三维原始点云坐标。接着,将该原始点云坐标的三维矩阵输入到该规范特征提取模型中,通过该规范特征提取模型对该原始点云坐标的三维矩阵进行变换,输出一个规范点云坐标的三维矩阵,规范点云坐标的三维矩阵记录每个面部特征点在(x,y,z)三个维度的规范点云坐标,因此该规范点云坐标的三维矩阵就是虚拟对象的规范点云特征。这样,能够一次性将多个面部特征点各自的原始点云坐标转换成规范点云特征,从而提升规范点云特征的计算效率。
在一些实施例中,该规范特征提取模型被实施为一个规范MLP(MultilayerPerceptron,多层感知机),该规范MLP中包含一个或多个串连的隐层,对于每个面部特征点来说,将该原始点云坐标的三维矩阵输入到该规范MLP包含的一个或多个串连的隐层中,首个隐层通过自身内部的权重矩阵对该原始点云坐标的三维矩阵进行权重运算,得到首个隐层的输出特征图,将该首个隐层的输出特征图输入到第二个隐层中继续进行权重运算,以此类推,并将最后一个隐层的输出特征图降低到三维空间中(即将输出特征图的维度变换到3),得到一个三维的输出特征图,这一三维的输出特征图实际上就是承载每个面部特征点的规范点云坐标的三维矩阵,也就是该虚拟对象的规范点云特征。可选地,除了MLP形式以外,规范特征提取模型也能够被实施为其他的如DNN(Deep Neural Networks,深度神经网络)等神经网络模型。
在上述步骤301~302中,提供了基于虚拟对象的面部点云数据,提取该虚拟对象的面部特征点的规范点云特征的一种可能实施方式,其中,该规范点云特征表征该面部特征点与表情姿态无关的规范特征,换一种表述,这一规范点云特征是指虚拟对象在面无表情的情况下其面部特征点的规范特征,这里的面无表情是指虚拟对象不作出任何表情时五官具有的姿态,能够表征虚拟对象的五官所固有的规范特征。
303、终端将该规范点云坐标输入偏移特征提取模型,通过该偏移特征提取模型对该规范点云坐标按照该设定表情姿态进行扭曲,得到该面部特征点的偏移点云坐标。
其中,该偏移特征提取模型用于将面部特征点从该规范空间投影到该偏移空间,该偏移特征提取模型的训练过程将在下一实施例中详细说明,不再赘述。
在一些实施例中,对该虚拟对象的每个面部特征点,将该面部特征点的规范点云坐标输入到偏移特征提取模型中,通过该偏移特征提取模型对该规范点云坐标按照设定表情姿态进行扭曲,得到该面部特征点的偏移点云坐标。
在一个示例中,对每个面部特征点,将规范点云坐标xc输入到偏移特征提取模型中,通过该偏移特征提取模型对该规范点云坐标xc按照设定表情姿态进行扭曲,得到一个偏移点云坐标xo
在上述步骤303中,提供了对单个面部特征点从规范空间投影到该偏移空间的一种可能的实施方式,这样能够将每个面部特征点在规范空间中的规范点云坐标变换成偏移空间中的偏移点云坐标。接着,将多个面部特征点的偏移点云坐标作为该虚拟对象的偏移点云特征,换言之,该偏移点云特征包括该虚拟对象的多个面部特征点在偏移空间中的偏移点云坐标。
以下,将通过步骤A1~A2,对偏移特征提取模型的一种可能的偏移施加方式进行说明。
A1、终端基于该设定表情姿态关联的面部偏移指示信息,确定该面部特征点的面部偏移量。
其中,该面部偏移指示信息表征该虚拟对象在该设定表情姿态下的面部偏移情况。
在一些实施例中,终端对于多种表情姿态中的设定表情姿态,确定该设定表情姿态的面部偏移指示信息,其中,设定表情姿态是指该多种表情姿态中的任一表情姿态。可选地,技术人员预定义多种表情姿态,包括但不限于:眨眼、微笑、大笑、悲伤、哭泣、沮丧等,每种表情姿态都具有唯一标识该表情姿态的表情ID(Identification,标识)。对于当前帧中的虚拟对象,根据游戏业务逻辑为该虚拟对象分配到当前帧中的表情ID,这一当前帧中的表情ID所指示的表情姿态就是该虚拟对象的设定表情姿态。
在一些实施例中,每个表情姿态都具有唯一关联的面部偏移指示信息,终端可以预先存储有每个表情姿态的面部偏移指示信息,例如,将每个表情姿态的表情ID和面部偏移指示信息进行关联存储,可选地,在对表情ID和面部偏移指示信息进行关联存储时,以Key-Value数据结构进行关联存储,例如以表情ID为Key(键名),以面部偏移指示信息为Value(键值)。这样,以设定表情姿态的表情ID为索引,即可快速查询所有Key-Value数据结构,取出命中的Key-Value数据结构中Value中存储的面部偏移指示信息,即可快速访问到该设定表情姿态的面部偏移指示信息,提升面部偏移指示信息的访问效率。
在另一些实施例中,每个表情姿态的面部偏移指示信息并非是预先存储在终端上的,而是由该偏移特征提取模型根据设定表情姿态实时计算生成的。可选地,在计算面部偏移指示信息的时候,可以对每个表情姿态都初始化一个初始偏移指示信息,将该初始偏移指示信息输入到该偏移特征提取模型中,通过该偏移特征提取模型对该初始偏移指示信息进行加权变换,得到最终的面部偏移指示信息。这样,方便了对新增的任意表情姿态都计算出来其面部偏移指示信息,具有很高的灵活性。并且,还能够根据不同的虚拟对象能够实时计算出适配到每个虚拟对象的面部偏移指示信息,针对游戏中提供多种不同虚拟对象的应用场景具有重要意义,从而保证面部偏移指示信息的表达能力和指示精度。
可选地,针对每个表情姿态,通过偏移特征提取模型都计算出来一个确定的面部偏移指示信息以后,可以缓存各个表情姿态的面部偏移指示信息。这样后续涉及到渲染相同表情姿态的面部区域时,只需要访问缓存中的该表情姿态的面部偏移指示信息即可,能够提升访问效率,只有对于新增的表情姿态才需要输入到该偏移特征提取模型中实时计算出面部偏移指示信息。
在一些实施例中,该面部偏移指示信息中用于记录虚拟对象的每个面部特征点的面部偏移量。例如,该面部偏移指示信息被实施为一个面部偏移贴图,该面部偏移贴图指示的是虚拟对象在作出设定表情姿态时其五官的偏移情况。可选地,面部偏移贴图被实施为一个(x,y,z)三通道的偏移特征图(即一个三维矩阵),第一个通道指示每个面部特征点在x方向的坐标偏移,第二个通道指示每个面部特征点在y方向的坐标偏移,第三个通道指示每个面部特征点在z方向的坐标偏移。可选地,面部偏移贴图也可以被实施为一个单通道的偏移特征图,偏移特征图中每个元素都是一个标量,记载了每个面部特征点的坐标偏移的绝对值,本申请实施例对面部偏移贴图的实施方式不进行具体限定。这样,对每个面部特征点来说,根据该面部偏移贴图可以查询到该面部特征点的面部偏移量O,这里以该面部偏移贴图是一个三通道的偏移特征图为例,此时每个面部特征点的面部偏移量O都是一个三维矢量。
A2、终端基于该面部特征点的面部偏移量,对该面部特征点的规范点云坐标施加偏移,得到该面部特征点的偏移点云坐标。
在一些实施例中,虚拟对象的规范点云特征被实施为规范点云坐标的三维矩阵,规范点云坐标的三维矩阵记录每个面部特征点在(x,y,z)三个维度的规范点云坐标。这样,将该规范点云坐标的三维矩阵输入到该偏移特征提取模型中,通过该偏移特征提取模型对该规范点云坐标的三维矩阵进行变换,输出一个偏移点云坐标的三维矩阵。
从单个面部特征点层面来说,利用步骤A1提取到的面部偏移指示信息中本面部特征点的面部偏移量O,对该面部特征点的规范点云坐标xc施加偏移,即,将规范点云坐标xc与面部偏移量O相加,得到一个偏移点云坐标xo,因此有xo = xc + O。
从整体三维矩阵层面来说,利用步骤A1提取到的面部偏移指示信息,对该规范点云坐标的三维矩阵施加偏移,得到偏移点云坐标的三维矩阵,该偏移点云坐标的三维矩阵记录每个面部特征点在(x,y,z)三个维度的偏移点云坐标,因此该偏移点云坐标的三维矩阵就是虚拟对象的偏移点云特征。这样,能够一次性将多个面部特征点各自的规范点云坐标转换成偏移点云特征,从而提升偏移点云特征的计算效率。
在一些实施例中,该偏移特征提取模型被实施为一个偏移MLP,该偏移MLP中包含一个或多个串连的隐层,对于每个面部特征点来说,将该规范点云坐标的三维矩阵输入到该偏移MLP包含的一个或多个串连的隐层中,首个隐层通过自身内部的权重矩阵对该规范点云坐标的三维矩阵进行权重运算,得到首个隐层的输出特征图,将该首个隐层的输出特征图输入到第二个隐层中继续进行权重运算,以此类推,并将最后一个隐层的输出特征图降低到三维空间中(即将输出特征图的维度变换到3),得到一个三维的输出特征图,这一三维的输出特征图实际上就是承载每个面部特征点的偏移点云坐标的三维矩阵,也就是该虚拟对象的偏移点云特征。可选地,除了MLP形式以外,偏移特征提取模型也能够被实施为其他的如DNN等神经网络模型。
在上述步骤A1~A2中,提供了如何对每个面部特征点的规范点云坐标,按照设定表情姿态进行扭曲,进而得到该面部特征点的偏移点云坐标的方式,这样,通过对设定表情姿态配置一个面部偏移指示信息(如一张面部偏移贴图),查询该面部偏移指示信息即可得到该面部特征点的面部偏移量,进而按照该面部偏移量分别对规范点云坐标在x、y、z三个方向上施加偏移,得到最终的偏移点云坐标,这样只需要增减缓存的面部偏移指示信息的数量,就可以灵活控制虚拟对象所能够做出的表情姿态的数量,而且还能够扩展和适应到任意种类的虚拟对象,并通过下述步骤304~305适配到穿戴不同面部外观资源的虚拟对象,因此具有极高的可扩展性和通用性。
在上述步骤303中,提供了基于该规范点云特征进行特征变换,得到该面部特征点的偏移点云特征的一种可能的实施方式,其中,该偏移点云特征表征该面部特征点在设定表情姿态下的偏移特征,相当于按照设定表情姿态对规范点云特征施加偏移,即可得到偏移点云特征,换一种表述,这一偏移点云特征是指虚拟对象在设定表情姿态的情况下其面部特征点的偏移特征,能够表征虚拟对象五官固有的规范特征按照设定表情姿态进行偏移以后的偏移特征。
304、终端基于该虚拟对象的面部外观资源,提取该面部外观资源的姿态指示信息。
其中,该姿态指示信息指示按照该面部外观资源对该偏移点云特征的形变系数。
在一些实施例中,该姿态指示信息包括该面部外观资源的姿态修正向量和表情修正向量,其中该姿态修正向量表征按照该面部外观资源对虚拟对象的面部特征点所需执行的五官姿态修正情况,该表情修正向量表征按照该面部外观资源对虚拟对象的面部特征点所需执行的面部表情修正情况。
以下,将结合步骤B1~B3,对姿态修正向量和表情修正向量的提取方式进行说明。
B1、终端基于该面部外观资源的表情动画系数,确定该面部外观资源的附加姿态信息、表情偏移信息、混合形状信息和转换混合形状信息。
在一些实施例中,终端加载虚拟对象的面部外观资源,读取该面部外观资源的表情动画系数,接着,基于该表情动画系数,可以导出该面部外观资源的附加姿态信息θ、表情偏移信息ψ、混合形状信息P和转换混合形状信息ε。
B2、终端基于该附加姿态信息和该混合形状信息,提取该面部外观资源的姿态修正向量。
在一些实施例中,终端基于步骤B1中提取到的附加姿态信息θ和混合形状信息P,可以提取到该面部外观资源的姿态修正向量BP(θ;P),该姿态修正向量BP表征混合形状的一种线性组合,可用于指示按照该面部外观资源对虚拟对象的面部特征点所需执行的五官姿态修正情况。
B3、终端基于该表情偏移信息和该转换混合形状信息,提取该面部外观资源的表情修正向量。
在一些实施例中,终端基于步骤B1中提取到的表情偏移信息ψ和转换混合形状信息ε,可以提取到该面部外观资源的表情修正向量BE(ψ;ε),该表情修正向量BE表征混合形状的另一种线性组合,可用于指示按照该面部外观资源对虚拟对象的面部特征点所需执行的面部表情修正情况。
在上述步骤B1~B3中,提出一种基于表情动画系数,来分别提取姿态修正向量BP和表情修正向量BE的可能的实施方式,其中,姿态修正向量BP是与附加姿态信息θ和混合形状信息P相关的一个修正向量,表情修正向量BE是与表情偏移信息ψ和转换混合形状信息ε相关的一个修正向量,而附加姿态信息θ、表情偏移信息ψ、混合形状信息P和转换混合形状信息ε都能够直接根据虚拟对象其面部外观资源的表情动画系数来输出,因此步骤B1~B3的计算开销很低,能够提升姿态修正向量BP和表情修正向量BE的计算效率,而姿态修正向量BP和表情修正向量BE两者综合起来作为虚拟对象的姿态指示信息,能够较为全面的从五官姿态和面部表情两个维度来修正偏移点云坐标,有助于提升修正所得到的形变点云坐标的准确程度。
305、终端将该偏移点云坐标输入形变特征提取模型,通过该形变特征提取模型对该偏移点云坐标按照该姿态指示信息进行形变,得到该面部特征点的形变点云坐标。
其中,该形变特征提取模型用于将面部特征点从该偏移空间投影到该形变空间,该形变特征提取模型的训练过程将在下一实施例中详细说明,不再赘述。
在一些实施例中,对该虚拟对象的每个面部特征点,将该面部特征点的偏移点云坐标输入到形变特征提取模型中,通过该形变特征提取模型对该偏移点云坐标按照步骤304中提取到的姿态指示信息进行形变,得到该面部特征点的形变点云坐标。
在一个示例中,对每个面部特征点,将偏移点云坐标xo输入到形变特征提取模型中,通过该形变特征提取模型对该偏移点云坐标xo按照步骤304中提取到的姿态指示信息进行形变,得到一个形变点云坐标xd
在上述步骤304~305中,提供了对单个面部特征点从偏移空间投影到形变空间的一种可能的实施方式,这样能够将每个面部特征点在偏移空间中的偏移点云坐标变换成形变空间中的形变点云坐标。接着,将多个面部特征点的形变点云坐标作为该虚拟对象的形变点云特征,换言之,该形变点云特征包括该虚拟对象的多个面部特征点在形变空间中的形变点云坐标。
以下,将通过步骤C1~C3,对形变特征提取模型的一种可能的形变方式进行说明,这种情况下的形变特征提取模型包含两个线性回归器,第一线性回归器用于对表情偏移信息进行线性回归,第二线性回归器用于对修正点云坐标按照蒙皮权重系数进行加权,下面进行说明。
C1、终端基于该姿态修正向量和该表情修正向量,对该偏移点云坐标进行修正,得到修正点云坐标。
在一些实施例中,姿态修正向量BP(θ;P)被实施为一个姿态修正贴图,姿态修正贴图可以是一个(x,y,z)三通道的修正特征图(即一个三维矩阵),这样对每个面部特征点都可以配置不同的姿态修正向量。或者,姿态修正向量BP(θ;P)被实施为一个仅与面部外观资源相关的向量,这样对于不同的面部特征点,只要面部外观资源不变,就可以复用同一个姿态修正向量,这样能够节约对姿态修正向量存储开销。同理,表情修正向量BE(ψ;ε)也可以被实施为一个表情修正贴图或者一个仅与面部外观资源相关的向量,不再赘述。
在一些实施例中,对虚拟对象的每个面部特征点,利用步骤B2提取到的姿态修正向量BP(θ;P)和步骤B3中提取到的表情修正向量BE(ψ;ε),对该面部特征的偏移点云坐标xo进行修正,即,将偏移点云坐标xo与该面部特征点自身的姿态修正向量BP(θ;P)、表情修正向量BE(ψ;ε)相加,得到一个修正点云坐标xo + BP(θ;P) + BE(ψ;ε)。对于姿态修正贴图和表情修正贴图的情况,只需要在对应贴图中找到面部特征点自身的姿态修正向量和表情修正向量即可。
C2、终端将该表情偏移信息输入该形变特征提取模型中的第一线性回归器,得到表情回归信息。
其中,该第一线性回归器用于对表情偏移信息进行线性回归。
在一些实施例中,将步骤B1提取到的表情偏移信息ψ输入到该形变特征提取模型中的第一线性回归器J中,通过该第一线性回归器J对该表情偏移信息ψ进行线性回归,得到一个表情回归信息J(ψ)。
C3、终端将该修正点云坐标、该表情回归信息、该附加姿态信息和蒙皮权重系数输入该形变特征提取模型中的第二线性回归器,得到该形变点云坐标。
其中,该第二线性回归器用于对该修正点云坐标按照蒙皮权重系数进行加权。
在一些实施例中,将步骤C1计算到的修正点云坐标xo + BP(θ;P) + BE(ψ;ε),步骤C2计算到的表情回归信息J(ψ),步骤B1提取到的附加姿态信息θ,以及一个预先定义的蒙皮权重系数W,将以上4个信息输入到该形变特征提取模型中的第二线性回归器LBS中,通过该第二线性回归器LBS对以上4个信息进行线性回归,得到一个形变点云坐标xd,因此有:
xd = LBS(xo + BP(θ;P) + BE(ψ;ε),J(ψ),θ,W)
在步骤C1~C3的形变过程中,前向形变映射只需要应用两个线性回归器,即可将面部特征点从偏移点云坐标xo转换成形变点云坐标xd,实现将面部特征点从偏移空间投影到形变空间,不需要进行计算成本高的对应搜索,因此这一从偏移空间到形变空间的投影过程也具有较低的计算开销和较高的计算效率。
在上述步骤304~305中,提供了基于该偏移点云特征进行加权变换,得到该面部特征点的形变点云特征的一种可能的实施方式,其中,该形变点云特征表征该面部特征点在该设定表情姿态下与该虚拟对象的面部外观资源进行适配的形变特征,相当于按照面部外观资源对偏移点云特征进行形变,即可得到形变点云特征,换一种表述,这一形变点云特征是指虚拟对象在设定表情姿态的情况下,将其面部特征点的偏移特征适配到自身面部外观资源以后所得的一个特征,这一形变点云特征能够表征虚拟对象五官固有的规范特征按照设定表情姿态进行偏移以后,再叠加到自身面部外观资源来进行精细调整以后的形变特征。
在上述步骤301~305中,介绍了单个面部特征点从原始点云坐标到形变点云坐标的变换过程,对每个面部特征点都能够利用步骤301~305计算出来形变点云坐标,当然也可以一次性批量计算出来多个面部特征点各自的形变点云坐标,即整体是以三维矩阵的方式参与到特征变换中,本申请实施例对此不进行具体限定。
306、终端对该虚拟对象的面部区域中的任一像素点,确定深度缓冲区中待绘制到该像素点的多个按照深度值排序的面部特征点。
在一些实施例中,终端在步骤305中提取到每个面部特征点的形变点云坐标的基础上,可以确定出来每个面部特征点的深度值(z坐标取值),对各个面部特征点进行深度写入,即可在z缓冲区(即深度缓冲区)中写入每个面部特征点的深度值。需要说明的是,面部特征点是相对于虚拟对象来说的,但实际渲染中有可能会出现多个面部特征点需要绘制到屏幕中同一个像素点的情况,这时需要按照步骤308来进行像素点上的颜色值积分,才能够计算出来最终的像素值。其中,每个面部特征点的颜色值(即颜色向量)的预测方式在下述步骤307中详细说明,此处不再赘述。
根据GPU渲染管线的流程,对于面部区域中的每个像素点,确定位于该像素点上重叠的多个面部特征点,这些面部特征点就是待绘制到该像素点上的多个面部特征点,接着,对这些面部特征点按照其在z缓冲区中写入的深度值进行排序,即可得到上述步骤306中涉及的多个按照深度值排序的面部特征点。
307、终端基于每个面部特征点的形变点云坐标,预测该面部特征点的颜色向量、透明度系数和透射率系数。
在一些实施例中,在可微分点渲染过程中,涉及到对面部特征点的颜色向量、透明度系数和透射率系数的三个预测过程。其中,每个面部特征点的颜色向量是基于该面部特征点的形变点云坐标和反照率贴图预测得到的,每个面部特征点的透明度系数是基于该面部特征点的渲染半径和渲染偏移量预测得到的,每个面部特征点的透射率系数则要参考深度排序中前序特征点的透明度系数,下面将分别对三个过程进行详细说明。
过程一、预测每个面部特征点的颜色向量。
D1、终端基于该面部外观资源的反照率贴图,获取该面部特征点的反照率向量。
在一些实施例中,终端将形变空间中每个面部特征点的颜色向量Cd,可以按照着色模型来分解成一个反照率部分和一个阴影部分,反照率部分与场景和姿态无关,即根据场景和姿态无法获知反照率部分,而阴影部分则是与场景和姿态有关的照明部分,即根据场景和姿态可以获知到阴影部分。
在步骤D1中,可以直接从游戏引擎中导出该面部外观资源的反照率贴图,从该反照率贴图中可以读取到该面部特征点的反照率向量a,这一反照率向量a是对于该面部特征点来说与场景和姿势无关的反照率部分。可选地,反照率贴图记录的是多个面部特征点各自的反照率向量,这里只需要根据面部特征点的索引或者位置查询到该面部特征点的反照率向量a即可。
D2、终端基于该面部特征点在该形变点云特征中的形变点云坐标,预测该面部特征点的阴影向量。
在一些实施例中,对虚拟对象的每个面部特征点,终端基于步骤305中提取到该面部特征点的形变点云坐标,可以对该形变点云坐标预测出来一个阴影向量Sd,这一阴影向量Sd是对于该面部特征点来说与场景和姿势相关的照明部分(即阴影部分)。
以下,将通过步骤D21~D22来介绍对每个面部特征点的阴影向量Sd的预测方式,在这种预测方式中,使用每个面部特征点的点法线向量nd来建模其阴影向量Sd
D21、终端基于该面部特征点的规范点云坐标和形变点云坐标,预测该面部特征点的点法线向量。
在一些实施例中,对虚拟对象的每个面部特征点,将该面部特征点的规范点云坐标xc和该形变点云坐标xd输入视觉距离函数,通过该视觉距离函数对该规范点云坐标xc和该形变点云坐标xd进行空间梯度运算,得到该面部特征点的点法线向量nd,其中,该视觉距离函数用于获取该面部特征点到网格曲面的最近距离。
在一些实施例中,将规范点云坐标xc和形变点云坐标xd输入视觉距离函数,在该视觉距离函数中,对规范点云坐标xc和形变点云坐标xd进行如下的空间梯度运算,得到点法线向量nd
Figure SMS_1
其中,nc为规范点云坐标xc在规范空间中的点法线向量,nd为形变点云坐标xd在形变空间中的点法线向量,l则表征一个归一化标量,l用于确保点法线向量nd具有单位长度。
在以上过程中,利用变形雅克比行列式的倒数分析,来变换规范点云坐标xc在规范空间中的点法线向量nc(简称为规范法线),这一步骤的变换必须在输入点位置是可微分的条件下才能成立,否则其空间梯度是不可求的(不可微则不可求偏导),而本申请基于点云的建模方式保证了输入点位置的可微分性,因此能够将规范法线进行变形映射,得到形变点云坐标xd在形变空间中的点法线向量nd(简称为形变法线)。相当于从规范法线来估计形变法线,这样能够提升形变法线的估算精度。
在另一些实施例中,也可以基于相邻的面部特征点的位置估计一个局部几何描述符,从而计算出当前面部特征点的形变法线,但这种方式在点稀疏、嘈杂和不规则采样的情况下,会出现估算精度较差的现象。而在步骤D21中估算的形变法线,由于不需要计算局部几何描述符,而是从规范法线出发,根据视觉距离函数来估计形变法线,缓解了在点稀疏、嘈杂和不规则采样的情况下估算精度差的问题,因此具有较高的形变法线的计算精度,这样在基于形变法线进行光照计算的时候也具有较好的照明计算效果。
D22、终端将该点法线向量输入阴影特征提取模型,通过该阴影特征提取模型对该点法线向量进行变换,得到该面部特征点的阴影向量。
其中,该阴影特征提取模型用于基于面部特征点的点法线向量预测阴影向量。
在一些实施例中,对该虚拟对象的每个面部特征点,将该面部特征点在步骤D21中计算出来的点法线向量nd输入到阴影特征提取模型中,通过该阴影特征提取模型对该点法线向量nd进行变换,得到该面部特征点的阴影向量Sd
在一些实施例中,该阴影特征提取模型被实施为一个阴影MLPs,该阴影MLPs中包含一个或多个串连的隐层,对每个面部特征点,将该面部特征点的点法线向量nd输入到该阴影MLPs包含的一个或多个串连的隐层中,首个隐层通过自身内部的权重矩阵对该点法线向量nd进行权重运算,得到首个隐层的输出特征图,将该首个隐层的输出特征图输入到第二个隐层中继续进行权重运算,以此类推,并将最后一个隐层的输出特征图进行降维,得到一个设定维度的阴影向量Sd,因此有Sd = MLPs(nd)。可选地,除了MLP形式以外,阴影特征提取模型也能够被实施为其他的如DNN等神经网络模型。
在步骤D21~D22中,提供了使用每个面部特征点的点法线向量nd来建模其阴影向量Sd的一种可能实施方式,具体的,阴影向量Sd是从形变空间中的点法线向量nd来推断的,而点法线向量nd则是从规范空间中的点法线向量nc来推断的,这样在训练阶段,只需要先计算规范空间中的规范法线,再学习从规范法线到形变法线的变换关系,即可快速求解出来形变法线,而且规范法线相对来说比较容易在训练阶段中拟合,因此也降低了训练成本。
进一步的,通过阴影MLPs来逼近点法线向量nd和阴影向量Sd之间的变换关系,这样假设训练阶段是在固定的光照条件和相机位置下捕捉的,此时由于光照条件和相机位置是不变的,使用阴影MLPs能够快速学习到在同一光照条件和相机位置下,每个面部特征点的点法线向量nd和阴影向量Sd之间的变换关系,从而能够将阴影向量Sd建模为与点法线向量nd相关的一个函数,这一函数通过阴影MLPs来体现。
在步骤D1~D2中,通过简单而灵活的着色模型计算,可以将每个面部特征点的颜色向量Cd,分解成一个反照率向量a和阴影向量Sd,这样由于反照率向量a是从游戏引擎中易知的,只需要消耗很低的查询开销,而着色阶段只需要花费少量计算资源来计算每个面部特征点的阴影向量Sd,进而根据每个面部特征点的反照率向量a和阴影向量Sd来合成这一面部特征点的颜色向量Cd,因此能够极大降低着色阶段的计算开销。
D3、终端基于该反照率向量和该阴影向量,预测该面部特征点的颜色向量。
在一些实施例中,对虚拟对象的每个面部特征点,基于步骤D1中计算出来的反照率向量a和步骤D2中计算出来的阴影向量Sd,将反照率向量a和阴影向量Sd相乘,得到该面部特征点的颜色向量Cd,因此有
Figure SMS_2
在步骤D1~D3中,提供了终端基于该形变点云特征,预测每个面部特征点的颜色向量的一种可能实施方式,由于将每个面部特征点的颜色向量,分解成与场景和姿态无关的反照率向量a,以及与场景和姿态有关的阴影向量Sd,这样的分离方式,当场景或者姿态发生变化的时候,比如虚拟场景中的照明组件发生了变化,此时只需要学习到新的照明环境下的阴影向量Sd,即可在新的照明环境下继续渲染虚拟对象的面部区域,能够迁移适配到任意的照明组件,具有很高灵活性。在这种分离方式中,实现了阴影向量参数化,等同于无限距离的定向光源都可以计算出来阴影向量,而且能够合并更加复杂的照明条件,且具有较小的计算开销和较快的渲染速度。
过程二、预测每个面部特征点的透明度系数。
在一些实施例中,在PyTorch3D可微分点渲染器中,将每个面部特征点绘制为一个具有统一半径的二维圆,对虚拟对象的每个面部特征点,获取该面部特征点的渲染半径r和渲染偏移量d,其中,该渲染半径r表征二维圆的统一半径,该渲染偏移量d表征该面部特征点的渲染中心与像素点的像素中心之间的距离,渲染中心是指该面部特征点绘制的二维圆的圆心,像素中心则是当前待写入颜色值的像素点的中心。接着,基于该面部特征点的渲染半径r和渲染偏移量d,通过如下公式来确定该面部特征点的透明度系数α:
α = 1 - d2/r2
即,将渲染偏移量d的二次幂除以渲染半径的二次幂,得到一个商值,将1减去该商值所得的数值作为透明度系数α,这一透明度系数α可以用于计算当前像素点的高光值Splats。
过程三、预测每个面部特征点的透射率系数。
在一些实施例中,在PyTorch3D可微分点渲染器中,对于在深度排序中位于第i位的面部特征点,可以使用深度排序中前i-1位的前序特征点的透明度系数,来计算第i位的面部特征点的透射率系数。其中i为大于或等于2的整数。具体通过以下步骤E1~E2来进行说明。
E1、终端对每个该面部特征点,确定深度值排序位于该面部特征点之前的至少一个前序特征点。
在一些实施例中,对于在深度排序中位于第i位的面部特征点(即在z缓冲区中排序索引为i的面部特征点),确定深度值排序位于第i位特征点之前的i-1个前序特征点,即,在深度排序中找到从第1位到第i-1位的一共i-1个前序特征点,相当于深度排序中前i-1位的前序特征点。
E2、终端基于该至少一个前序特征点的透明度系数,预测该面部特征点的透射率系数。
在一些实施例中,将步骤E1中获取到的i-1个前序特征点的透明度系数,按照如下公式进行运算,得到第i位的面部特征点的透射率系数Ti
Figure SMS_3
其中,
Figure SMS_4
表示连乘符号,k为大于或等于1且小于或等于i-1的整数,i为大于或等于2整数,/>
Figure SMS_5
表示第k个前序特征点的透明度系数。
在步骤E1~E2中,由于基于点云的建模方式能够使用光栅化器进行有效渲染,并不需要考虑基于Mesh的建模方式导致不可微而渲染失败的问题,并在此基础上,提供了在可微分点渲染器中,对每个面部特征点的透射率系数的预测方式,这样可以逐个像素点,计算待绘制在该像素点上的每个面部特征点的颜色向量、透明度系数和透射率系数,从而逐个像素点来完成像素着色过程。
308、终端基于该透明度系数和该透射率系数,对该多个按照深度值排序的面部特征点的颜色向量进行积分,得到该像素点的像素值。
在一些实施例中,对面部区域中的每个像素点,通过步骤307对待绘制在该像素点上的每个面部特征点的颜色向量、透明度系数和透射率系数计算完毕以后,基于将这些按照深度值有序排列的面部特征点的颜色向量按照透明度系数和透射率系数进行积分,即可得到这一像素点的像素值。
下面,将通过如下步骤F1~F2来介绍颜色向量的积分过程。
F1、终端将每个面部特征点的该颜色向量、该透明度系数和该透射率系数相乘,得到该面部特征点的待积分颜色向量。
在一些实施例中,对待绘制在当前像素点上的每个面部特征点,将该面部特征点在步骤307中计算出来的颜色向量Cd,i、透明度系数αi、透射率系数Ti相乘,得到该面部特征点的待积分颜色向量αiTiCd,i
F2、终端将该多个按照深度值排序的面部特征点的待积分颜色向量进行积分,得到该像素点的像素值。
在一些实施例中,对待绘制在该像素点上的各个面部特征点,对各个面部特征点在步骤F1中计算出来的待积分颜色向量αiTiCd,i进行积分,得到这一像素点最终的像素值Cpix
Figure SMS_6
在步骤F1~F2中,由于基于点云的建模方式能够使用光栅化器进行有效渲染,并不需要考虑基于Mesh的建模方式导致不可微而渲染失败的问题,并在此基础上,提供了在可微分点渲染器中,对每个像素点的像素值的预测方式,这一过程可由GPU渲染管线中的像素着色器来实现,像素着色器对每个像素点计算完毕像素值以后,通过下述步骤309,将每个像素点的像素值写入到帧缓冲区中的颜色缓冲区中,即完成了对该像素点的颜色写入过程。
309、终端基于该像素值对该像素点进行颜色写入,以在该面部区域中对该像素点完成着色。
在一些实施例中,对面部区域中的每个像素点,GPU渲染管线中的像素着色器都会在颜色缓冲区中写入这一像素点通过步骤308中计算出来的像素值。在步骤306~309中,示出了面部区域中单个像素点的着色过程,对面部区域中的全部像素点重复执行步骤306~309中涉及的操作,即可对面部区域中的全部像素点完成着色,得到渲染完毕的虚拟对象的面部区域,并在虚拟对象的面部区域呈现该设定表情姿态,且能够与该虚拟对象的面部外观资源相适配。其中,面部区域中的像素点是指虚拟对象的面部特征点在经过光栅化器离散化后的像素点。
在上述步骤306~309中,以单个像素点的着色过程为例,介绍了基于该形变点云特征,对该虚拟对象进行面部渲染,得到该虚拟对象呈现该设定表情姿态的面部区域的一种可能实施方式。这样的面部渲染方案,不仅能够适配到任意的表情姿态,还能够适配到穿戴任意面部外观资源的虚拟对象,且能够适配到任意种类的虚拟对象,使得虚拟对象在游戏中动态表情的变化更加丰富多变,使得面部渲染更加逼真,且具有很低的计算开销,提升了虚拟对象的面部渲染性能。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,在虚拟对象的面部点云数据的基础上,依次将虚拟对象的面部特征点从点云空间投影到规范空间,得到规范点云特征,再将面部特征点从规范空间投影到偏移空间,得到偏移点云特征,再将面部特征点从偏移空间投影到形变空间,得到形变点云特征,这样利用形变点云特征能够预测出来面部特征点的深度值和颜色向量,进而对面部区域中的每个像素点进行着色,得到虚拟对象最终的面部区域,这一面部区域不但呈现出来设定表情姿态,而且能够与虚拟对象自身的面部外观资源相适配,并且由于在点云基础上调整得到的形变点云特征,再预测出来的颜色向量具有可微的性质,因此在着色阶段只需要很低的计算开销,从而能够降低渲染开销、提升渲染速度、避免动态表情卡顿,优化游戏性能。
在上一实施例中,详细介绍了本申请基于点的可变形面部模型增强表达方案,在本申请实施例中,将结合图4,对这一技术方案的处理流程进行示例性说明。
图4是本申请实施例提供的一种虚拟对象的面部渲染方法的原理图,如图4所示,这一技术方案依赖于点云特征提取模型400,点云特征提取模型400中包括:步骤302涉及的规范特征提取模型41、步骤303涉及的偏移特征提取模型42、步骤305涉及的形变特征提取模型43以及步骤D22涉及的阴影特征提取模型44。
对于任一虚拟对象来说,将该虚拟对象的面部点云数据输入到规范特征提取模型41中,得到虚拟对象的规范点云特征,换一种表述,规范特征提取模型41能够将每个面部特征点的原始点云坐标x变换成规范点云坐标xc,实现从点云空间到规范空间的投影变换。
进一步的,将该虚拟对象的规范点云特征输入到偏移特征提取模型42中,得到虚拟对象的偏移点云特征,换一种表述,偏移特征提取模型42能够将每个面部特征点的规范点云坐标xc变换成偏移点云坐标xo,实现从规范空间到偏移空间的投影变换。如图4所示,将规范特征提取模型41输出的规范点云坐标xc,叠加偏移特征提取模型42提取到的面部偏移量O,得到偏移点云坐标xo
进一步的,将该虚拟对象的偏移点云特征输入到形变特征提取模型43中,得到虚拟对象的形变点云特征,换一种表述,形变特征提取模型43能够将每个面部特征点的偏移点云坐标xo变换成形变点云坐标xd,实现从偏移空间到形变空间的投影变换。如图4所示,将偏移特征提取模型42输出的偏移点云坐标xo,叠加形变特征提取模型43提取到的混合形状(包括混合形状信息P和转换混合形状信息ε)以及蒙皮权重系数W,得到形变点云坐标xd
进一步的,将该虚拟对象的形变点云特征输入到阴影特征提取模型44中,通过阴影特征提取模型44来预测每个面部特征点的阴影向量,各个面部特征点的阴影向量可以组成一张阴影贴图(即图4中的着色Sd),在预测阴影向量的时候,可以使用每个面部特征点的点法线向量来预测其阴影向量,详细参考步骤D2中的描述。
进一步的,根据阴影特征提取模型44输出的阴影向量,以及游戏引擎中导出的一张反照率贴图,可以预测每个面部特征点的颜色向量(即图4中的姿势独立颜色Cd),将姿势独立颜色Cd进行光栅化,即可得到最终的渲染结果(即图4中的渲染C)。在着色过程中,按照同一像素点上待绘制的各个面部特征点的透明度系数和透射率系数,对各个面部特征点的颜色向量进行积分,得到每个像素点的像素值,将每个像素点的像素值写入到帧缓冲区中,最终遍历面部区域的全部像素点,得到最终的渲染结果。
在以上过程中,给定一个虚拟对象执行任意表情和五官姿态的3D面部模型,都能够在点云特征提取模型400中提取到以下信息:(1)代表虚拟对象在规范空间中与姿态无关的几何形状和外观的规范点云特征;(2)使用从3D面部模型中提取的姿态指示信息,将点云转换成设定表情姿态并适配到其面部外观资源的形变点云特征;(3)根据形变点云特征在形变空间中的点法线向量来预测得到的阴影向量,进而根据阴影向量来合成其颜色向量,再进一步积分得到虚拟对象的面部区域中每个像素点的像素值。
在上述各个实施例中,详细介绍了任意虚拟对象在穿戴任意面部外观资源时呈现任意设定表情姿态的情况下,其面部区域的渲染流程。而在本申请实施例中,将对点云特征提取模型的训练过程进行说明。
图5是本申请实施例提供的一种点云特征提取模型的训练方法的流程图。参见图5,该实施例由电子设备执行,以电子设备为服务器为例进行说明,其中,该点云特征提取模型包括上述实施例中涉及的规范特征提取模型、偏移特征提取模型和形变特征提取模型,该实施例包括以下步骤。
501、对样本对象的多个面部特征点中的任一面部特征点,服务器基于该样本对象的面部点云数据,确定该面部特征点的原始点云坐标。
其中,样本对象是指用于训练点云特征提取模型的虚拟对象。
上述步骤501与步骤301同理,不再赘述。
502、服务器将该面部特征点在该面部点云数据中的原始点云坐标输入该规范特征提取模型,得到该面部特征点的规范点云坐标。
其中,该规范特征提取模型用于将面部特征点从点云空间投影到规范空间。
上述步骤502与步骤302同理,不再赘述。
在一些实施例中,多个面部特征点的规范点云坐标,可视为一组规范点,一组规范点由一组可学习点组成,即,Pc={xc i},xc表示可优化的规范点的位置,就代表了可优化的规范点云坐标,i代表规范点的数量,Pc代表一组规范点。可选地,在训练阶段中挑选规范点时,凭经验选择在不受约束的规范空间中学习的规范点,而不强制在一组规范点对应于预定义的表情姿态,并发现这会带来更好的几何质量。
503、服务器将该规范点云坐标输入该偏移特征提取模型,得到该面部特征点的偏移点云坐标。
其中,该偏移特征提取模型用于将面部特征点从该规范空间投影到偏移空间。
上述步骤503与步骤303同理,不再赘述。
504、服务器将该偏移点云坐标输入该形变特征提取模型,得到该面部特征点的形变点云坐标。
其中,该形变特征提取模型用于将面部特征点从该偏移空间投影到形变空间。
上述步骤504与步骤304~305同理,不再赘述。
进一步的,将该样本对象的多个面部特征点的形变点云坐标确定为该样本对象的形变点云特征,该形变点云特征表征该面部特征点在设定表情姿态下与该样本对象的面部外观资源进行适配的形变特征。在上述步骤502~504中,提供了将样本对象的面部点云数据输入点云特征提取模型,得到该样本对象的面部特征点的形变点云特征的一种可能实施方式。
在一个示例中,该形变特征提取模型被实施为火焰模型,火焰模型是从4D扫描中学习的一个参数化头部模型,训练阶段使用的姿态指示信息是从火焰模型中继承的,通过使用火焰模型相同的表情和姿态参数来进行变形,能够实现虚拟对象的面部可控动画。在步骤503~504中,实现了点云坐标的两阶段变形,在第一阶段中,从规范点云坐标xc以设定表情姿态到达了偏移点云坐标xo,这对应于火焰模型的模板预定义的张口规范姿势;在第二阶段中,使用火焰模型的某种姿态指示信息中学习到的混合形状和蒙皮权重,从偏移点云坐标xo变换到形变点云坐标xd,这种两阶段变形方式有助于在训练模型的优化过程中,避免收敛到不良的局部最小值,这样能够使得训练完毕的点云特征提取模型可以产生更加准确的几何形状。进一步的,通过在点云特征提取模型的训练阶段,学习个性化变形的混合形状和蒙皮权重,能够提高虚拟对象的面部表情保真度,并考虑到面罩等游戏配件来进行适配。其中,火焰模型的标准蒙皮函数火焰中定义的联合回归器LBS和J,分别充当了训练阶段的第二线性回归器LBS和第一线性回归器J。
505、服务器基于多个面部特征点的形变点云坐标构成的形变点云特征,对该样本对象进行面部渲染,得到该样本对象呈现该设定表情姿态的预测面部图像。
上述步骤505与步骤306~309同理,不再赘述。
在一些实施例中,在训练阶段进行面部渲染的时候,先计算规范空间中的规范法线和规范反照率,再学习规范法线和形变法线之间的变换关系,以及规范反照率和形变反照率之间的变换关系。
对于规范法线来说,使用由规范点定义的视觉距离函数来估计形变法线,再将形变法线定义为视觉距离函数的空间梯度,可选地,使用数据项和正则化器来将样本对象从零水平集拟合到规范点位置,即将样本对象从点云空间拟合到规范空间。在从点云空间中采样面部特征点的时候,采样的地方Xe由原始点位置和扰动点位置组成,这样能够使得采样过程引入一定的随机性。在训练阶段的每次迭代步骤中,使用当前点位置xc更新视觉距离函数,该视觉距离函数计算单点函数到曲面的最近距离。
对于规范反照率来说,可以使用一个MLP来映射点位置xc的反照率颜色a∈R3。相较于直接将每个点的反照率建模为单独的每个点的特征相比,MLP的归纳偏差会自动在反照率颜色[ 41、14、2、3 ]上强制执行局部平滑度先验。
在一些实施例中,为了提高训练效率,在实践中可以使用共享 MLP 来计算规范法线和规范反照率,即,使用一个共享MLP来同时输出每个点的规范法线和规范反照率。
在一些实施例中,为了优化训练效果,使用在球体上随机采样的稀疏点云进行面部点云数据的初始化,并从各个角度对面部点云数据表征的点云进行上采样,同时减小着色阶段的渲染半径。这种由粗到细的Coarse-to-Fine优化策略,能够在训练阶段周期性地对点云进行上采样并减小渲染半径,从而有助于使训练快速收敛,因为初始稀疏点云可以有效地变形和渲染,并且可以快速逼近粗略形状,而后期训练阶段更密集的点云可以很好地再现细节,这样在快速收敛的基础上保证了详细的最终重建效果。可选地,在每个优化周期结束时,还可以删除未投影到可见性高于预定义阈值的任何像素上的不可见点(这一点是在渲染管线判断可见性的时候可以计算出来),从而进一步加速训练速度。
506、服务器基于该预测面部图像和该样本对象呈现设定表情姿态的参考面部图像,获取该点云特征提取模型的训练损失值。
在一些实施例中,该训练损失值包括以下至少一项:图像颜色损失项,图像特征损失项,面部掩码损失项,形变姿态损失项。
其中,该图像颜色损失项表征该预测面部图像C和该参考面部图像CGT之间的像素颜色误差,例如,使用LRGB表征该图像颜色损失项。
其中,该图像特征损失项表征该预测面部图像C和该参考面部图像CGT之间的图像特征误差,例如,使用LVGG表征该图像特征损失项,此时使用一个VGG模型来分别提取该预测面部图像C的图像特征FVGG(C),以及该参考面部图像CGT的图像特征FVGG(CGT),因此有:LVGG =FVGG(C) - FVGG(CGT)。在一个示例中,仅使用预训练的VGG模型的前四层来计算图像特征FVGG(C)和FVGG(CGT)。
其中,该面部掩码损失项表征该预测面部图像C和该参考面部图像CGT之间的面部掩码误差,例如,使用Lmask表征该面部掩码损失项,在计算出来预测面部图像C的面部掩码M,以及该参考面部图像CGT的面部掩码MGT以后,因此有:Lmask = || M - MGT ||,这里“||·||”表征取L2范数的运算。其中,面部掩码M表示预测出来的头罩,面部掩码MGT表示原始具有的头罩。
对于每个像素点来说,其在面部掩码M中的预测值
Figure SMS_7
,αi表征在该像素点上待绘制的第i个面部特征点的透明度系数,Ti表征在该像素点上待绘制的第i个面部特征点的透射率系数。在计算面部掩码M中的预测值的时候,使用的转换混合形状信息
Figure SMS_8
和混合形状信息/>
Figure SMS_9
以及蒙皮权重系数/>
Figure SMS_10
都是根据最近一次的形变特征提取模型所定义的伪值。
其中,该形变姿态损失项表征该形变特征提取模型拟合该设定表情姿态的训练误差,例如,该形变特征提取模型被实施为火焰模型拟合该设定表情姿态的训练误差,使用L火焰表征该形变姿态损失项。
在一些实施例中,对图像颜色损失项LRGB、图像特征损失项LVGG、面部掩码损失项Lmask以及形变姿态损失项L火焰进行加权求和,得到本次迭代的训练损失值L,因此有:
L = λRGBLRGB + λmaskLmask + λ火焰L火焰 + λVGGLVGG
其中,λRGB表征图像颜色损失项LRGB的损失权重系数,λmask表征面部掩码损失项Lmask的损失权重系数,λ火焰表征形变姿态损失项L火焰的损失权重系数,λVGG表征图像特征损失项LVGG的损失权重系数。
在本申请实施例中,这种基于点的渲染方式,使得在训练阶段的每次迭代中,都能够渲染出来本次的预测面部图像,这使得在整个图像上应用感知损失(即图像特征损失项LVGG)变得易于实现,而由于VGG模型提取到的是一种图像上隐式的感知损失,因此这种基于隐式感知损失的优化方式在传统训练中都仅限于每个像素的优化目标,本申请实施例则提供了在整个图像上基于隐式感知损失的优化方式,具有更好的训练效果和优化性能。
需要说明的是,上述仅给出了训练损失值的一种示例,根据不同的训练需求,可以配置更多或更少的损失项,例如不考虑面部掩码损失项Lmask,例如不考虑形变姿态损失项L火焰等,本申请实施例对训练损失值的构建方式不进行具体限定。
仍以图4为例进行说明,训练阶段的面部渲染流程与上一实施例中介绍的同理,即将样本对象的面部点云数据输入到规范特征提取模型41,得到每个面部特征点的规范点云坐标xc,在一个示例中,针对规范特征提取模型41,在训练阶段中考虑视觉距离(SignedDistance Field,SDF)损失。接着,将每个面部特征点的规范点云坐标xc输入到偏移特征提取模型42中,得到每个面部特征点的偏移点云坐标xo,其中,偏移点云坐标xo是在规范点云坐标xc基础上叠加面部偏移量O所得到的,在一个示例中,偏移特征提取模型42是火焰模型,那么偏移空间也称为火焰空间,针对火焰模型,在训练阶段中考虑其形变姿态损失项L火焰的网络阈值(即火焰模型自身训练的损失阈值)。接着,将每个面部特征点的偏移点云坐标xo输入到形变特征提取模型43中,得到每个面部特征点的形变点云坐标xd,形变点云坐标xd是在偏移点云坐标xo基础上叠加混合形状信息P、转换混合形状信息ε、蒙皮权重系数W所得到的,在一个示例中,形变特征提取模型43的作用是对火焰空间中的偏移点云坐标xo进行火焰正则化,正则化中需要用到的参数包括混合形状信息P、转换混合形状信息ε和蒙皮权重系数W,其作用是为样本对象的面部五官施加表情和姿势。接着,将每个面部特征点的形变点云坐标xd输入到阴影特征提取模型44中,得到一张阴影贴图即着色Sd。将着色Sd与各个面部特征点在形变空间中的形变点云坐标xd融合,预测出来一张颜色预测图即姿势独立颜色Cd,姿势独立颜色Cd指示每个面部特征点的颜色向量。最终,对姿势独立颜色Cd进行光栅化,渲染出来最终的预测面部图像C(即渲染C)。在全局各个模型的训练阶段中,需要利用每次迭代的预测面部图像C和参考面部图像CGT,来计算每次迭代的训练损失值,计算出来图像颜色损失项LRGB、图像特征损失项LVGG、面部掩码损失项Lmask,而形变姿态损失项L火焰则是根据火焰模型计算所得的。
507、服务器基于该训练损失值,对该点云特征提取模型进行训练。
在一些实施例中,对步骤506中计算得到的训练损失值,判断该训练损失值是否满足停止训练条件,如果不满足停止训练条件,则迭代执行步骤501-506,直到满足停止训练条件;如果满足停止训练条件,对该点云特征提取模型停止训练,得到最终训练完毕的点云特征提取模型。
在一些实施例中,该停止训练条件包括但不限于:迭代次数超过次数阈值,次数阈值是预先设定的大于或等于1的整数;训练损失值小于损失阈值,损失阈值是预先设定的大于0的数值;连续两次迭代中训练损失值的差值的绝对值小于差值阈值,差值阈值是预先设定的大于0的数值等,本申请实施例对停止训练条件不进行具体限定。
在以上过程中,还可以比较形变空间中每个面部特征点的阴影向量、渲染结果中的颜色值以及输入帧的颜色值,来进行联合优化,这样能够达到更优的优化效果。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供的方法,一旦经过训练,就可以在任意给定的新的五官姿态、面部表情和光照条件下,合成同一表情动画主题下虚拟对象的新的动画表情序列,动画表情序列中每一帧表情动画中每个像素点的像素值,都可以使用训练完毕的点云特征提取模型来进行预测,使得训练完毕的点云特征提取模型具有很高的特征提取性能和颜色预测性能,并且其训练成本较低,很快能够收敛,训练速度较快。
进一步的,本申请实施例的训练方案还可以应用在各类移动端游戏应用的建模资源的快速建模上,辅助技术人员进行3D面部模型的快速资源Debug(调试)和性能对比。例如,通过对一些建模困难的3D面部模型,使用引擎开发者工具进行提取,然后基于本申请的技术方案,对这部分建模困难的3D面部模型进行重新快速渲染建模,然后再次送入游戏应用中实现快速调试,这样可以快速进行一些不合格的3D面部模型的替换和调试。
如图6所示,该技术方案能够根据头像的3D网格使用建模技术实现3D表达,并且其面部区域可旋转、可变换不同表情姿态,具有很高的灵活性,左侧601示出了一种表情姿态下的面部区域,右侧602示出了另一种表情姿态下的面部区域。
图7是本申请实施例提供的一种虚拟对象的面部渲染装置的结构示意图,如图7所示,该装置包括:
特征提取模块701,用于基于虚拟对象的面部点云数据,提取该虚拟对象的面部特征点的规范点云特征,该规范点云特征表征该面部特征点与表情姿态无关的规范特征;
特征变换模块702,用于基于该规范点云特征进行特征变换,得到该面部特征点的偏移点云特征,该偏移点云特征表征该面部特征点在设定表情姿态下的偏移特征;
加权变换模块703,用于基于该偏移点云特征进行加权变换,得到该面部特征点的形变点云特征,该形变点云特征表征该面部特征点在该设定表情姿态下与该虚拟对象的面部外观资源进行适配的形变特征;
面部渲染模块704,用于基于该形变点云特征,对该虚拟对象进行面部渲染,得到该虚拟对象呈现该设定表情姿态的面部区域。
本申请实施例提供的装置,通过在虚拟对象的面部点云数据的基础上,依次将虚拟对象的面部特征点从点云空间投影到规范空间,得到规范点云特征,再将面部特征点从规范空间投影到偏移空间,得到偏移点云特征,再将面部特征点从偏移空间投影到形变空间,得到形变点云特征,这样利用形变点云特征能够预测出来面部特征点的深度值和颜色向量,进而对面部区域中的每个像素点进行着色,得到虚拟对象最终的面部区域,这一面部区域不但呈现出来设定表情姿态,而且能够与虚拟对象自身的面部外观资源相适配,并且由于在点云基础上调整得到的形变点云特征,再预测出来的颜色向量具有可微的性质,因此在着色阶段只需要很低的计算开销,从而能够降低渲染开销、提升渲染速度、避免动态表情卡顿,优化游戏性能。
在一些实施例中,该规范点云特征包括该虚拟对象的多个面部特征点在规范空间中的规范点云坐标;
该特征提取模块701用于:
对该多个面部特征点中的任一面部特征点,基于该面部点云数据,确定该面部特征点的原始点云坐标;
将该原始点云坐标输入规范特征提取模型,通过该规范特征提取模型对该原始点云坐标进行变换,得到该面部特征点的规范点云坐标,该规范特征提取模型用于将面部特征点从点云空间投影到该规范空间。
在一些实施例中,该偏移点云特征包括该虚拟对象的多个面部特征点在偏移空间中的偏移点云坐标;
基于图7的装置组成,该特征变换模块702包括:
扭曲子模块,用于对该多个面部特征点中的任一面部特征点,将该面部特征点的规范点云坐标输入偏移特征提取模型,通过该偏移特征提取模型对该规范点云坐标按照该设定表情姿态进行扭曲,得到该面部特征点的偏移点云坐标,该偏移特征提取模型用于将面部特征点从该规范空间投影到该偏移空间。
在一些实施例中,该扭曲子模块用于:
基于该设定表情姿态关联的面部偏移指示信息,确定该面部特征点的面部偏移量,该面部偏移指示信息表征该虚拟对象在该设定表情姿态下的面部偏移情况;
基于该面部特征点的面部偏移量,对该面部特征点的规范点云坐标施加偏移,得到该面部特征点的偏移点云坐标。
在一些实施例中,该形变点云特征包括该虚拟对象的多个面部特征点在形变空间中的形变点云坐标;
基于图7的装置组成,该加权变换模块703包括:
提取子模块,用于基于该虚拟对象的面部外观资源,提取该面部外观资源的姿态指示信息,该姿态指示信息指示按照该面部外观资源对该偏移点云特征的形变系数;
形变子模块,用于对该多个面部特征点中的任一面部特征点,将该面部特征点的偏移点云坐标输入形变特征提取模型,通过该形变特征提取模型对该偏移点云坐标按照该姿态指示信息进行形变,得到该面部特征点的形变点云坐标,该形变特征提取模型用于将面部特征点从该偏移空间投影到该形变空间。
在一些实施例中,该姿态指示信息包括该面部外观资源的姿态修正向量和表情修正向量;
该提取子模块用于:
基于该面部外观资源的表情动画系数,确定该面部外观资源的附加姿态信息、表情偏移信息、混合形状信息和转换混合形状信息;
基于该附加姿态信息和该混合形状信息,提取该面部外观资源的姿态修正向量;
基于该表情偏移信息和该转换混合形状信息,提取该面部外观资源的表情修正向量。
在一些实施例中,该形变子模块用于:
基于该姿态修正向量和该表情修正向量,对该偏移点云坐标进行修正,得到修正点云坐标;
将该表情偏移信息输入该形变特征提取模型中的第一线性回归器,得到表情回归信息,该第一线性回归器用于对表情偏移信息进行线性回归;
将该修正点云坐标、该表情回归信息、该附加姿态信息和蒙皮权重系数输入该形变特征提取模型中的第二线性回归器,得到该形变点云坐标,该第二线性回归器用于对该修正点云坐标按照蒙皮权重系数进行加权。
在一些实施例中,基于图7的装置组成,该面部渲染模块704包括:
确定子模块,用于对该面部区域中的任一像素点,确定深度缓冲区中待绘制到该像素点的多个按照深度值排序的面部特征点;
预测子模块,用于基于该形变点云特征,预测每个该面部特征点的颜色向量、透明度系数和透射率系数;
积分子模块,用于基于该透明度系数和该透射率系数,对该多个按照深度值排序的面部特征点的颜色向量进行积分,得到该像素点的像素值;
着色子模块,用于基于该像素值对该像素点进行颜色写入,以在该面部区域中对该像素点完成着色。
在一些实施例中,基于图7的装置组成,该预测子模块包括:
获取单元,用于基于该面部外观资源的反照率贴图,获取该面部特征点的反照率向量;
阴影预测单元,用于基于该面部特征点在该形变点云特征中的形变点云坐标,预测该面部特征点的阴影向量;
颜色预测单元,用于基于该反照率向量和该阴影向量,预测该面部特征点的颜色向量。
在一些实施例中,基于图7的装置组成,该阴影预测单元包括:
预测子单元,用于基于该面部特征点在该规范点云特征中的规范点云坐标和该形变点云坐标,预测该面部特征点的点法线向量;
变换子单元,用于将该点法线向量输入阴影特征提取模型,通过该阴影特征提取模型对该点法线向量进行变换,得到该面部特征点的阴影向量,该阴影特征提取模型用于基于面部特征点的点法线向量预测阴影向量。
在一些实施例中,该预测子单元用于:
将该规范点云坐标和该形变点云坐标输入视觉距离函数,通过该视觉距离函数对该规范点云坐标和该形变点云坐标进行空间梯度运算,得到该面部特征点的点法线向量,该视觉距离函数用于获取该面部特征点到网格曲面的最近距离。
在一些实施例中,基于图7的装置组成,该预测子模块包括:
透明度确定单元,用于基于该面部特征点的渲染半径和渲染偏移量,确定该面部特征点的透明度系数,该渲染偏移量表征该面部特征点的渲染中心与该像素点的像素中心之间的距离。
在一些实施例中,基于图7的装置组成,该预测子模块包括:
特征点确定单元,用于对每个该面部特征点,确定深度值排序位于该面部特征点之前的至少一个前序特征点;
透射率预测单元,用于基于该至少一个前序特征点的透明度系数,预测该面部特征点的透射率系数。
在一些实施例中,该积分子模块用于:
将每个面部特征点的该颜色向量、该透明度系数和该透射率系数相乘,得到该面部特征点的待积分颜色向量;
将该多个按照深度值排序的面部特征点的待积分颜色向量进行积分,得到该像素点的像素值。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的虚拟对象的面部渲染装置在渲染虚拟对象的面部区域时,仅以上述各功能模块的划分进行举例说明,实际应用中,能够根据需要而将上述功能分配由不同的功能模块完成,即将电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟对象的面部渲染装置与虚拟对象的面部渲染方法实施例属于同一构思,其具体实现过程详见虚拟对象的面部渲染方法实施例,这里不再赘述。
图8是本申请实施例提供的一种点云特征提取模型的训练装置的结构示意图,如图8所示,该装置包括:
特征提取模块801,用于将样本对象的面部点云数据输入点云特征提取模型,得到该样本对象的面部特征点的形变点云特征,该形变点云特征表征该面部特征点在设定表情姿态下与该样本对象的面部外观资源进行适配的形变特征;
面部渲染模块802,用于基于该形变点云特征,对该样本对象进行面部渲染,得到该样本对象呈现该设定表情姿态的预测面部图像;
损失值获取模块803,用于基于该预测面部图像和该样本对象呈现设定表情姿态的参考面部图像,获取该点云特征提取模型的训练损失值;
模型训练模块804,用于基于该训练损失值,对该点云特征提取模型进行训练。
本申请实施例提供的装置,一旦经过训练,就可以在任意给定的新的五官姿态、面部表情和光照条件下,合成同一表情动画主题下虚拟对象的新的动画表情序列,动画表情序列中每一帧表情动画中每个像素点的像素值,都可以使用训练完毕的点云特征提取模型来进行预测,使得训练完毕的点云特征提取模型具有很高的特征提取性能和颜色预测性能,并且其训练成本较低,很快能够收敛,训练速度较快。
在一些实施例中,该点云特征提取模型包括:规范特征提取模型,偏移特征提取模型和形变特征提取模型;
该特征提取模块801用于:
将该样本对象的任一面部特征点在该面部点云数据中的原始点云坐标输入该规范特征提取模型,得到该面部特征点的规范点云坐标,该规范特征提取模型用于将面部特征点从点云空间投影到规范空间;
将该规范点云坐标输入该偏移特征提取模型,得到该面部特征点的偏移点云坐标,该偏移特征提取模型用于将面部特征点从该规范空间投影到偏移空间;
将该偏移点云坐标输入该形变特征提取模型,得到该面部特征点的形变点云坐标,该形变特征提取模型用于将面部特征点从该偏移空间投影到形变空间;
将该样本对象的多个面部特征点的形变点云坐标确定为该形变点云特征。
在一些实施例中,该训练损失值包括以下至少一项:图像颜色损失项,图像特征损失项,面部掩码损失项,形变姿态损失项;其中,该图像颜色损失项表征该预测面部图像和该参考面部图像之间的像素颜色误差,该图像特征损失项表征该预测面部图像和该参考面部图像之间的图像特征误差,该面部掩码损失项表征该预测面部图像和该参考面部图像之间的面部掩码误差,该形变姿态损失项表征该形变特征提取模型拟合该设定表情姿态的训练误差。
上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的点云特征提取模型的训练装置在训练点云特征提取模型时,仅以上述各功能模块的划分进行举例说明,实际应用中,能够根据需要而将上述功能分配由不同的功能模块完成,即将电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的点云特征提取模型的训练装置与点云特征提取模型的训练方法实施例属于同一构思,其具体实现过程详见点云特征提取模型的训练方法实施例,这里不再赘述。
图9是本申请实施例提供的一种电子设备的结构示意图,如图9所示,以电子设备为终端900为例进行说明。可选地,该终端900的设备类型包括:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。
可选地,处理器901包括一个或多个处理核心,比如4核心处理器、8核心处理器等。可选地,处理器901采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。在一些实施例中,处理器901包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
在一些实施例中,存储器902包括一个或多个计算机可读存储介质,可选地,该计算机可读存储介质是非暂态的。可选地,存储器902还包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器901所执行以实现本申请中各个实施例提供的虚拟对象的面部渲染方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间能够通过总线或信号线相连。各个外围设备能够通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907和电源908中的至少一种。
外围设备接口903可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。可选地,射频电路904通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。可选地,该UI包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号能够作为控制信号输入至处理器901进行处理。可选地,显示屏905还用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905为一个,设置终端900的前面板;在另一些实施例中,显示屏905为至少两个,分别设置在终端900的不同表面或呈折叠设计;在一些实施例中,显示屏905是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,可选地,显示屏905设置成非矩形的不规则图形,也即异形屏。可选地,显示屏905采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还包括闪光灯。可选地,闪光灯是单色温闪光灯,或者是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,用于不同色温下的光线补偿。
在一些实施例中,音频电路907包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风为多个,分别设置在终端900的不同部位。可选地,麦克风是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。可选地,扬声器是传统的薄膜扬声器,或者是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅能够将电信号转换为人类可听见的声波,也能够将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还包括耳机插孔。
电源908用于为终端900中的各个组件进行供电。可选地,电源908是交流电、直流电、一次性电池或可充电电池。当电源908包括可充电电池时,该可充电电池支持有线充电或无线充电。该可充电电池还用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、光学传感器914以及接近传感器915。
在一些实施例中,加速度传感器911检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911用于检测重力加速度在三个坐标轴上的分量。可选地,处理器901根据加速度传感器911采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还用于游戏或者用户的运动数据的采集。
在一些实施例中,陀螺仪传感器912检测终端900的机体方向及转动角度,陀螺仪传感器912与加速度传感器911协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
可选地,压力传感器913设置在终端900的侧边框和/或显示屏905的下层。当压力传感器913设置在终端900的侧边框时,能够检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器914用于采集环境光强度。在一个实施例中,处理器901根据光学传感器914采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还根据光学传感器914采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器915,也称距离传感器,通常设置在终端900的前面板。接近传感器915用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器915检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器915检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。
本领域技术人员能够理解,图9中示出的结构并不构成对终端900的限定,能够包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图10是本申请实施例提供的另一种电子设备的结构示意图,该电子设备可以被实施为服务器1000,服务器1000可因配置或性能不同而产生比较大的差异,该服务器1000包括一个或一个以上处理器(Central Processing Units,CPU)1001和一个或一个以上的存储器1002,其中,该存储器1002中存储有至少一条计算机程序,该至少一条计算机程序由该一个或一个以上处理器1001加载并执行以实现上述各个实施例提供的虚拟对象的面部渲染方法或点云特征提取模型的训练方法。可选地,该服务器1000还具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器1000还包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条计算机程序的存储器,上述至少一条计算机程序可由电子设备中的处理器执行以完成上述各个实施例中的虚拟对象的面部渲染方法或点云特征提取模型的训练方法。例如,该计算机可读存储介质包括ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,包括一条或多条计算机程序,该一条或多条计算机程序存储在计算机可读存储介质中。电子设备的一个或多个处理器能够从计算机可读存储介质中读取该一条或多条计算机程序,该一个或多个处理器执行该一条或多条计算机程序,使得电子设备能够执行以完成上述实施例中的虚拟对象的面部渲染方法或点云特征提取模型的训练方法。
本领域普通技术人员能够理解实现上述实施例的全部或部分步骤能够通过硬件来完成,也能够通过程序来指令相关的硬件完成,可选地,该程序存储于一种计算机可读存储介质中,可选地,上述提到的存储介质是只读存储器、磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (35)

1.一种虚拟对象的面部渲染方法,其特征在于,所述方法包括:
基于虚拟对象的面部点云数据,提取所述虚拟对象的面部特征点的规范点云特征,所述规范点云特征表征所述面部特征点与表情姿态无关的规范特征;
基于所述规范点云特征进行特征变换,得到所述面部特征点的偏移点云特征,所述偏移点云特征表征所述面部特征点在设定表情姿态下的偏移特征;
基于所述偏移点云特征进行加权变换,得到所述面部特征点的形变点云特征,所述形变点云特征表征所述面部特征点在所述设定表情姿态下与所述虚拟对象的面部外观资源进行适配的形变特征;
基于所述形变点云特征,对所述虚拟对象进行面部渲染,得到所述虚拟对象呈现所述设定表情姿态的面部区域。
2.根据权利要求1所述的方法,其特征在于,所述规范点云特征包括所述虚拟对象的多个面部特征点在规范空间中的规范点云坐标;
所述基于虚拟对象的面部点云数据,提取所述虚拟对象的面部特征点的规范点云特征包括:
对所述多个面部特征点中的任一面部特征点,基于所述面部点云数据,确定所述面部特征点的原始点云坐标;
将所述原始点云坐标输入规范特征提取模型,通过所述规范特征提取模型对所述原始点云坐标进行变换,得到所述面部特征点的规范点云坐标,所述规范特征提取模型用于将面部特征点从点云空间投影到所述规范空间。
3.根据权利要求2所述的方法,其特征在于,所述偏移点云特征包括所述虚拟对象的多个面部特征点在偏移空间中的偏移点云坐标;
所述基于所述规范点云特征进行特征变换,得到所述面部特征点的偏移点云特征包括:
对所述多个面部特征点中的任一面部特征点,将所述面部特征点的规范点云坐标输入偏移特征提取模型,通过所述偏移特征提取模型对所述规范点云坐标按照所述设定表情姿态进行扭曲,得到所述面部特征点的偏移点云坐标,所述偏移特征提取模型用于将面部特征点从所述规范空间投影到所述偏移空间。
4.根据权利要求3所述的方法,其特征在于,所述对所述规范点云坐标按照所述设定表情姿态进行扭曲,得到所述面部特征点的偏移点云坐标包括:
基于所述设定表情姿态关联的面部偏移指示信息,确定所述面部特征点的面部偏移量,所述面部偏移指示信息表征所述虚拟对象在所述设定表情姿态下的面部偏移情况;
基于所述面部特征点的面部偏移量,对所述面部特征点的规范点云坐标施加偏移,得到所述面部特征点的偏移点云坐标。
5.根据权利要求3或4所述的方法,其特征在于,所述形变点云特征包括所述虚拟对象的多个面部特征点在形变空间中的形变点云坐标;
所述基于所述偏移点云特征进行加权变换,得到所述面部特征点的形变点云特征包括:
基于所述虚拟对象的面部外观资源,提取所述面部外观资源的姿态指示信息,所述姿态指示信息指示按照所述面部外观资源对所述偏移点云特征的形变系数;
对所述多个面部特征点中的任一面部特征点,将所述面部特征点的偏移点云坐标输入形变特征提取模型,通过所述形变特征提取模型对所述偏移点云坐标按照所述姿态指示信息进行形变,得到所述面部特征点的形变点云坐标,所述形变特征提取模型用于将面部特征点从所述偏移空间投影到所述形变空间。
6.根据权利要求5所述的方法,其特征在于,所述姿态指示信息包括所述面部外观资源的姿态修正向量和表情修正向量;
所述基于所述虚拟对象的面部外观资源,提取所述面部外观资源的姿态指示信息包括:
基于所述面部外观资源的表情动画系数,确定所述面部外观资源的附加姿态信息、表情偏移信息、混合形状信息和转换混合形状信息;
基于所述附加姿态信息和所述混合形状信息,提取所述面部外观资源的姿态修正向量;
基于所述表情偏移信息和所述转换混合形状信息,提取所述面部外观资源的表情修正向量。
7.根据权利要求6所述的方法,其特征在于,所述对所述偏移点云坐标按照所述姿态指示信息进行形变,得到所述面部特征点的形变点云坐标包括:
基于所述姿态修正向量和所述表情修正向量,对所述偏移点云坐标进行修正,得到修正点云坐标;
将所述表情偏移信息输入所述形变特征提取模型中的第一线性回归器,得到表情回归信息,所述第一线性回归器用于对表情偏移信息进行线性回归;
将所述修正点云坐标、所述表情回归信息、所述附加姿态信息和蒙皮权重系数输入所述形变特征提取模型中的第二线性回归器,得到所述形变点云坐标,所述第二线性回归器用于对所述修正点云坐标按照所述蒙皮权重系数进行加权。
8.根据权利要求1所述的方法,其特征在于,所述基于所述形变点云特征,对所述虚拟对象进行面部渲染,得到所述虚拟对象呈现所述设定表情姿态的面部区域包括:
对所述面部区域中的任一像素点,确定深度缓冲区中待绘制到所述像素点的多个按照深度值排序的面部特征点;
基于所述形变点云特征,预测每个所述面部特征点的颜色向量、透明度系数和透射率系数;
基于所述透明度系数和所述透射率系数,对所述多个按照深度值排序的面部特征点的颜色向量进行积分,得到所述像素点的像素值;
基于所述像素值对所述像素点进行颜色写入,以在所述面部区域中对所述像素点完成着色。
9.根据权利要求8所述的方法,其特征在于,所述基于所述形变点云特征,预测每个所述面部特征点的颜色向量包括:
基于所述面部外观资源的反照率贴图,获取所述面部特征点的反照率向量;
基于所述面部特征点在所述形变点云特征中的形变点云坐标,预测所述面部特征点的阴影向量;
基于所述反照率向量和所述阴影向量,预测所述面部特征点的颜色向量。
10.根据权利要求9所述的方法,其特征在于,所述基于所述面部特征点在所述形变点云特征中的形变点云坐标,预测所述面部特征点的阴影向量包括:
基于所述面部特征点在所述规范点云特征中的规范点云坐标和所述形变点云坐标,预测所述面部特征点的点法线向量;
将所述点法线向量输入阴影特征提取模型,通过所述阴影特征提取模型对所述点法线向量进行变换,得到所述面部特征点的阴影向量,所述阴影特征提取模型用于基于面部特征点的点法线向量预测阴影向量。
11.根据权利要求10所述的方法,其特征在于,所述基于所述面部特征点在所述规范点云特征中的规范点云坐标和所述形变点云坐标,预测所述面部特征点的点法线向量包括:
将所述规范点云坐标和所述形变点云坐标输入视觉距离函数,通过所述视觉距离函数对所述规范点云坐标和所述形变点云坐标进行空间梯度运算,得到所述面部特征点的点法线向量,所述视觉距离函数用于获取所述面部特征点到网格曲面的最近距离。
12.根据权利要求8-11中任一项所述的方法,其特征在于,所述预测每个所述面部特征点的透明度系数包括:
基于所述面部特征点的渲染半径和渲染偏移量,确定所述面部特征点的透明度系数,所述渲染偏移量表征所述面部特征点的渲染中心与所述像素点的像素中心之间的距离。
13.根据权利要求8-11中任一项所述的方法,其特征在于,所述预测每个所述面部特征点的透射率系数包括:
对每个所述面部特征点,确定深度值排序位于所述面部特征点之前的至少一个前序特征点;
基于所述至少一个前序特征点的透明度系数,预测所述面部特征点的透射率系数。
14.根据权利要求8-11中任一项所述的方法,其特征在于,所述基于所述透明度系数和所述透射率系数,对所述多个按照深度值排序的面部特征点的颜色向量进行积分,得到所述像素点的像素值包括:
将每个面部特征点的所述颜色向量、所述透明度系数和所述透射率系数相乘,得到所述面部特征点的待积分颜色向量;
将所述多个按照深度值排序的面部特征点的待积分颜色向量进行积分,得到所述像素点的像素值。
15.一种点云特征提取模型的训练方法,其特征在于,所述方法包括:
将样本对象的面部点云数据输入点云特征提取模型,得到所述样本对象的面部特征点的形变点云特征,所述点云特征提取模型包括:规范特征提取模型,偏移特征提取模型和形变特征提取模型,所述规范特征提取模型用于将面部特征点从点云空间投影到规范空间,所述偏移特征提取模型用于将面部特征点从所述规范空间投影到偏移空间,所述形变特征提取模型用于将面部特征点从所述偏移空间投影到形变空间,所述形变点云特征表征所述面部特征点在设定表情姿态下与所述样本对象的面部外观资源进行适配的形变特征;
基于所述形变点云特征,对所述样本对象进行面部渲染,得到所述样本对象呈现所述设定表情姿态的预测面部图像;
基于所述预测面部图像和所述样本对象呈现所述设定表情姿态的参考面部图像,获取所述点云特征提取模型的训练损失值;
基于所述训练损失值,对所述点云特征提取模型进行训练。
16.根据权利要求15所述的方法,其特征在于,所述将样本对象的面部点云数据输入点云特征提取模型,得到所述样本对象的面部特征点的形变点云特征包括:
将所述样本对象的任一面部特征点在所述面部点云数据中的原始点云坐标输入所述规范特征提取模型,得到所述面部特征点的规范点云坐标;
将所述规范点云坐标输入所述偏移特征提取模型,得到所述面部特征点的偏移点云坐标;
将所述偏移点云坐标输入所述形变特征提取模型,得到所述面部特征点的形变点云坐标;
将所述样本对象的多个面部特征点的形变点云坐标确定为所述形变点云特征。
17.根据权利要求16所述的方法,其特征在于,所述训练损失值包括以下至少一项:图像颜色损失项,图像特征损失项,面部掩码损失项,形变姿态损失项;其中,所述图像颜色损失项表征所述预测面部图像和所述参考面部图像之间的像素颜色误差,所述图像特征损失项表征所述预测面部图像和所述参考面部图像之间的图像特征误差,所述面部掩码损失项表征所述预测面部图像和所述参考面部图像之间的面部掩码误差,所述形变姿态损失项表征所述形变特征提取模型拟合所述设定表情姿态的训练误差。
18.一种虚拟对象的面部渲染装置,其特征在于,所述装置包括:
特征提取模块,用于基于虚拟对象的面部点云数据,提取所述虚拟对象的面部特征点的规范点云特征,所述规范点云特征表征所述面部特征点与表情姿态无关的规范特征;
特征变换模块,用于基于所述规范点云特征进行特征变换,得到所述面部特征点的偏移点云特征,所述偏移点云特征表征所述面部特征点在设定表情姿态下的偏移特征;
加权变换模块,用于基于所述偏移点云特征进行加权变换,得到所述面部特征点的形变点云特征,所述形变点云特征表征所述面部特征点在所述设定表情姿态下与所述虚拟对象的面部外观资源进行适配的形变特征;
面部渲染模块,用于基于所述形变点云特征,对所述虚拟对象进行面部渲染,得到所述虚拟对象呈现所述设定表情姿态的面部区域。
19.根据权利要求18所述的装置,其特征在于,所述规范点云特征包括所述虚拟对象的多个面部特征点在规范空间中的规范点云坐标;
所述特征提取模块用于:
对所述多个面部特征点中的任一面部特征点,基于所述面部点云数据,确定所述面部特征点的原始点云坐标;
将所述原始点云坐标输入规范特征提取模型,通过所述规范特征提取模型对所述原始点云坐标进行变换,得到所述面部特征点的规范点云坐标,所述规范特征提取模型用于将面部特征点从点云空间投影到所述规范空间。
20.根据权利要求19所述的装置,其特征在于,所述偏移点云特征包括所述虚拟对象的多个面部特征点在偏移空间中的偏移点云坐标;
所述特征变换模块包括:
扭曲子模块,用于对所述多个面部特征点中的任一面部特征点,将所述面部特征点的规范点云坐标输入偏移特征提取模型,通过所述偏移特征提取模型对所述规范点云坐标按照所述设定表情姿态进行扭曲,得到所述面部特征点的偏移点云坐标,所述偏移特征提取模型用于将面部特征点从所述规范空间投影到所述偏移空间。
21.根据权利要求20所述的装置,其特征在于,所述扭曲子模块用于:
基于所述设定表情姿态关联的面部偏移指示信息,确定所述面部特征点的面部偏移量,所述面部偏移指示信息表征所述虚拟对象在所述设定表情姿态下的面部偏移情况;
基于所述面部特征点的面部偏移量,对所述面部特征点的规范点云坐标施加偏移,得到所述面部特征点的偏移点云坐标。
22.根据权利要求20或21所述的装置,其特征在于,所述形变点云特征包括所述虚拟对象的多个面部特征点在形变空间中的形变点云坐标;
所述加权变换模块包括:
提取子模块,用于基于所述虚拟对象的面部外观资源,提取所述面部外观资源的姿态指示信息,所述姿态指示信息指示按照所述面部外观资源对所述偏移点云特征的形变系数;
形变子模块,用于对所述多个面部特征点中的任一面部特征点,将所述面部特征点的偏移点云坐标输入形变特征提取模型,通过所述形变特征提取模型对所述偏移点云坐标按照所述姿态指示信息进行形变,得到所述面部特征点的形变点云坐标,所述形变特征提取模型用于将面部特征点从所述偏移空间投影到所述形变空间。
23.根据权利要求22所述的装置,其特征在于,所述姿态指示信息包括所述面部外观资源的姿态修正向量和表情修正向量;
所述提取子模块用于:
基于所述面部外观资源的表情动画系数,确定所述面部外观资源的附加姿态信息、表情偏移信息、混合形状信息和转换混合形状信息;
基于所述附加姿态信息和所述混合形状信息,提取所述面部外观资源的姿态修正向量;
基于所述表情偏移信息和所述转换混合形状信息,提取所述面部外观资源的表情修正向量。
24.根据权利要求23所述的装置,其特征在于,所述形变子模块用于:
基于所述姿态修正向量和所述表情修正向量,对所述偏移点云坐标进行修正,得到修正点云坐标;
将所述表情偏移信息输入所述形变特征提取模型中的第一线性回归器,得到表情回归信息,所述第一线性回归器用于对表情偏移信息进行线性回归;
将所述修正点云坐标、所述表情回归信息、所述附加姿态信息和蒙皮权重系数输入所述形变特征提取模型中的第二线性回归器,得到所述形变点云坐标,所述第二线性回归器用于对所述修正点云坐标按照所述蒙皮权重系数进行加权。
25.根据权利要求18所述的装置,其特征在于,所述面部渲染模块包括:
确定子模块,用于对所述面部区域中的任一像素点,确定深度缓冲区中待绘制到所述像素点的多个按照深度值排序的面部特征点;
预测子模块,用于基于所述形变点云特征,预测每个所述面部特征点的颜色向量、透明度系数和透射率系数;
积分子模块,用于基于所述透明度系数和所述透射率系数,对所述多个按照深度值排序的面部特征点的颜色向量进行积分,得到所述像素点的像素值;
着色子模块,用于基于所述像素值对所述像素点进行颜色写入,以在所述面部区域中对所述像素点完成着色。
26.根据权利要求25所述的装置,其特征在于,所述预测子模块包括:
获取单元,用于基于所述面部外观资源的反照率贴图,获取所述面部特征点的反照率向量;
阴影预测单元,用于基于所述面部特征点在所述形变点云特征中的形变点云坐标,预测所述面部特征点的阴影向量;
颜色预测单元,用于基于所述反照率向量和所述阴影向量,预测所述面部特征点的颜色向量。
27.根据权利要求26所述的装置,其特征在于,所述阴影预测单元包括:
预测子单元,用于基于所述面部特征点在所述规范点云特征中的规范点云坐标和所述形变点云坐标,预测所述面部特征点的点法线向量;
变换子单元,用于将所述点法线向量输入阴影特征提取模型,通过所述阴影特征提取模型对所述点法线向量进行变换,得到所述面部特征点的阴影向量,所述阴影特征提取模型用于基于面部特征点的点法线向量预测阴影向量。
28.根据权利要求27所述的装置,其特征在于,所述预测子单元用于:
将所述规范点云坐标和所述形变点云坐标输入视觉距离函数,通过所述视觉距离函数对所述规范点云坐标和所述形变点云坐标进行空间梯度运算,得到所述面部特征点的点法线向量,所述视觉距离函数用于获取所述面部特征点到网格曲面的最近距离。
29.根据权利要求25-28中任一项所述的装置,其特征在于,所述预测子模块包括:
透明度确定单元,用于基于所述面部特征点的渲染半径和渲染偏移量,确定所述面部特征点的透明度系数,所述渲染偏移量表征所述面部特征点的渲染中心与所述像素点的像素中心之间的距离。
30.根据权利要求25-28中任一项所述的装置,其特征在于,所述预测子模块包括:
特征点确定单元,用于对每个所述面部特征点,确定深度值排序位于所述面部特征点之前的至少一个前序特征点;
透射率预测单元,用于基于所述至少一个前序特征点的透明度系数,预测所述面部特征点的透射率系数。
31.根据权利要求25-28中任一项所述的装置,其特征在于,所述积分子模块用于:
将每个面部特征点的所述颜色向量、所述透明度系数和所述透射率系数相乘,得到所述面部特征点的待积分颜色向量;
将所述多个按照深度值排序的面部特征点的待积分颜色向量进行积分,得到所述像素点的像素值。
32.一种点云特征提取模型的训练装置,其特征在于,所述装置包括:
特征提取模块,用于将样本对象的面部点云数据输入点云特征提取模型,得到所述样本对象的面部特征点的形变点云特征,所述点云特征提取模型包括:规范特征提取模型,偏移特征提取模型和形变特征提取模型,所述规范特征提取模型用于将面部特征点从点云空间投影到规范空间,所述偏移特征提取模型用于将面部特征点从所述规范空间投影到偏移空间,所述形变特征提取模型用于将面部特征点从所述偏移空间投影到形变空间,所述形变点云特征表征所述面部特征点在设定表情姿态下与所述样本对象的面部外观资源进行适配的形变特征;
面部渲染模块,用于基于所述形变点云特征,对所述样本对象进行面部渲染,得到所述样本对象呈现所述设定表情姿态的预测面部图像;
损失值获取模块,用于基于所述预测面部图像和所述样本对象呈现所述设定表情姿态的参考面部图像,获取所述点云特征提取模型的训练损失值;
模型训练模块,用于基于所述训练损失值,对所述点云特征提取模型进行训练。
33.根据权利要求32所述的装置,其特征在于,所述特征提取模块用于:
将所述样本对象的任一面部特征点在所述面部点云数据中的原始点云坐标输入所述规范特征提取模型,得到所述面部特征点的规范点云坐标;
将所述规范点云坐标输入所述偏移特征提取模型,得到所述面部特征点的偏移点云坐标;
将所述偏移点云坐标输入所述形变特征提取模型,得到所述面部特征点的形变点云坐标;
将所述样本对象的多个面部特征点的形变点云坐标确定为所述形变点云特征。
34.根据权利要求33所述的装置,其特征在于,所述训练损失值包括以下至少一项:图像颜色损失项,图像特征损失项,面部掩码损失项,形变姿态损失项;其中,所述图像颜色损失项表征所述预测面部图像和所述参考面部图像之间的像素颜色误差,所述图像特征损失项表征所述预测面部图像和所述参考面部图像之间的图像特征误差,所述面部掩码损失项表征所述预测面部图像和所述参考面部图像之间的面部掩码误差,所述形变姿态损失项表征所述形变特征提取模型拟合所述设定表情姿态的训练误差。
35.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求14任一项所述的虚拟对象的面部渲染方法;或,如权利要求15至权利要求17任一项所述的点云特征提取模型的训练方法。
CN202310390200.1A 2023-04-13 2023-04-13 虚拟对象的面部渲染方法及点云特征提取模型的训练方法 Active CN116091676B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310390200.1A CN116091676B (zh) 2023-04-13 2023-04-13 虚拟对象的面部渲染方法及点云特征提取模型的训练方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310390200.1A CN116091676B (zh) 2023-04-13 2023-04-13 虚拟对象的面部渲染方法及点云特征提取模型的训练方法

Publications (2)

Publication Number Publication Date
CN116091676A CN116091676A (zh) 2023-05-09
CN116091676B true CN116091676B (zh) 2023-06-30

Family

ID=86212456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310390200.1A Active CN116091676B (zh) 2023-04-13 2023-04-13 虚拟对象的面部渲染方法及点云特征提取模型的训练方法

Country Status (1)

Country Link
CN (1) CN116091676B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116228943B (zh) * 2023-05-10 2023-07-14 深圳市腾讯计算机系统有限公司 虚拟对象面部重建方法、面部重建网络训练方法及装置
CN116664733B (zh) * 2023-07-28 2024-01-30 腾讯科技(深圳)有限公司 虚拟服装预测方法、装置、设备及计算机可读存储介质
CN116681791B (zh) * 2023-07-28 2023-10-27 江西省科学院能源研究所 基于三维陶瓷模型纹理的二维花纸生成方法及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023050992A1 (zh) * 2021-09-30 2023-04-06 广州视源电子科技股份有限公司 用于人脸重建的网络训练方法、装置、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113538659A (zh) * 2021-07-05 2021-10-22 广州虎牙科技有限公司 一种图像生成方法、装置、存储介质及设备
CN113610971A (zh) * 2021-09-13 2021-11-05 杭州海康威视数字技术股份有限公司 一种细粒度三维模型构建方法、装置及电子设备
CN114092611A (zh) * 2021-11-09 2022-02-25 网易(杭州)网络有限公司 虚拟表情驱动方法及装置、电子设备、存储介质
CN115861525A (zh) * 2022-05-31 2023-03-28 福州大学 基于参数化模型的多视图人脸重建方法
CN115761121A (zh) * 2022-11-10 2023-03-07 网易(杭州)网络有限公司 云雾生成方法、装置及电子设备
CN115953524B (zh) * 2023-03-09 2023-05-23 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023050992A1 (zh) * 2021-09-30 2023-04-06 广州视源电子科技股份有限公司 用于人脸重建的网络训练方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN116091676A (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
US11676342B2 (en) Providing 3D data for messages in a messaging system
US20230386157A1 (en) Generating 3d data in a messaging system
CN116091676B (zh) 虚拟对象的面部渲染方法及点云特征提取模型的训练方法
US11393154B2 (en) Hair rendering method, device, electronic apparatus, and storage medium
US11694392B2 (en) Environment synthesis for lighting an object
US11288857B2 (en) Neural rerendering from 3D models
US11783556B2 (en) Augmented reality content generators including 3D data in a messaging system
US11825065B2 (en) Effects for 3D data in a messaging system
CN108305328A (zh) 虚拟物体渲染方法、系统、介质和计算设备
CN116228943B (zh) 虚拟对象面部重建方法、面部重建网络训练方法及装置
US11816926B2 (en) Interactive augmented reality content including facial synthesis
US20220319127A1 (en) Facial synthesis in augmented reality content for third party applications
WO2021042134A1 (en) Generating 3d data in a messaging system
US20220319231A1 (en) Facial synthesis for head turns in augmented reality content
KR20230127311A (ko) 안경류 디바이스 상에서의 증강 현실 콘텐츠의 기록
CN112206519B (zh) 实现游戏场景环境变化的方法、装置、存储介质及计算机设备
CN116958344A (zh) 虚拟形象的动画生成方法、装置、计算机设备及存储介质
CN112950753A (zh) 虚拟植物显示方法、装置、设备及存储介质
CN116524063B (zh) 光照颜色的计算方法、装置、设备及介质
US20240015263A1 (en) Methods and apparatus to provide remote telepresence communication
GB2432500A (en) Image generation using vertex and pixel processing sections
CN117095126A (zh) 一种虚拟模型的生成方法、装置、计算机设备及存储介质
CN116206040A (zh) 一种获取ao贴图的方法及装置
CN115861519A (zh) 毛发模型的渲染方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40086717

Country of ref document: HK