一种基于多模态相关性的人脸动画生成方法及系统与流程

专利2022-05-10  32



1.本发明涉及数字图像处理及人工智能技术交叉领域,具体涉及一种基于多模态相关性的人脸动画生成方法及系统。


背景技术:

2.多模态驱动的人脸动画生成旨在利用不同驱动模态的信息,生成高自然度以及自然流畅的面部动画。该技术在人机交互、虚拟现实等场景具有较强的现实意义和应用价值。目前的人机交互通常是通过语音或者文本进行交流,然而相较于人与人交互的过程,现有的人机交互方式带给人的体验完全不同。事实上,人与人交互中的面部表情、肢体动作、语气语调等对交互体验有着极大的影响,相同的内容通过不同表达方式会给人完全不同的感受。目前基于人脸动画生成技术的人机交互已经在很多现实场景得到应用,如人工智能主播、虚拟客服等。
3.作为人脸动画生成技术的一种,基于语音驱动的人脸动画生成在影视、游戏等行业可以提高用户体验。相较于视频驱动的人脸动画生成技术,由于语音数据更易于获取,因此基于语音驱动的方法可以大大提高相关产业的生产力。人脸动画相关技术通常需要应用到与人交互的场景中,因此对于结果的实时性、生成质量等方面具有极高的要求。对于语音驱动的人脸动画生成任务而言,由于没有视频驱动的方式所能提供的丰富的面部信息,因此如何生成真实自然的,不机械化的结果仍然是亟待解决的问题。语音驱动人脸动画生成综合了多个研究领域的技术,如语音识别、序列模型、人脸特征表示以及生成模型等等。之前的研究大多从提高语音到面部表情映射的准确度以及提高生成模型生成结果的质量入手,使用lstm等序列模型提高语音到人脸中间表示如人脸特征点、3d人脸系数等的准确度,再利用生成模型从中间表示生成视频结果。然而现有方法在语音到面部表情映射阶段没有有效利用输入视频数据中存在的多模态的信息,导致输入视频中说话人的说话风格信息丢失。另外,输入视频数据中存在准确的语音到人脸表情映射关系,现有方法也未考虑利用驱动语音与输入视频中语音的联系,来生成更准确的人脸表情。


技术实现要素:

4.为了解决上述技术问题,本发明提供了一种基于多模态相关性的人脸动画生成方法及系统。
5.本发明的方法所采用的技术方案是:一种基于多模态相关性的人脸动画生成方法,包括以下步骤:
6.步骤1:搭建基于多模态相关性的语音到表情映射网络,对2d说话人视频数据集进行预处理后,使用自监督方法进行语音到表情映射网络训练,用损失函数指导基于多模态相关性的语音到表情映射网络进行训练,获得训练好的语音到表情映射网络;
7.所述多模态相关性的语音到表情映射网络,包括一个语音transformer网络t
audio
、一个表情transformer网络t
exp
和一个跨模态transformer网络t
cross

8.所述语音transformer网络t
audio
、表情transformer网络t
exp
和跨模态transformer网络t
cross
结构均相同,由n个self

attention层组成,每个self

attention层又包括一个多头自注意力层以及一个前馈层;
9.所述语音transformer网络t
audio
用来提取语音模态的自相关表示,输入为源语音特征以及驱动语音特征在序列维度拼接得到的组合特征;表情transformer网络t
exp
用来提取图像模态的人脸表情自相关表示,输入为源视频的表情参数;跨模态transformer网络t
cross
用来提取语音模态以及图像模态复合特征的自相关表示,输入为t
audio
和t
exp
得到的自相关特征在序列维度拼接得到的复合特征;
10.步骤2:获取一段目标人物说话的源视频以及一段驱动语音输入;
11.步骤3:将说话视频以及驱动语音进行预处理,从说话视频中得到表情特征序列以及源语音特征序列,从驱动语音中得到驱动语音特征序列;
12.步骤4:将驱动语音特征序列和源语音特征序列在序列维度拼接得到重组语音特征序列,输入到语音transformer网络t
audio
中得到重组语音的自相关表示;
13.步骤5:将步骤3得到的表情特征序列输入到表情transformer网络t
exp
中计算表情序列的自相关表示;
14.步骤6:将步骤4和步骤5中得到2种自相关表示在序列维度拼接后输入到跨模态transformer网络t
cross
中,进行多模态相关计算,取特定序号的子序列,得到预测的表情特征序列;
15.步骤7:将预测的表情特征序列按顺序替换步骤3中从视频中提取的人脸3d参数的表情特征部分,得到新的重组的3d人脸特征表示,并根据3d人脸参数计算3d人脸网格;
16.步骤8:渲染得到的3d人脸网格得到初步的2d渲染结果,并根据3d人脸模型与人脸关键点的对应关系对2d渲染图像进行截取,得到下半张脸的2d人脸图像;
17.步骤9:使用神经渲染网络对步骤8的下半张脸的2d人脸图像进行精细化,得到下半张脸的2d人脸图像序列;根据步骤1预处理得到的人脸关键点信息,使用生成的下半张脸图像替换源视频帧中下半张脸部分,得到2d人脸图像序列;
18.步骤10:使用ffmpeg拼接2d人脸图像序列与步骤2输入的驱动语音,得到视频输出结果。
19.本发明的系统所采用的技术方案是:一种基于多模态相关性的人脸动画生成系统,包括以下模块:
20.模块1,用于搭建基于多模态相关性的语音到表情映射网络,对2d说话人视频数据集进行预处理后,使用自监督方法进行语音到表情映射网络训练,用损失函数指导基于多模态相关性的语音到表情映射网络进行训练,获得训练好的语音到表情映射网络;
21.所述多模态相关性的语音到表情映射网络,包括一个语音transformer网络t
audio
、一个表情transformer网络t
exp
和一个跨模态transformer网络t
cross

