一种基于表征对比预测学习的深度伪造视频检测方法与流程

专利2022-05-09  107


本发明涉及计算机应用技术领域,一种基于表征对比预测学习的深度伪造视频检测方法。



背景技术:

近年来,由于短视频的迅猛发展,互联网的流量已经从文本页面急剧地转移到视频文件,人们获取的信息量也呈指数增长。2017年,名为“deepfake”的深度伪造技术的出现颠覆了人们“眼见为实”的认知。深度伪造技术实际上是一种人脸交换技术,顾名思义,也就是把视频中的一张脸替换成另一张脸。这种伪造技术使用门槛低,可以将社交媒体中的视频数据用于各种目的。网友将社交媒体中的视频人脸替换为不同的女明星用于娱乐,此外,电视剧制作过程也使用深度伪造技术更换主角的人脸。当深度伪造技术被滥用,会对个人隐私,构成威胁。这些深度伪造技术是人工智能技术与视频技术的结合,有着强大的伪造效果,以至于我们肉眼无法辨别真假视频。如果深度伪造视频在互联网上高速传播,伪造信息的影响会在瞬间被放大1000万倍。因此,如何使用人工智能技术检测深度伪造视频,是亟待解决的问题。

在深度伪造视频的生成过程中,用于训练的闭眼人脸的数据远少于睁眼的数据,这导致生成的视频中眨眼频率远低于真实视频。文献“yuezunli,ming-chingchangandsiweilyu.inictuoculi:exposingaicreatedfakevideosbydetectingeyeblinking.inproceedingofieeeinternationalworkshoponinformationforensicsandsecurity,pp.1-7,2018”提出一种基于眨眼频率来检测深度伪造视频的方法。文献“afchardarius,nozickvincent,yamagishijunichi,andechizenisao.mesonet:acompactfacialvideoforgerydetectionnetwork.inproceedingofieeeinternationalworkshoponinformationforensicsandsecurity,pp.1–7,2018”提出一种介观网络提取空间的介观特征来进行伪造视频的检测。由于视频的帧间存在时序信息,文献“陈鹏,梁涛,刘锦,戴娇,韩冀中.融合全局时序和局部空间特征的伪造人脸视频检测方法.信息安全学报,vol.5,no.2,2020”提出了将时序特征和空间特征结合的方法检测视频的真假。

现有的伪造视频生成技术主要包括face2face,deepfakes,faceswap,neuraltextures,refinedalgorithm。以上的方法的检测鲁棒性不理想,不能很好的检测视觉质量高的视频,如使用refinedalgorithm生成的视频,在跨数据库进行视频检测时,检测性能下降。现实生活中的大多数场景都是跨数据库的检测,需要我们检测的视频通常不是训练数据库当中的视频。考虑到实际应用的问题,本发明旨在提高深度伪造视频的检测鲁棒性,提出了一种基于表征对比预测学习的深度伪造视频检测方法。



技术实现要素:

本发明提出了一种基于表征对比预测学习的深度伪造视频检测方法,并通过分阶段训练的方式进一步优化模型,可以检测不同视觉质量的深度伪造视频,并且具有一定的鲁棒性。主要包括三大内容:

(1)提出一种基于表征学习的卷积神经网络人脸表征模型;

(2)提出一种基于对比预测学习的时序人脸回归预测方法;

(3)提出一种分阶段式训练的深度伪造视频检测方案。

具体内容如下:

(1)提出一种基于表征学习的卷积神经网络人脸表征模型:该模型通过编码多个时间点共享的信息来学习特征,同时丢弃局部信息,得到人脸的向量表示。

该表征模型由四个模块构成,每个模块包含一个卷积层,一个激活层,一个批量归一化层,一个池化层构成,各个模块的参数如图1所示,在第四个模块之后使用一个全连接层得到人脸的向量表示。

第一个模块的卷积核的大小是3*3,一张256*256*3大小的人脸图像通过第一个卷积核之后得到254*254*8大小的特征图。卷积操作的计算公式如下所示:

其中*表示卷积计算,表示第l层的第j张人脸特征图,表示第l-1层的第i张人脸特征图,表示用来连接第l层的第i张输入人脸特征图和第j张输出特征图的卷积核,表示第l层的第j张人脸特征图的偏置量。卷积层之后使用了relu函数作为激活函数,激活函数的公式如下:

r(x)=max(0,x)(2)

其中x代表输入的人脸特征图。为了对人脸特征图进行归一化,本发明在激活层之后设置了批量归一化层。对于一层具有k维的人脸特征向量x=(x(1)…x(k)),对每一维去做归一化,其公式可表示为:

其中e[x(k)]表示对数据x(k)求平均值,表示对数据x(k)求标准差。人脸特征图经过批量归一化层之后,所有的数据都有确定的均值和方差,这样不仅加快模型的收敛速度,同时也可以防止模型的过拟合。最后为了对人脸数据进行降维,本发明对人脸特征图进行池化操作,其公式可表示为:

