本发明属于视频检测领域,涉及基于时序不一致性的深度伪造视频检测方法及系统。
背景技术:
随着社会发展和科技的进步,越来越多的人在社交软件上通过分享照片和视频来分享自己的生活。然而,由于视频伪造工具层出不穷(adobepremiere、adobephotoshop、lightworks),使得人们能更方便地对视频进行伪造,一些不法分子通过对照片和视频进行伪造来获取利益。同时,随着机器学习技术的兴起,将深度学习与视频伪造技术的结合,通过对编解码器的训练来进行人脸伪造,使伪造的视频更加难以分辨真伪。比如换脸软件zao,人们只需要一张照片就可以把一段视频里的人脸换成照片中的人脸。这些伪造技术使得视频的完整性、真实性和可靠性受到质疑,对个人和社会都会造成严重的影响。
对深度伪造视频的研究主要集中在对换脸视频的研究,检测方法主要分为对视频帧内的检测和视频帧间的检测。当前主要的检测方法集中在对视频帧内的特征研究,使用深度学习进行人脸伪造时,分辨率不一致、光照不一致等原因会造成的脸部局部出现抖动等瑕疵,因此通过对视频中每个帧的特征来研究和分析视频的真伪性,使用深度学习相关知识去自动学习并捕获这些瑕疵从而对视频的真伪性进行判断。由于在对视频进行伪造时,是逐帧进行的,会引入前后帧在表情、光照等时序上的不一致性,用帧内的检测方法难以捕捉到这种时序的不一致性,同时,目前的一些针对时序不一致性的检测方法主要都是依赖于当前帧之前的信息,没有结合未来的帧信息进行考虑,使得对伪造视频的检测率低,错误率高。
技术实现要素:
有鉴于此,本发明的目的在于提供一种基于时序不一致性的深度伪造视频检测方法及系统。
为达到上述目的,本发明提供如下技术方案:
基于时序不一致性的深度伪造视频检测方法,该方法包括以下步骤:
s1、获取实验数据集,将数据集分为训练、验证和测试集,并将视频处理为视频帧,同时提取视频帧中的人脸,将视频处理只包含人脸的视频帧;
s2、将经过处理的视频帧输入到微调的xception网络中,其中xception网络中加入卷积模块的注意力机制模块cbam,结合空间和通道对网络进行训练,保存使得模型达到最好效果时的参数;
s3、用训练好的xception模型去提取每个视频连续k帧序列的特征,提取每k帧的特征为一组作为双向长短期记忆网络bilstm的输入进行训练,其中加入条件随机场crf对bilstm的预测结果进行调整,保存使得模型达到最好效果时的参数;
s4、使用训练好的双向长短期记忆网络bilstm对待测试的视频进行检测,通过输出测试的准确率等来评估模型的性能。
可选的,所述步骤s1具体包括:
s11、将视频按照一定的比例分为训练、验证、测试集,将视频真实视频与伪造视频进行标记,再根据视频帧率,对每个视频取一定比例的帧;
s12、将取到的帧通过人脸检测器检测出人脸区域,通过人脸地标进行对齐后按照一定的像素归一化处理。
可选的,所述步骤s2具体包括:
s21、在xception网络的全局池化层之前引入卷积模块的注意力机制模块cbam,将通道注意力和空间注意力模块顺序的组合在一起,推断出各自的注意力权重,再与xception网络block-14提取的特征图相乘,对特征进行一定程度的自动调整,最后对xception cbam网络进行微调;
s22、将打好标签的视频帧输入到xception cbam的网络中进行视频帧特征提取的训练,保存使得模型达到最好效果时的参数。
可选的,所述步骤s3具体包括:
s31、用训练好的xception cbam网络提取视频连续n帧的特征;在xception网络的全局池化层后接的是一个全连接层,输出的是512维的特征图,并将此特征图作为双向长短期网络bilstm的输入;
s32、bilstm由前向lstm和后向lstm组成;通过将提取的视频序列帧特征分别输入到前向lstm和后向lstm进行时序分析,通过结合视频帧的上下文信息,将前向lstm和后向lstm产生的特征向量进行拼接后进行分类预测;
s33、其中lstm通过遗忘门、输入门和输出门来控制遗忘和记忆的信息,为后续的时序分析传递有用的信息,使其结合视频帧特征的上下文信息来对当前帧进行预测;lstm三个门的计算过程如下:
遗忘门:通过计算决定遗忘哪些不重要的信息,保留哪些重要的信息;其公式为:
ft=σ(bf[ht-1,xt] kf)
其中ft是0~1的一个数值,表示上一个时刻的网络状态的保留情况;
输入门:通过计算决定增加哪些新信息以及更新哪些信息,其公式为:
it=σ(bi[ht-1,xt] ki)
it表示将要更新的值;
输出门:结合更新完后的信息来判断输出网络的状态特征,其公式为:
ot=σ(bo[ht-1,xt] ko)
ht=ot*tanh(ct)
ot表示输出的判断条件;ht表示最终的输出;
其中公式中的b,k分别代表权重矩阵和偏置,σ是sigmoid函数,[ht-1,xt]表示将上一个状态的输出ht-1与当前状态的输入xt进行拼接;
s34、经过以上的计算将前向lstm与后向lstm的各自的时序输出ht进行拼接后的到每个标签的概率,将这些概率输入到条件随机场crf中,crf层通过自身学习一些约束来选择最佳的时序输出用于伪造视频的分类;通过crf的转移矩阵和损失函数来对预测结果评分,最后选择评分最高的作为最后的预测序列;
s35、将s2中提取到的特征输入到bilstm crf中进行训练,保存使得模型达到最好效果时的参数。
可选的,所述步骤s4具体包括:
s41、将测试集输入训练好的模型,取连续k帧的评估结果来对视频进行真假分类;
s42、计算准确率accuracy、精确率precision、召回率recall、f1评估检测方法的性能。
基于时序不一致性的深度伪造视频检测系统,该系统包括以下单元:数据预处理模块、视频帧特征提取模块、视频帧时序分析模块、伪造视频分类模块;
数据预处理模块,包括对数据集进行训练集、验证集、测试集的划分,对视频根据帧率进行分帧处理,同时根据人脸地标对齐提取人脸,并将取得的人脸图片进行归一化;
视频帧特征提取模块,引入卷积模块的注意力机制模块cbam,以学习更好的视频帧级特征;
视频帧时序分析模块,考虑到单向的lstm不能考虑未来的信息,因此通过双
向的长短期记忆网络bilstm,结合特征序列的上下文信息来对输入序列在时序在进行一致性分析,最后对bilstm的预测结果通过条件随机场crf进行优化;
伪造视频分类模块,将测试集输入到整个网络中进行检测,通过计算准确率accuracy指标来评估本发明系统的性能。
本发明的有益效果在于:
本发明所提供的一种基于时序不一致性的深度伪造视频检测方法及系统,通过对xception网络进行改进,使其能提取到更多更详细的特征用于后一步的分析,进一步通过将提取的特征输入到双向的长短期记忆网络(bilstm)时序分析,捕捉帧间的不一致性,能有效的克服帧内检测所导致误判的几率,充分利用上下文的信息。再对bilstm的输出通过条件随机场(crf)进行优化,得到最佳的测试结果,大大提升对视频的检测精度。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
图1为本发明一种基于时序不一致性的深度伪造视频检测方法的流程示意图;
图2为步骤s2中xception cbam的网络结构图;
图3为步骤s3中bilstm crf对时序特征进行分析的示意图;
图4为步骤s3中lstm的三个门的计算过程图;
图5为本发明一种基于时序不一致性的深度伪造视频检测系统的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
本发明是一种通过对视频帧间的时序一致性进行深度伪造视频的检测方法及系统。通过结合xception网络和cbam的优点,在xception网络中加入卷积模块的注意力机制模块(cbam),将通道和空间注意力两个子模块的输出特征图进行连接,与xception网络提取的特征图进行相乘达到优化作用,使得xception网络在提取特征序列时能捕捉到更多有用的信息用于后面的时序分析。
另一方面,在对视频的时序进行分析时,考虑到单向的长短期记忆网络(lstm)只能记住之前的历史信息而忽略未来的时序信息,因此,在对时序进行分析时,采用双向长短期记忆网络(bilstm),将前向和后向lstm提取到的信息进行连接输入到条件随机场(crf)进行优化后得到最终的检测结果。本发明通过对xception网络的改进以及结合bilstm在时序分析上的优点,既减少了训练的参数,又提高了伪造视频的检测准确率。
具体实施方式如下:
第一实施例
图1是根据一示例性实施例给出的一种基于时序不一致性检测方法的流程示意图,根据图1,包括以下步骤:
步骤s1:将得到的伪造视频集按照一定的比例分为训练集、验证集、测试集,其中真实视频和伪造视频的数量应是相等的,将视频真实视频与伪造视频进行标记,真实视频标记为0,伪造视频标记为1;使用ffmpeg对每个视频按照帧率取一定数量的帧;将取到的帧通过mtcnn人脸检测器检测出人脸区域,再对人脸区域进行人脸地标对齐,保存人脸图像,并按照240*240的像素归一化处理。
步骤s2:将s1处理好的视频帧输入到xception网络中进行特征提取的训练。由于xception网络的全局池化层会使输出丢失一些通道和空间信息。因此在xception网络的全局池化层之前引入卷积模块的注意力机制模块cbam,将通道注意力和空间注意力模块顺序的组合在一起,推断出各自的注意力权重。cbam中主要的运算为:
其中f为xception网络提取的特征,mc为在通道模块上的处理,ms为在空间模块上的处理。
如图2中xception cbam的网络结构图所示,首先将xception网络中提取到的特征输入到通道注意力模块中,分别进行全局平均池化和全局最大池化,再分别输入到神经网络中进行处理,计算公式为:
mc(f)=σ(w1(w0(fcavg)) w1(w0(fcmax)))
其中mc为通道特征图,w1,w0是多层感知机的权重,fcavg,fcmax分别是全局平均池化和全局最大池化,σ是sigmoid函数。
将通道注意力模块得到的新特征f'输入到空间注意力模块进行计算,同时进行全局最大池化和全局平均池化,再进行卷积,最后与原来的特征相乘得到新的特征,计算公式为:
其中ms为空间特征图,f7×7表示进行7×7的卷积,
最后将经过cbam模块处理得到的新特征f”输入到xception网络的globalaveragepooling层,再对xception cbam网络的参数进行微调。将打好标签的视频帧输入到xception cbam的网络中进行端到端的视频帧特征提取的训练,保存使得模型达到最好效果时的参数。
步骤s3:通过将双向长短期网络(bilstm)与条件随机场(crf)的结合对时序特征进行分析的过程如图3所示,主要步骤为:
用训练好的xception cbam网络提取视频连续25帧的特征,经过xception网络的globalaveragepooling层后得到的输出的是一个512维的时序特征图,并将此
特征图作为双向长短期网络(bilstm)的输入,bilstm的输入格式为(samples,timesteps,dim),samples代表总的样本数,timesteps代表处理的时序长度,dim代表输入的特征的维度数。bilstm由前向lstm和后向lstm组成。通过将xception cbam网络提取到的视频序列帧特征分别输入到前向lstm和后向lstm进行时序分析,通过结合视频帧的上下文信息,将前向lstm和后向lstm产生的特征向量进行拼接后进行分类预测。其中lstm通过遗忘门、输入门和输出门来控制遗忘和记忆的信息,为后续的时序分析传递有用的信息,使其结合视频帧特征的上下文信息来对当前帧进行预测。如图4所示得到lstm三个门的计算过程如下:
遗忘门:通过计算决定遗忘哪些不重要的信息,保留哪些重要的信息。其公式为(其中ft是0—1的一个数值,表示上一个时刻的网络状态的保留情况):
ft=σ(bf[ht-1,xt] kf)
输入门:通过计算决定增加哪些新信息以及更新哪些信息,其公式为(it表示将要更新的值;ct表示新的候选cell信息,ct表示对网络状态进行更新):
it=σ(bi[ht-1,xt] ki)
输出门:结合更新完后的信息来判断输出网络的状态特征,其公式为(ot表示输出的判断条件;ht表示最终的输出):
ot=σ(bo[ht-1,xt] ko)
ht=ot*tanh(ct)
其中公式中的b,k分别代表权重矩阵和偏置,σ是sigmoid函数,[ht-1,xt]表示将上一个状态的输出ht-1与当前状态的输入xt进行拼接。经过以上的计算将前向lstm与后向lstm的各自的时序输出ht进行拼接后得到每个视频帧每个标签的概率。
将这些概率组成的序列输入到条件随机场(crf)中,crf层通过自身学习一些约束来选择最佳的时序输出用于伪造视频的分类。主要通过crf的转移矩阵和损失函数来对预测结果评分,最后选择评分最高的作为最后的预测序列。crf对序列的评分过程为:
步骤s4:将测试集输入训练好的模型,得到对连续k帧的评估结果,根据得到的概率对待检测的视频进行真假分类。最后通过计算准确率(accuracy)、精确率(precision)、召回率(recall)、f1等来评估本发明的性能。
第二实施例
参见图5所示的一种基于视频帧间一致性的深度伪造视频检测系统,其特征在于,该方法包括以下单元:数据预处理模块、视频帧特征提取模块、视频帧时序分析模块、伪造视频分类模块。
数据预处理模块,用于对实验数据进行处理,主要包括三个单元:数据集划分、取帧、提取人脸。在对数据集进行划分时,按照一定的比例分为训练集、验证集、测试集;再对视频进行分帧,最后进行人脸的提取并将取得的人脸图片进行归一化为统一的像素,在提取人脸时,先使用人脸检测器框出人脸区域,再通过人脸地标对齐提取人脸,以此来提高人脸的检测率。
视频帧特征提取模块,主要包括两个单元:xception网络的处理、卷积模块的注意力机制模块(cbam)。考虑到xception网络在经过全局池化层的输出会在一定的程度上丢失通道信息和空间信息,因此引入卷积模
块的注意力机制模块(cbam),对通道和空间重要程度进行计算,以提取到更多的视频帧级语义特征。在cbam部分,首先将视频帧经过xception网络的前14个块进行特征图的提取,然后将提取到的特征图输入到通道注意力模块处理,再进入到空间注意力模块。
视频帧时序分析模块,主要包括双向长短期记忆网络(bilstm)的时序分析和条件随机场(crf)的结果优化。考虑到单向的lstm不能考虑未来的信息,因此通过双向的长短期记忆网络(bilstm),结合特征序列的上下文信息来对输入序列在时序在进行一致性分析,通过将前向lstm与后向lstm经过计算的结果进行拼接来综合分析当前输入的特征序列。最后对bilstm的预测结果通过条件随机场(crf)进行优化。
伪造视频分类模块,将测试集输入到整个网络中进行检测,根据最终的输出概率来进行对视频进行分类。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
1.基于时序不一致性的深度伪造视频检测方法,其特征在于:该方法包括以下步骤:
s1、获取实验数据集,将数据集分为训练、验证和测试集,并将视频处理为视频帧,同时提取视频帧中的人脸,将视频处理只包含人脸的视频帧;
s2、将经过处理的视频帧输入到微调的xception网络中,其中xception网络中加入卷积模块的注意力机制模块cbam,结合空间和通道对网络进行训练,保存使得模型达到最好效果时的参数;
s3、用训练好的xception模型去提取每个视频连续k帧序列的特征,提取每k帧的特征为一组作为双向长短期记忆网络bilstm的输入进行训练,其中加入条件随机场crf对bilstm的预测结果进行调整,保存使得模型达到最好效果时的参数;
s4、使用训练好的双向长短期记忆网络bilstm对待测试的视频进行检测,通过输出测试的准确率等来评估模型的性能。
2.根据权利要求1所述的基于时序不一致性的深度伪造视频检测方法,其特征在于:所述步骤s1具体包括:
s11、将视频按照一定的比例分为训练、验证、测试集,将视频真实视频与伪造视频进行标记,再根据视频帧率,对每个视频取一定比例的帧;
s12、将取到的帧通过人脸检测器检测出人脸区域,通过人脸地标进行对齐后按照一定的像素归一化处理。
3.根据权利要求1所述的基于时序不一致性的深度伪造视频检测方法,其特征在于:所述步骤s2具体包括:
s21、在xception网络的全局池化层之前引入卷积模块的注意力机制模块cbam,将通道注意力和空间注意力模块顺序的组合在一起,推断出各自的注意力权重,再与xception网络block-14提取的特征图相乘,对特征进行一定程度的自动调整,最后对xception cbam网络进行微调;
s22、将打好标签的视频帧输入到xception cbam的网络中进行视频帧特征提取的训练,保存使得模型达到最好效果时的参数。
4.根据权利要求1所述的基于时序不一致性的深度伪造视频检测方法,其特征在于:所述步骤s3具体包括:
s31、用训练好的xception cbam网络提取视频连续n帧的特征;在xception网络的全局池化层后接的是一个全连接层,输出的是512维的特征图,并将此特征图作为双向长短期网络bilstm的输入;
s32、bilstm由前向lstm和后向lstm组成;通过将提取的视频序列帧特征分别输入到前向lstm和后向lstm进行时序分析,通过结合视频帧的上下文信息,将前向lstm和后向lstm产生的特征向量进行拼接后进行分类预测;
s33、其中lstm通过遗忘门、输入门和输出门来控制遗忘和记忆的信息,为后续的时序分析传递有用的信息,使其结合视频帧特征的上下文信息来对当前帧进行预测;lstm三个门的计算过程如下:
遗忘门:通过计算决定遗忘哪些不重要的信息,保留哪些重要的信息;其公式为:
ft=σ(bf[ht-1,xt] kf)
其中ft是0~1的一个数值,表示上一个时刻的网络状态的保留情况;
输入门:通过计算决定增加哪些新信息以及更新哪些信息,其公式为:
it=σ(bi[ht-1,xt] ki)
it表示将要更新的值;
输出门:结合更新完后的信息来判断输出网络的状态特征,其公式为:
ot=σ(bo[ht-1,xt] ko)
ht=ot*tanh(ct)
ot表示输出的判断条件;ht表示最终的输出;
其中公式中的b,k分别代表权重矩阵和偏置,σ是sigmoid函数,[ht-1,xt]表示将上一个状态的输出ht-1与当前状态的输入xt进行拼接;
s34、经过以上的计算将前向lstm与后向lstm的各自的时序输出ht进行拼接后的到每个标签的概率,将这些概率输入到条件随机场crf中,crf层通过自身学习一些约束来选择最佳的时序输出用于伪造视频的分类;通过crf的转移矩阵和损失函数来对预测结果评分,最后选择评分最高的作为最后的预测序列;
s35、将s2中提取到的特征输入到bilstm crf中进行训练,保存使得模型达到最好效果时的参数。
5.根据权利要求1所述的基于时序不一致性的深度伪造视频检测方法,其特征在于:所述步骤s4具体包括:
s41、将测试集输入训练好的模型,取连续k帧的评估结果来对视频进行真假分类;
s42、计算准确率accuracy、精确率precision、召回率recall、f1评估检测方法的性能。
6.基于时序不一致性的深度伪造视频检测系统,其特征在于:该系统包括以下单元:数据预处理模块、视频帧特征提取模块、视频帧时序分析模块、伪造视频分类模块;
数据预处理模块,包括对数据集进行训练集、验证集、测试集的划分,对视频根据帧率进行分帧处理,同时根据人脸地标对齐提取人脸,并将取得的人脸图片进行归一化;
视频帧特征提取模块,引入卷积模块的注意力机制模块cbam,以学习更好的视频帧级特征;
视频帧时序分析模块,考虑到单向的lstm不能考虑未来的信息,因此通过双
向的长短期记忆网络bilstm,结合特征序列的上下文信息来对输入序列在时序在进行一致性分析,最后对bilstm的预测结果通过条件随机场crf进行优化;
伪造视频分类模块,将测试集输入到整个网络中进行检测,通过计算准确率accuracy指标来评估本发明系统的性能。
技术总结