22.所述语音transformer网络t
audio
、表情transformer网络t
exp
和跨模态transformer网络t
cross
结构均相同,由n个self

attention层组成,每个self

attention层又包括一个多头自注意力层以及一个前馈层;
23.所述语音transformer网络t
audio
用来提取语音模态的自相关表示,输入为源语音特征以及驱动语音特征在序列维度拼接得到的组合特征;表情transformer网络t
exp
用来提
取图像模态的人脸表情自相关表示,输入为源视频的表情参数;跨模态transformer网络t
cross
用来提取语音模态以及图像模态复合特征的自相关表示,输入为t
audio
和t
exp
得到的自相关特征在序列维度拼接得到的复合特征;
24.模块2,用于获取一段目标人物说话的源视频以及一段驱动语音输入;
25.模块3,用于将说话视频以及驱动语音进行预处理,从说话视频中得到表情特征序列以及源语音特征序列,从驱动语音中得到驱动语音特征序列;
26.模块4,用于将驱动语音特征序列和源语音特征序列在序列维度拼接得到重组语音特征序列,输入到语音transformer网络t
audio
中得到重组语音的自相关表示;
27.模块5,用于将模块3得到的表情特征序列输入到表情transformer网络t
exp
中计算表情序列的自相关表示;
28.模块6,用于将模块4和模块5中得到2种自相关表示在序列维度拼接后输入到跨模态transformer网络t
cross
中,进行多模态相关计算,取特定序号的子序列,得到预测的表情特征序列;
29.模块7,用于将预测的表情特征序列按顺序替换模块3中从视频中提取的人脸3d参数的表情特征部分,得到新的重组的3d人脸特征表示,并根据3d人脸参数计算3d人脸网格;
30.模块8,用于渲染得到的3d人脸网格,得到初步的2d渲染结果;并根据3d人脸模型与人脸关键点的对应关系对2d人脸图像进行截取,得到下半张脸的2d人脸图像
31.模块9,用于使用神经渲染网络对模块8的2d人脸图像进行精细化,得到2d人脸图像序列;根据模块1预处理得到的人脸关键点信息,使用生成的下半张脸图像替换源视频帧中下半张脸部分,得到2d人脸图像序列;
32.模块10,用于使用ffmpeg拼接2d人脸图像序列与模块2输入的驱动语音,得到视频输出结果。
33.本发明提出一种全新的基于transformer的架构进行语音驱动人脸动画生成,该架构可以在特征映射阶段提供时序上的稳定性,保证生成结果的多样和平滑。另外,受益于transformer架构并行计算的特点,与之前的方法相比,本发明的语音到表情映射可以达到实时性。
34.本发明提出显式地考虑驱动音频与源视频的联系,即多模态相关。区别于之前的方法使用源视频来微调网络的方法,本发明提出的方法利用了源语音与源视频本身固有的同步性,从而在对驱动语音进行表情预测时得到更准确的结果。另外,单语音模态驱动的方法只能在唇部上生成较好的动画结果,而引入源视频可以提高除唇部之外的整个面部表现的真实性,从而生成更符合原始说话人说话方式的动画结果。
附图说明
35.图1为本发明实施例的方法原理图。
36.图2为本发明实施例的多模态相关性的语音到表情映射网络结构示意图。
37.图3为本发明实施例中进行人脸动画生成的结果图一。
38.图4为为本发明实施例中进行人脸动画生成的结果图二。
具体实施方式
39.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
40.如图1所示,本发明提出的一种基于多模态相关性的人脸动画生成方法,包含如下步骤:
41.步骤1:搭建基于多模态相关性的语音到表情映射网络,对2d说话人视频数据集进行预处理后,使用自监督方法进行语音到表情映射网络训练,用损失函数指导基于多模态相关性的语音到表情映射网络进行训练,获得训练好的语音到表情映射网络;
42.请见图2,本实施例提供的多模态相关性的语音到表情映射网络架构,包括一个语音transformer网络t
audio
,一个表情transformer网络t
exp
以及一个跨模态transformer网络t
cross