其中m,n为对应的池化核覆盖区域,第一模块的池化层的核的大小为2,那么覆盖的区域就是2*2的区域。最大池化操作就是选择特征图中2*2的区域里的最大值,随后移动窗口,选择其他区域的值。池化层不仅能提高计算速度,也能提高所提取人脸特征的鲁棒性。经过四个模块的操作之后,使用全连接层,把人脸特征编码成128维的特征向量。

(2)提出一种基于对比预测学习的时序人脸回归预测方法:得到人脸的向量表示之后,使用对比预测的方法,对时序的人脸数据进行预测,真实视频中的人脸是表情自然丰富具有感染力的,而虚假视频中的人脸表情是僵硬不自然的,经过预测之后,对于真实视频,预测帧会接近于视频中真实存在的帧,而对于虚假视频,不自然的人脸表情会导致预测帧不准确,从而使得预测帧与视频中已存在的帧之间的相关性较低,最后通过对比预测帧和已存在的帧之间的相关性来建模。

每个视频取t s帧人脸,经过表征学习,得到t s帧人脸的向量表示为f={f(x1),f(x2)…f(xt)…f(xt s)}。本发明取前t帧人脸数据预测s帧人脸数据。预测是基于gru网络,该网络是一个时间记忆的卷积神经网络,经过gru网络之后可以回归得到预测的人脸数据。其公式可表示为:

ct=gpre(f(xi)),i≤t(5)

在这个回归预测的过程中,前t帧人脸的向量表示在gru网络中逐层传递信息,gru保证了时间信息在时间传播过程中不会丢失。预测模型将t帧人脸编码信息进行总结,并生成上下文潜在表示ct,将ct映射得到预测的后s帧人脸的信息,其公式可表示为:

本发明将预测的人脸向量表示和视频中的人脸向量f(xt s)进行对比,其公式可表示为:

如果是假视频,r值接近于0,如果是真视频,r值接近于1,模型的损失函数可表示为:

其中yj代表视频的标签,本发明将假视频的标签设为0,真视频的标签设为1。通过极小化ln,来训练模型。

(3)提出一种分阶段式训练的深度伪造视频检测方案:如图2所示,该方案通过两阶段的训练,得到具有鲁棒性的深度伪造视频检测模型。

第一阶段是源训练任务,训练的目的是得到四个模型,这四个模型初步学习四种伪造视频的特征。使用真实视频和neuraltextures生成的假视频进行训练,得到模型1。使用真实视频和deepfakes生成的假视频进行训练,得到模型2。使用真实视频和face2face生成的假视频进行训练,得到模型3。使用真实视频和faceswap生成的假视频进行训练,得到模型4。这四个模型并行训练,互不干扰。

第二阶段是目标训练任务,训练的目的是得到一个融合模型,进一步学习伪造视频的特征,从而提升模型的鲁棒性。将第一阶段已经得到的模型,嵌入到第二阶段的训练任务中,实现参数的初始化迁移,再进行进一步的训练学习。两个阶段的训练方式一致,但是数据分配不同。第二阶段的训练任务也是二分类,使用真实视频作为正样本,使用neuraltextures生成的假视频、deepfakes生成的假视频、face2face生成的假视频和faceswap生成的假视频四种不同类别的伪造视频作为负样本,得到第二阶段的模型。经过两个阶段的训练之后,模型整合了多个伪造视频类别的信息,有利于模型提高鲁棒性,从而进行跨数据库的检测。

附图说明

图1为本发明工作网络结构图。

图2为本发明工作流程图。

具体实施方式

本发明是一种基于表征对比预测学习的深度伪造视频检测方法。

开发语言是python,开发环境是win10,深度学习框架是keras,数据集是:faceforensics 和celeb-df。faceforensics 数据集一共5000个视频,包括1000个真实视频,1000个neuraltextures生成的假视频,1000个deepfakes生成的假视频,1000个face2face生成的假视频,1000个faceswap生成的假视频。celeb-df数据集一共6529个视频。890个真是视频,5639个refinedalgorithm生成的假视频。具体步骤如下:

步骤一:人脸数据预处理

步骤一的输入是视频,输出是连续的帧序列。首先下载faceforensics 和celeb-df数据集,在python环境中安装opencv-python和dlib,使用opencv对数据集faceforensics 的所有视频进行帧提取的操作,所有连续帧保存在视频对应的文件夹。由于深度伪造视频篡改的部分是人脸,只需要对人脸区域进行分析,使用dlib对所有的连续帧进行人脸提取的操作。然后进行数据清洗,如果dlib在一帧图像中提取出了两张人脸,那么人脸序列的顺序将会被打乱,数据清晰过程将删除这类视频数据。最后将数据集以6:2:2的比例划分为训练集、验证集和测试集。

