1.本发明涉及视频中人脸交换的生成领域,具体涉及一种基于向量离散化表示的deepfake生成方法。
背景技术:
2.随着深度学习技术的发展和公共网络环境上个人媒体数据的泛滥,产生了许多伪造换脸视频。而使用深度学习生成伪造换脸视频的技术称之为deepfake。具体来说,该项技术是将源视频的脸替换成为目标视频的脸,并且保证交换后的脸保持在源脸属性信息(表情、光照和背景等等)和目标脸身份信息的不变。目前的生成技术是主要通过自编码器和生成式对抗网络实现的。
3.自编码器生成方式是通过一个共用的编码器和两个源和目标各自的解码器。通过训练,将从源视频帧中的源脸图片和目标脸视频帧中的目标脸图片放入共用的编码器中提取出来人脸通用的特征,然后在经过各自的解码器分别重构为源脸和目标脸图片。换脸是将源脸图像放入训练好共用的编码器然后从目标脸的解码器输出,从而最终得到换脸结果。但是自编码器合成出来的人脸都是在像素级别上进行的操作,使得整个过程会产生伪影,并且合成图像细节不够清晰和图像质量不够稳定。
技术实现要素:
4.本发明为了克服以上技术的不足,提供了一种减少了换脸操作过程产生的伪影的基于向量离散化表示的deepfake生成方法。
5.本发明克服其技术问题所采用的技术方案是:
6.一种基于向量离散化表示的deepfake生成方法,包括如下步骤:
7.a)提取源视频和目标视频的帧,将源视频和目标视频的帧中的人脸进行识别并对齐操作;
8.b)建立网络模型,并使用损失函数优化网络模型;
9.c)将源视频帧中的对齐的人脸图片依次经过编码器、离散向量嵌入单元和解码器后得到换脸后的图片;
10.d)将换脸后的图片经过锐化和融合操作,放入视频帧中;
11.e)重复步骤c)-d),将各个视频帧合并成最终视频。
12.进一步的,步骤a)包括如下步骤:
13.a-1)使用多媒体处理工具ffempg,对源视频vs提取出源视频帧frames,对目标视频v
t
提取出目标视频帧frame
t
;
14.a-2)对源视频帧frames和目标视频帧frame
t
使用s3fd人脸检测算法,分别裁剪出人脸图片p
sface_dection
及p
tface_dection
;
15.a-3)将人脸图片p
sface_dection
及p
tface_dection
使用2dfan人脸对齐算法对人脸特征点进行对齐操作,分别得到对齐的人脸图片p
sface_align
及p
tface_align
,p
si
为p
sface_align
中第i个对
齐人脸图片,p
tj
为p
tface_align
中第j个对齐人脸图片。进一步的,步骤b)包括如下步骤:
16.b-1)建立网络模型,该网络模型由编码器e、源视频帧图片解码器gs、目标视频帧图片解码器g
t
、源视频帧图片离散向量嵌入单元es、目标视频帧图片离散向量嵌入单元e
t
、源视频帧图片判别器ds及目标视频帧图片判别器d
t
构成,编码器e依次由2个残差单元和4个下采样卷积层构成,源视频帧图片解码器gs及目标视频帧图片解码器g
t
均依次由2个残差单元及4个上采样卷积层构成,源视频帧图片离散向量嵌入单元es及目标视频帧图片离散向量嵌入单元e
t
均依次由2个残差单元、transformer模型的attnblock模块和字典向量嵌入函数embedding构成,源视频帧图片判别器ds及目标视频帧图片判别器d
t
构成均依次由2个卷积加激活函数层、3个卷积加激活函数加批归一化层、2个卷积加激活函数层构成;
17.b-2)将p
si
和p
tj
输入编码器e中分别得到编码向量sq及tq,将编码向量sq输入到源视频帧图片离散向量嵌入单元es中通过公式计算得到量化为离散空间z中相近的空间向量zs,式中h为p
si
、p
tj
的高度值,w为p
si
、p
tj
的宽度值,nz为嵌入维度,k为向量个数,将编码向量tq输入到目标视频帧图片离散向量嵌入单元e
t
中通过公式计算得到量化为离散空间z中相近的空间向量z
t
,将空间向量zs输入源视频帧图片解码器gs中得到解码结果sg,将空间向量z
t
输入目标视频帧图片解码器g
t
中得到解码结果tg;
18.b-3)通过公式l1=||s
g-p
si
||2+||t
g-p
tj
||2计算得到损失l1,通过公式l2=||s
g-zs||2+||t
g-z
t
||2计算得到损失l2,将解码结果sg输入到源视频帧图片判别器ds进行判别,将解码结果tg输入到目标视频帧图片判别器d
t
进行判别,利用公式l3=logds(sg)+log(1-ds(p
si
))+logd
t
(tg)+log(1-d
t
(p
tj
))计算重构图片和原来图片的损失l3,将损失l1、损失l2和损失l3反向传播,使用优化器不断对b-1)中网络模型进行迭代调整。
19.进一步的,步骤c)中将源视频帧中对齐的人脸图片p
sface_align
输入步骤b-3)中迭代后的网络模型中,依次经过编码器e、目标视频帧图片离散向量嵌入单元和目标视频帧图片解码器g
t
后得到解码结果t
stog
。
20.进一步的,步骤d)中将解码结果t
stog
经过锐化和融合操作得到多个视频帧framef。
21.进一步的,步骤e)中将多个视频帧framef使用多媒体处理工具ffempg合成最终视频vf。
22.优选的,步骤b-1)中残差单元包括归一化卷积模块及卷积层构成,所述归一化卷积模块依次包括两个归一化层加卷积层,图片依次经过两个归一化层加卷积层及卷积层后的输出结果进行相加操作,所述卷积层的卷积核为3*3,步长为1,填充为1。
23.优选的,步骤b-1)中编码器e的下采样卷积层的卷积核为3*3,步长为2,填充为0;上采样卷积层的卷积核为3*3,步长为1,填充为1,源视频帧图片判别器ds及目标视频帧图片判别器d
t
中卷积的卷积核为4*4,步长为2,填充为1,源视频帧图片判别器ds及目标视频帧图片判别器d
t
中激活函数使用leakyrelu激活函数。
24.本发明的有益效果是:通过提取源视频和目标视频的视频帧,然后对源视频帧依
次经过人脸检测、人脸对齐、训练好的人脸交换网络、人脸锐化和融合、组合视频帧得到最终结果。该方法将编码结果转化为向量离散表示形式,减少了换脸操作过程产生的伪影。同时训练过程中加入的判别器使得解码出来的图片细节更加清晰、质量更加稳定。
附图说明
25.图1为本发明的方法流程图;
26.图2为本发明的预处理过程图;
27.图3为本发明的模型的训练网络图;
28.图4为本发明的模型的测试和后处理过程图;
29.图5为本发明的模型的残差单元结构图;
30.图6为本发明的模型的编码器网络模型图;
31.图7为本发明的模型的解码器网络模型图;
32.图8为本发明的模型的离散空间嵌入过程图;
33.图9为本发明的判别器网络模型图。
具体实施方式
34.下面结合附图1至附图9对本发明做进一步说明。
35.一种基于向量离散化表示的deepfake生成方法,包括如下步骤:
36.a)提取源视频和目标视频的帧,将源视频和目标视频的帧中的人脸进行识别并对齐操作;
37.b)建立网络模型,并使用损失函数优化网络模型;
38.c)将源视频帧中的对齐的人脸图片依次经过编码器、离散向量嵌入单元和解码器后得到换脸后的图片;
39.d)将换脸后的图片经过锐化和融合操作,放入视频帧中;
40.e)重复步骤c)-d),将各个视频帧合并成最终视频。
41.通过将预处理得到的源脸图片,放入训练好的共用的编码器中得到编码结果,为了减少换脸操作过程中产生的伪影,我们将编码结果量化为以离散方式表示形式的空间向量,接着再将离散表示方式的空间向量放入训练好的目标脸解码器中得到换脸结果。将换脸结果经过一系列后处理得到最终视频结果。该方法将编码结果转化为向量离散表示形式,减少了换脸操作过程产生的伪影。同时训练过程中加入的判别器使得解码出来的图片细节更加清晰、质量更加稳定。
42.步骤a)包括如下步骤:
43.a-1)使用多媒体处理工具ffempg,对源视频vs提取出源视频帧frames,对目标视频v
t
提取出目标视频帧frame
t
;
44.a-2)对源视频帧frames和目标视频帧frame
t
使用s3fd人脸检测算法,分别裁剪出人脸图片p
sface_dection
及p
tface_dection
;
45.a-3)将人脸图片p
sface_dection
及p
tface_dection
使用2dfan人脸对齐算法对人脸特征点进行对齐操作,分别得到对齐的人脸图片p
sface_align
及p
tface_align
,p
si
为p
sface_align
中第i个对齐人脸图片,p
tj
为p
tface_align
中第j个对齐人脸图片。步骤b)包括如下步骤:
46.b-1)建立网络模型,该网络模型由编码器e、源视频帧图片解码器gs、目标视频帧图片解码器g
t
、源视频帧图片离散向量嵌入单元es、目标视频帧图片离散向量嵌入单元e
t
、源视频帧图片判别器ds及目标视频帧图片判别器d
t
构成,编码器e依次由2个残差单元和4个下采样卷积层构成,源视频帧图片解码器gs及目标视频帧图片解码器g
t
均依次由2个残差单元及4个上采样卷积层构成,源视频帧图片离散向量嵌入单元es及目标视频帧图片离散向量嵌入单元e
t
均依次由2个残差单元、transformer模型的attnblock模块和字典向量嵌入函数embedding构成,源视频帧图片判别器ds及目标视频帧图片判别器d
t
构成均依次由2个卷积加激活函数层、3个卷积加激活函数加批归一化层、2个卷积加激活函数层构成;
47.b-2)将p
si
和p
tj
输入编码器e中分别得到编码向量sq及tq,将编码向量sq输入到源视频帧图片离散向量嵌入单元es中通过公式计算得到量化为离散空间z中相近的空间向量zs,式中h为p
si
、p
tj
的高度值,w为p
si
、p
tj
的宽度值,nz为嵌入维度,k为向量个数,将编码向量tq输入到目标视频帧图片离散向量嵌入单元e
t
中通过公式计算得到量化为离散空间z中相近的空间向量z
t
,将空间向量zs输入源视频帧图片解码器gs中得到解码结果sg,将空间向量z
t
输入目标视频帧图片解码器g
t
中得到解码结果tg;
48.b-3)通过公式l1=||s
g-p
si
||2+||t
g-p
tj
||2计算得到损失l1,通过公式l2=||s
g-zs||2+||t
g-z
t
||2计算得到损失l2,将解码结果sg输入到源视频帧图片判别器ds进行判别,将解码结果tg输入到目标视频帧图片判别器d
t
进行判别,利用公式l3=logds(sg)+log(1-ds(p
si
))+logd
t
(tg)+log(1-d
t
(p
tj
))计算重构图片和原来图片的损失l3,将损失l1、损失l2和损失l3反向传播,使用优化器不断对b-1)中网络模型进行迭代调整。
49.步骤c)中将源视频帧中对齐的人脸图片p
sface_align
输入步骤b-3)中迭代后的网络模型中,依次经过编码器e、目标视频帧图片离散向量嵌入单元和目标视频帧图片解码器g
t
后得到解码结果t
stog
。
50.步骤d)中将解码结果t
stog
经过锐化和融合操作得到多个视频帧framef。
51.步骤e)中将多个视频帧framef使用多媒体处理工具ffempg合成最终视频vf。步骤b-1)中残差单元包括归一化卷积模块及卷积层构成,所述归一化卷积模块依次包括两个归一化层加卷积层,图片依次经过两个归一化层加卷积层及卷积层后的输出结果进行相加操作,所述卷积层的卷积核为3*3,步长为1,填充为1。步骤b-1)中编码器e的下采样卷积层的卷积核为3*3,步长为2,填充为0;上采样卷积层的卷积核为3*3,步长为1,填充为1,源视频帧图片判别器ds及目标视频帧图片判别器d
t
中卷积的卷积核为4*4,步长为2,填充为1,源视频帧图片判别器ds及目标视频帧图片判别器d
t
中激活函数使用leaky relu激活函数。
52.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的
保护范围之内。
技术特征:
1.一种基于向量离散化表示的deepfake生成方法,其特征在于,包括如下步骤:a)提取源视频和目标视频的帧,将源视频和目标视频的帧中的人脸进行识别并对齐操作;b)建立网络模型,并使用损失函数优化网络模型;c)将源视频帧中的对齐的人脸图片依次经过编码器、离散向量嵌入单元和解码器后得到换脸后的图片;d)将换脸后的图片经过锐化和融合操作,放入视频帧中;e)重复步骤c)-d),将各个视频帧合并成最终视频。2.根据权利要求1所述的基于向量离散化表示的deepfake生成方法,其特征在于,步骤a)包括如下步骤:a-1)使用多媒体处理工具ffempg,对源视频v
s
提取出源视频帧frame
s
,对目标视频v
t
提取出目标视频帧frame
t
;a-2)对源视频帧frame
s
和目标视频帧frame
t
使用s3fd人脸检测算法,分别裁剪出人脸图片p
sface_dection
及p
tface_dection
;a-3)将人脸图片p
sface_dection
及p
tface_dection
使用2dfan人脸对齐算法对人脸特征点进行对齐操作,分别得到对齐的人脸图片p
sface_align
及p
tface_align
,为p
sface_align
中第i个对齐人脸图片,p
tj
为p
tface_align
中第j个对齐人脸图片。3.根据权利要求2所述的基于向量离散化表示的deepfake生成方法,其特征在于,步骤b)包括如下步骤:b-1)建立网络模型,该网络模型由编码器e、源视频帧图片解码器g
s
、目标视频帧图片解码器g
t
、源视频帧图片离散向量嵌入单元e
s
、目标视频帧图片离散向量嵌入单元e
t
、源视频帧图片判别器d
s
及目标视频帧图片判别器d
t
构成,编码器e依次由2个残差单元和4个下采样卷积层构成,源视频帧图片解码器g
s
及目标视频帧图片解码器g
t
均依次由2个残差单元及4个上采样卷积层构成,源视频帧图片离散向量嵌入单元e
s
及目标视频帧图片离散向量嵌入单元e
t
均依次由2个残差单元、transformer模型的attnblock模块和字典向量嵌入函数embedding构成,源视频帧图片判别器d
s
及目标视频帧图片判别器d
t
构成均依次由2个卷积加激活函数层、3个卷积加激活函数加批归一化层、2个卷积加激活函数层构成;b-2)将和p
tj
输入编码器e中分别得到编码向量s
q
及t
q
,将编码向量s
q
输入到源视频帧图片离散向量嵌入单元e
s
中通过公式计算得到量化为离散空间z中相近的空间向量z
s
,式中h为p
tj
的高度值,w为p
tj
的宽度值,n
z
为嵌入维度,k为向量个数,将编码向量t
q
输入到目标视频帧图片离散向量嵌入单元e
t
中通过公式计算得到量化为离散空间z中相近的空间向量z
t
,将空间向量z
s
输入源视频帧图片解码器g
s
中得到解码结果s
g
,将空间向
量z
t
输入目标视频帧图片解码器g
t
中得到解码结果t
g
;b-3)通过公式计算得到损失l1,通过公式l2=||s
g-z
s
||2+||t
g-z
t
||2计算得到损失l2,将解码结果s
g
输入到源视频帧图片判别器d
s
进行判别,将解码结果t
g
输入到目标视频帧图片判别器d
t
进行判别,利用公式计算重构图片和原来图片的损失l3,将损失l1、损失l2和损失l3反向传播,使用优化器不断对b-1)中网络模型进行迭代调整。4.根据权利要求3所述的基于向量离散化表示的deepfake生成方法,其特征在:步骤c)中将源视频帧中对齐的人脸图片p
sface_align
输入步骤b-3)中迭代后的网络模型中,依次经过编码器e、目标视频帧图片离散向量嵌入单元和目标视频帧图片解码器g
t
后得到解码结果t
stog
。5.根据权利要求4所述的基于向量离散化表示的deepfake生成方法,其特征在:步骤d)中将解码结果t
stog
经过锐化和融合操作得到多个视频帧frame
f
。6.根据权利要求5所述的基于向量离散化表示的deepfake生成方法,其特征在:步骤e)中将多个视频帧frame
f
使用多媒体处理工具ffempg合成最终视频v
f
。7.根据权利要求1所述的基于向量离散化表示的deepfake生成方法,其特征在于:步骤b-1)中残差单元包括归一化卷积模块及卷积层构成,所述归一化卷积模块依次包括两个归一化层加卷积层,图片依次经过两个归一化层加卷积层及卷积层后的输出结果进行相加操作,所述卷积层的卷积核为3*3,步长为1,填充为1。8.根据权利要求1所述的基于向量离散化表示的deepfake生成方法,其特征在于:步骤b-1)中编码器e的下采样卷积层的卷积核为3*3,步长为2,填充为0;上采样卷积层的卷积核为3*3,步长为1,填充为1,源视频帧图片判别器d
s
及目标视频帧图片判别器d
t
中卷积的卷积核为4*4,步长为2,填充为1,源视频帧图片判别器d
s
及目标视频帧图片判别器d
t
中激活函数使用leaky relu激活函数。
技术总结
一种基于向量离散化表示的deepfake生成方法,通过提取源视频和目标视频的视频帧,然后对源视频帧依次经过人脸检测、人脸对齐、训练好的人脸交换网络、人脸锐化和融合、组合视频帧得到最终结果。该方法将编码结果转化为向量离散表示形式,减少了换脸操作过程产生的伪影。同时训练过程中加入的判别器使得解码出来的图片细节更加清晰、质量更加稳定。的图片细节更加清晰、质量更加稳定。的图片细节更加清晰、质量更加稳定。
技术研发人员:舒明雷 曹伟 陈达 刘丽 许继勇 孔祥龙
受保护的技术使用者:齐鲁工业大学
技术研发日:2021.11.23
技术公布日:2022/3/7