43.语音transformer网络t
audio
用来提取语音模态的自相关表示,输入为源语音特征以及驱动语音特征在序列维度拼接得到的组合特征;表情transformer网络t
exp
用来提取图像模态的人脸表情自相关表示,输入为源视频的表情参数;跨模态transformer网络t
cross
用来提取语音模态以及图像模态复合特征的自相关表示,输入为t
audio
和t
exp
得到的自相关特征在序列维度拼接得到的复合特征;本实例中所使用的transformer网络结构均相同,区别仅在于输入/输出维度的不同;具体的,每个transformer网络由n个self

attention层组成,本实例中n=10;每个self

attention层又包括一个多头自注意力层以及一个前馈层;在self

attention层中对输入的query,key计算相关性attn,与value进行矩阵乘法mat

mul后得到相关性表示;公式化表述为,对于输入序列x=(x1,x2,...,x
n
)∈r
n
×
m
,其中n为序列长度,m为每个样本的特征维度,相关表示通用计算公式为x

∈r
n
×
m
,对于本实例中采用的自相关计算方式,q,k,v均为输入序列x,其中
×
表示矩阵乘法。
44.本实施例中数据预处理:输入的源视频记为v,首先使用开源音视频处理工具ffmpeg以25fps的帧速率截取视频帧,得到的视频帧序列v=(v1,v2,...,v
n
),其中n为视频帧的数量,并提取出视频中的源语音a;对视频帧序列的每一帧,使用开源人脸检测框架mtcnn进行人脸识别,对于视频帧中存在零个或两个及以上人脸的视频,从数据集中删除此类数据;对于每个视频帧都仅检测到一个人脸的视频,按人脸检测框将视频帧中心裁剪成256
×
256像素的大小,得到裁剪后的视频帧序列并将mtcnn检测到的人脸关键点进行保存;使用“accurate 3d face reconstruction with weakly

supervised learning

from single image to image set”中的3d人脸重建方法计算裁剪后视频帧对应的3d人脸参数其中α
i
,β
i
,δ
i

i
,p
i
分别表示3d人脸参数化模型的几何参数,表情参数,光照参数,纹理参数以及变换参数;将每一帧提取出的3d人脸参数中的表情分量单独提取出来形成表情序列β=(β1,β2,...β
n
);对于语音部分,使用开源语音处理库python_speech_features提取音频a的mel频率倒谱系数(mfcc),然后对音频mfcc特征使用长度为8,步长为4的滑动窗口进
行切分,并将每个切片的mfcc在通道维度拼接,从而得到与视频帧数n相同的语音切片a=(a1,a2,...a
n
);
45.本实施例的网络前向计算过程:由于使用自监督的训练方式,需要选定一个长度n_position(n_position<n)用于分割训练和测试数据,将表情序列β中长度为n_position的子序列β
train
=(β1,β2,...β
n_position
)作为表情transformer t
exp
的输入,β
pred
=(β
n_position 1
,...β
n
)作为回归的真值groundtruth;语音切片序列a作为语音transformer t
audio
的输入,其中a
train
=(a1,a2,...a
n_position
)为与表情序列匹配的语音切片序列,等同于测试时的源语音输入,a
pred
=(a
n_position 1
,a
n_position 2
,...a
n
)的部分为需要进行表情预测的语音切片序列,等同于测试时的驱动语音输入;之后将两个序列β
train
,a在序列维度拼接,得到长度为n
position
n的复合序列,将该复合序列作为跨模态transformert
cross
的输入,通过自相关计算得到长度为n
positio
n n的结果序列r=(r1,r2,...r
n_position n
),根据输入序列的组合方式以及跨模态transformer的计算方式,结果序列中的子集即为预测的表情序列;
46.本实施例的损失函数计算,使用反向传播方法训练基于多模态相关性的语音到表情映射网络;计算预测的表情序列与β
pred
做均方误差损失(mse),即通过反向传播算法训练语音transformer、表情transformer以及跨模态transformer,观察训练结果的损失函数,当损失值连续5轮不降低的时候停止训练;
47.步骤2:获取包含一段人物的说话视频以及一段驱动的语音输入;
48.步骤3:将说话视频以及驱动语音使用与步骤1相同的数据预处理方法,从说话视频中得到长度为n_seed的表情序列以及长度为n_seed的源语音mfcc特征序列,从驱动语音中得到长度为n_position的驱动语音mfcc特征序列;
49.步骤4