步骤二:人脸表征

步骤二的输入是人脸数据,输出是人脸数据的向量表示。首先使用opencv-python将人脸数据处理成256*256*3的统一,每个视频取t s帧人脸,然后将人脸数据输入到卷积神经网络人脸表征模型,经过四个卷积层,四个激活层,四个批量归一化层,四个池化层,一个全连接层之后,每张人脸转换成128维的向量表示f={f(x1),f(x2)…f(xt)…f(xt s)}。

步骤三:人脸对比预测

步骤三的输入是人脸的向量表示,输出的是预测人脸与视频中已存在的人脸的相关性值。如果是伪造视频,那么这个相关性值更接近0,如果是真是视频那么这个相关性值更接近1。首先将人脸的向量表示输入到gru网络中,gru网络将集成前t帧的信息,对后s帧的人脸进行预测,预测得到后s帧的向量表示:通过公式(7)得到和f(xt)…f(xt s)相关性值。

步骤四:模型训练

利用keras框架将步骤一二三按照图2所示的设计来搭建模型,进行端到端的训练。设定网络模型的初始学习率是0.001,最小学习率为0.0001,损失函数为公式(8)所示,模型的目标是极小化损失值。当验证集的损失值连续两个epoch没有变化的时候,将学习率调整为原来的0.2倍。损失函数未收敛的时候,模型将损失函数回传到人脸表征模块,重新调整人脸的向量表示,进而重新调整人脸的预测。当训练集的损失函数收敛的时候保存模型。第一阶段的训练得到了4个二分类模型。第二阶段训练时先将第一阶段的模型参数进行迁移,再进行迭代优化训练,模型收敛时保存模型。

步骤五:模型测试

步骤五的输入是celeb-df数据集,输出是视频标签,如果预测为真视频,则输出为1,如果预测为假视频,则输出为0。为了测试模型的鲁棒性,我们使用未参与训练的celeb-df数据集测试训练好的模型。celeb-df数据集的预处理操作和训练数据的保持一致。调用保存好的模型进行测试,得到预测人脸与视频中已存在的人脸的相关性值。如果相关性值大于0.5,那么最后输出1,表示该视频被预测为真视频。如果相关性值小于或者等于0.5,那么最后输出为0,表示该视频被预测为假视频。

综上所述,本发明设计了一种基于表征对比预测学习的深度伪造视频检测方法,该方法具有鲁棒性,能实现对未参与训练的数据库中的伪造视频进行检测,符合实际场景中伪造视频检测的要求。

本领域技术人员可以理解,本发明的保护范围不局限于所述的具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征进行等同的更改或替换,需要注意的是,更改或替换之后的技术方案都将落入本发明的保护范围之内。


技术特征:

1.一种基于表征对比预测学习的深度伪造视频检测方法,其特征包括:

1)提出一种基于表征学习的卷积神经网络人脸表征模型;

2)提出一种基于对比预测学习的时序人脸回归预测方法;

3)提出一种分阶段式训练的深度伪造视频检测方案。

2.根据权利要求1所述的一种基于表征对比预测学习的深度伪造视频检测方法,其特征在于:通过编码多个时间点共享的信息来学习特征,同时丢弃局部信息,得到人脸的向量表示;表征模型由四个模块构成,每个模块包含一个卷积层,一个激活层,一个批量归一化层,一个池化层构成,各个模块的参数如图1所示,在第四个模块之后使用一个全连接层得到人脸的向量表示。

3.根据权利要求1所述的一种基于表征对比预测学习的深度伪造视频检测方法,其特征在于:使用对比预测的方法,对时序的人脸向量进行预测;真实视频中的人脸是表情自然丰富具有感染力的,而虚假视频中的人脸表情是僵硬不自然的,经过预测之后,对于真实视频,预测帧会接近于视频中真实存在的帧,而对于虚假视频,不自然的人脸表情会导致预测帧不准确,从而使得预测帧与视频中已存在的帧之间的相关性较低,最后通过对比预测帧和已存在的帧之间的相关性来建模。

4.根据权利要求1所述的一种基于表征对比预测学习的深度伪造视频检测方法,其特征在于:通过两阶段的训练,得到具有鲁棒性的深度伪造视频检测模型;将源任务的训练参数迁移到目标任务,使得最终的模型融合多种伪造视频的特征,提升模型的鲁棒性。

技术总结
本发明涉及一种基于表征对比预测学习的深度伪造视频检测方法。其发明内容主要包括(1)提出一种基于表征学习的卷积神经网络人脸表征模型;(2)提出一种基于对比预测学习的时序人脸回归预测方法;(3)提出一种分阶段式训练的深度伪造视频检测方案。

技术研发人员:廖鑫;胡娟;秦拯
受保护的技术使用者:湖南大学
技术研发日:2021.04.30
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-7557.html

最新回复(0)