6为表情预测阶段,具体过程和图示参考图2;
50.步骤4:将驱动语音mfcc特征序列和源语音mfcc特征序列在序列维度拼接得到重组mfcc,输入到语音transformer中得到重组语音的自相关表示;
51.本实施例的步骤4包括如下操作:
52.步骤4.1:将步骤3得到的驱动语音mfcc特征序列(图中序列长度为3)以及源语音mfcc特征序列(图中序列长度为6)在序列维度拼接,得到复合mfcc特征(图中序列长度为9);
53.步骤4.2:将复合mfcc输入到一个语音transformer当中,通过transformer编码器中多头注意力层以及前馈层后,得到具有自相关性的语音特征;
54.步骤5:将步骤3得到的表情序列输入到表情transformer t
exp
中计算表情的自相关表示;
55.步骤6:将步骤4和步骤5中得到2种自相关表示在序列维度拼接后输入到跨模态transformer网络中,进行多模态相关计算,取特定序号的子序列,得到预测的表情特征序列;
56.本实施例的步骤6包含如下操作:
57.步骤6.1:将步骤4得到的语音自相关表示以及步骤5得到的表情自相关表示在序列维度上进行拼接,得到复合特征序列(图中序列长度为15);
58.步骤6.2:将拼接后的复合特征输入到跨模态transformer中,计算复合特征的自相关表示;
59.步骤6.3:得到的复合特征自相关表示中,取计算了驱动语音与源语音以及源表情系数相关性的部分作为结果,该结果的序列长度与预处理阶段计算的驱动语音滑动窗口数量相同(图中序列长度为3);
60.步骤4

6中所有transformer模型架构均基于“attention is all you need”,具体细节见图2;语音transformer由n个self

attention层组成,本实例中n=10;每个self

attention层又包括一个多头自注意力层以及一个前馈层;在self

attention层中对输入的序列进行相关性计算并得到相关性表示;具体的,对于输入序列x=(x1,x2,...,x
n
)∈r
n
×
m
,其中n为序列长度,m为每个样本的特征维度,相关表示通用计算公式为x

∈r
n
×
m
,对于本实例中采用的自相关计算方式,q,k,v均为输入序列x,其中
×
表示矩阵乘法;
61.步骤7:将预测的表情特征序列按顺序替换步骤3中人脸3d参数的表情特征部分,得到新的3d人脸参数,并根据3d人脸参数计算3d人脸网格;
62.步骤8:使用光栅化方法渲染得到的3d人脸网格,得到初步的2d渲染结果;并根据3d人脸模型与人脸关键点的对应关系对2d渲染图像进行截取,得到下半张脸的2d人脸图像;
63.本实施例的步骤8包含如下操作:
64.步骤8.1:使用光栅化方式渲染步骤8得到的重组人脸参数序列,得到初步渲染结果;
65.步骤8.2:根据3d人脸网格与2d人脸关键点的对应关系,计算重组人脸参数渲染结果中人脸关键点位置,并根据人脸关键点截取下半张脸的2d人脸图像;
66.步骤9:使用神经渲染网络对步骤8的到的2d人脸图像进行精细化,得到下半张脸的2d人脸图像序列;根据步骤1预处理得到的人脸关键点信息,使用生成的下半张脸图像替换源视频帧中下半张脸部分,得到2d人脸图像序列;
67.本实施例的步骤9包含如下操作:
68.步骤9.1:使用“photorealistic audio

driven video portraits”中的神经渲染网络,输入下半张脸的图片,得到精细化的下半张脸图片序列;
69.步骤9.2:将精细化的下半张脸图片序列按步骤3预处理部分使用mtcnn得到的关键点位置信息,转回到步骤3预处理部分使用ffmpeg截取得到的视频帧上,得到2d人脸图像序列;
70.步骤10:使用ffmpeg拼接2d人脸图像序列与步骤2输入的驱动语音,得到视频输出结果。
71.请见图3和图4,为本发明提出人脸动画生成方法的结果。本实例使用两段测试音频,均从其他说话视频中提取得到。对每段测试音频,本实例使用三段视频进行测试。同一幅图为使用同一驱动语音,不同行代表使用不同源视频测试得到的结果。可以看到,同一段
驱动音频在使用不同的源视频时产生的唇部运动近似,并且生成的说话视频自然流畅。
72.应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
转载请注明原文地址:https://doc.8miu.com/read-1200293.html

最新回复(0)