发明内容
本发明为了克服以上技术的不足,提供了一种首先对一个视频帧的脸图像块块内提取全局特征,然后对每帧脸图像块间捕获图像块间的全局特征,继而图像块内与块间交替更细粒度的捕获全局特征,将捕获到的全局特征利用全局多头通道注意力进行后处理进行检测Deepfake视频的方法。
本发明克服其技术问题所采用的技术方案是:
一种基于局部增强transformer的假视频检测方法,包括如下步骤:
a)利用读视频算法对K个视频中的每个视频提取随机的视频帧,利用脸识别算法提取每个视频的随机的视频帧中的人脸图像;
b)将人脸图像输入特征提取模块得到低级纹理特征图;
c)建立全局精细特征提取模块,所述全局精细特征提取模块依次由局部增强transformer、池化层、局部增强transformer、池化层、局部增强transformer、池化层、局部增强transformer构成,每个局部增强transformer由L个transformer block组成,所述transformer block依次由图像块内特征提取模块及图像块间特征提取模块组成,所述图像块内特征提取模块依次由BatchNorm层、WMSA block、残差层、NWC层、残差层、BatchNorm层、卷积MLP block以及残差层组成,所述图像块间特征提取模块依次由BatchNorm层、shuffle-WMSA block、残差层、NWC层、残差层、BatchNorm层、卷积MLP block以及残差层组成;
d)将低级纹理特征图输入第一个局部增强transformer中得到图像块内与图像块间的精细全局特征;
e)将图像块内与图像块间的精细全局特征输入卷积层中得到浅层特征图;
f)将浅层特征图输入第二个局部增强transformer中,得到图像块内与图像块间的浅层特征图;
g)将步骤f)得到的图像块内与图像块间的浅层特征图输入卷积层中得到中级语义特征图,将中级语义特征图,输入第三个局部增强transformer中,得到图像块内与图像块间的中级语义精细全局特征图;
h)将步骤g)得到的图像块内与图像块间的中级语义精细全局特征图输入输入卷积层中得到特征图,将特征图输入第四个局部增强transformer中,得到图像块内与图像块间的高级语义精细全局特征图;
i)将图像块内与图像块间的高级语义精细全局特征图输入全局通道注意力模块进行特征后处理,得到精炼的人脸全局特征,将精炼的人脸全局特征输入分类器经过softmax进行二分类真假检测。
进一步的,步骤a)中利用python中的读视频算法VideoReader类对视频提取,得到随机的t个视频帧,对提取的视频帧利用人脸识别算法dlib库中的get_frontal_face_detector函数提取脸图像,将得到的脸放入对应真假类别文件夹下。
进一步的,步骤a)中得到的连续帧的t张人脸图像的宽高分别调整为224、224,利用albumentations算法对人脸图像进行数据增强,利用均值为[0.4718,0.3467,0.3154],方差为[0.1656,0.1432,0.1364]对人脸图像进行归一化,将归一化后的连续帧的t张人脸图像封装为[b,c,h,w]的张量xi∈Rb×c×h×w,R为向量空间,其中人脸图像标签为[b,0/1],xi为第i个人脸图像批次,i∈{1,...,K×t/b},b为每批次人脸图像的个数,c为每张人脸图像通道数,h为每张人脸图像的高,w为每张人脸图像的宽,0表示假人脸图像,1表示真人脸图像。
进一步的,步骤b)包括如下步骤:
b-1)建立由2个连续的块组成特征提取模块,第一个块、第二个块均由三个连续的深度可分离的卷积层和一个最大池化层构成,每个深度可分离的卷积层由深度卷积层后连接批归一化层和逐点卷积层组成,深度卷积层均设置有3×3的kernel,每个深度卷积层的stride和padding为1,每个最大池化层均有一个2×2像素的窗口,每个最大池化层的步长等于2,第一个块的第一个深度可分离的卷积层输出为32个通道,第二个块的第三个深度可分离的卷积层输出64个通道;
b-2)将xi∈Rb×c×h×w输入特征提取模块,输出维度为[b,64,56,56]的特征图xf=F(xi,θ),xf∈Rb×c×h×w,θ为模型参数。
进一步的,步骤d)包括如下步骤:
d-1)通过公式z0=xf+Epos计算得到带有位置的三维特征图z0,Epos为三维特征图的位置embedding,Epos∈Rb×c×h×w,z0∈Rb×c×h×w;
d-2)将带有位置的三维特征图z0输入第一个局部增强transformer的第l-1层的图像块内特征提取模块和图像块间特征提取模块,得到图像块内与块间的浅层精细全局特征zl-1,l∈{1,...,L};
d-3)将图像块内与块间的浅层精细全局特征z
l-1进行批归一化后送入第l层的图像块内特征提取模块的WMSA block中通过一个卷积核大小为1,步长为1,padding为0的卷积层卷积后得到QKV∈R
b×3c×h×w,利用torch库里的rearrange方法处理QKV∈R
b×3c×h×w后得到Q∈R
b×c×h×w、K∈R
b×c×h×w、V∈R
b×c×h×w,Q为图像块内特征图的查询向量,K为图像块内特征图的键向量,V为图像块内特征图的值向量,Q∈R
b×A×j×(ww×hh)×r,K∈R
b×A×j×(ww×hh)×r,V∈R
b ×A×j×(ww×hh)×r,ww为图像块宽,hh为图像块高,图像块的个数为A,A=(h/hh)*(w/ww),j为QKV的头数,每个头的维度为r,r=c/j,通过公式
计算得到图像块内全局特征图z
l,z
l∈R
b×A×j×(ww×hh)×r,E为深度可分离的卷积层参数,J为可学习的注意力权重位置重要性矩阵,J∈R
b×A×j×(ww×hh)×(ww×hh),T为转置;
d-4)将图像块内全局特征图z
l∈R
b×A×j×(ww×hh)×r利用torch库里的rearrange方法拼接回原始图像大小z
l∈R
b×c×h×w,通过公式z′
l=z
l+z
l-1计算得到图像块内全局特征图z′
l,将图像块内全局特征图z′
l进行批归一化后输入第l层的卷积核大小为ww,步长为1,填充为ww//2的NWC层中得到邻近图像块特征增强的特征图NWC(LN(z′
l)),通过公式z″
l=NWC(LN(z′
l))+z′
l计算得到邻近图像块特征增强的全局特征图z″
l,将邻近图像块特征增强的全局特征图z″
l进行批归一化后输入第l层的由两个连续的卷积核大小为1,步长为1,填充为0的卷积层构成的卷积MLP block中得到三维空间特征图MLP(LN(z″
l)),通过公式s
l=MLP(LN(z″
l))+z″
l计算得到三维局部增强的图像块内全局特征图s
l;d-5)将三维局部增强的图像块内全局特征图s
l进行批归一化后输入第l层的图像块间特征提取模块的shuffle-WMSAblock中通过一个卷积核大小为1,步长为1,填充为0的卷积层卷积后得到Q
sK
sV
s∈R
b×3c×h×w,利用torch库里的rearrange方法处理Q
sK
sV
s∈R
b×3c×h×w后得到Q
s∈R
b×c×h×w、K
s∈R
b×c×h×w、V
s∈R
b×c×h×w,Q
s为图像块间特征图的查询向量,K
s为图像块间特征图的键向量,V
s为图像块间特征图的值向量,Q
s∈R
b×A×j×(ww×hh)×r,K
s∈R
b×A×j×(ww×hh)×r,V
s∈R
b×A×j×(ww×hh)×r,通过公式
计算得到图像间全局特征图s
s,s
s∈R
b ×A×j×r×h×w;
d-6)将图像间全局特征图ss∈Rb×A×j×r×h×w利用torch库里的rearrange方法拼接回原始图像大小ss∈Rb×c×h×w,通过公式S′l=ss+sl计算得到图像块间全局特征图S′l,将图像块间全局特征图S′l进行批归一化后输入第l层的卷积核大小为ww,步长为1,填充为ww//2的NWC层中得到邻近图像块特征增强的特征图NWC(LN(s′l)),通过公式S″l=NWC(LN(S′l))+S′l计算得到邻近图像块特征增强的全局特征图S″l,将邻近图像块特征增强的全局特征图S″l进行批归一化后输入第l层的由两个连续的卷积核大小为1,步长为1,填充为0的卷积层构成的卷积MLP block中得到三维空间特征图MLP(LN(s″l)),通过公式S″′l=MLP(LN(S″l))+S″l计算得到三维局部增强的图像块间全局特征图S″′l。
进一步的,步骤e)中将步骤c)得到的三维局部增强的图像块间全局空间特征图S″′
l∈R
b×c×h×w输入卷积核大小为2,步长为2,填充为0的卷积层得到浅层特征图
进一步的,步骤f)中将浅层特征图
替代步骤d-1)中的三维特征图z
0,重复执行步骤d-1)至d-6)后将得到的三维局部增强的图像块间全局空间特征图S″′
l∈R
b×c×h×w作为第二个局部增强transformer输出的图像块内与图像块间的浅层特征图
进一步的,步骤g)包括如下步骤:
g-1)将图像块内与图像块间的浅层特征图
输入卷积核大小为2,步长为2,填充为0的卷积层,得到特征图
g-2)将特征图
替代步骤d-1)中的三维特征图z
0,重复执行步骤d-1)至d-6)后将得到的三维局部增强的图像块间全局空间特征图S″′
l∈R
b×c×h×w作为第二个局部增强transformer输出的图像块内与图像块间的中级语义精细全局特征图
进一步的,步骤h)包括如下步骤:
h-1)将图像块内与图像块间的浅层特征图
输入卷积核大小为2,步长为2,填充为0的卷积层,得到特征图
h-2)将特征图
替代步骤d-1)中的三维特征图z
0,重复执行步骤d-1)至d-6)后将得到的三维局部增强的图像块间全局空间特征图S″′
l∈R
b×c×h×w作为第三个局部增强transformer输出的图像块内与图像块间的高级语义精细全局特征图
进一步的,步骤j)包括如下步骤:
j-1)将图像块内与图像块间的高级语义精细全局特征图
输入特征后处理模块;
j-2)在全局通道注意力模块中先利用通过torch库里的rearrange函数将特征图
维度变换得到
Q
C为图像通道的查询向量,K
C为图像通道的键向量;
j-3)通过公式s
c=Sigmoid(Q
C*K
CT)计算得到全局通道注意力特征图s
c,
Sigmoid(·)为Sigmoid函数,利用torch库里的mean函数对全局通道注意力特征图s
c每行求均值得到每通道的全局注意力w
a,w
a∈R
b×1×8,a=1,...,8c,利用torch库里的reshape函数将每通道的全局注意力w
a维度变换为w
a∈R
b×8c×1×1;
j-4)通过公式s
c′=w
a*s
4″′ l计算得到全局通道注意力特征图s
c′,
利用torch库里的reshape函数将
维度变换为
将特征图
经过输出大小为(1,1)的全局平均池化层后输出s
c′∈R
b×8c×1×1,利用torch库里的flatten函数将s
c′∈R
b×8c×1×1拉平为s
c′∈R
b×8c;
j-5)将特征图sc′∈Rb×8c输入分类器模块的第一个输入维度为8c,输出维度为m的线性层后得到模型预测图像类别表示y′=sc′Wc,Wc∈R8c×m,y′∈Rb×m,Wc为分类器参数,将模型预测视频类别表示y′=sc′Wc经过softmax函数转换为概率值,对y′每行元素取最大值索引,索引对应模型预测类别0或1,当模型预测类别为0则该视频为假图片,当模型预测类别为1则该视频为真图片。
本发明的有益效果是:通过对一个视频随机帧的脸图像利用局部增强的打乱全卷积transformer将图像块内全局特征与图像块间全局特征结合更细粒度地提高检测的准确性。为进一步提高模型泛化性,利用FF++与DFDC数据集训练模型。本发明方法适用于改进生成算法生成的deepfake检测,检测到的deepfake的准确度明显优于其他方法。
具体实施方式
下面结合附图1至附图6对本发明做进一步说明。
一种基于局部增强transformer的假视频检测方法,包括如下步骤:
a)利用读视频算法对K个视频中的每个视频提取随机的视频帧,利用脸识别算法提取每个视频的随机的视频帧中的人脸图像;
b)将人脸图像输入特征提取模块得到低级纹理特征图;
c)建立全局精细特征提取模块,所述全局精细特征提取模块依次由局部增强transformer、池化层、局部增强transformer、池化层、局部增强transformer、池化层、局部增强transformer构成,每个局部增强transformer由L个transformer block组成,所述transformer block依次由图像块内特征提取模块及图像块间特征提取模块组成,所述图像块内特征提取模块依次由BatchNorm层、WMSA block、残差层、NWC层、残差层、BatchNorm层、卷积MLP block以及残差层组成,所述图像块间特征提取模块依次由BatchNorm层、shuffle-WMSA block、残差层、NWC层、残差层、BatchNorm层、卷积MLP block以及残差层组成;
d)将低级纹理特征图输入第一个局部增强transformer中得到图像块内与图像块间的精细全局特征;
e)将图像块内与图像块间的精细全局特征输入卷积层中得到浅层特征图;
f)将浅层特征图输入第二个局部增强transformer中,得到图像块内与图像块间的浅层特征图;
g)将步骤f)得到的图像块内与图像块间的浅层特征图输入卷积层中得到中级语义特征图,将中级语义特征图,输入第三个局部增强transformer中,得到图像块内与图像块间的中级语义精细全局特征图;
h)将步骤g)得到的图像块内与图像块间的中级语义精细全局特征图输入输入卷积层中得到特征图,将特征图输入第四个局部增强transformer中,得到图像块内与图像块间的高级语义精细全局特征图;
i)将图像块内与图像块间的高级语义精细全局特征图输入全局通道注意力模块进行特征后处理,得到精炼的人脸全局特征,将精炼的人脸全局特征输入分类器经过softmax进行二分类真假检测。
通过对一个视频随机帧的脸图像利用局部增强的打乱全卷积transformer将图像块内全局特征与图像块间全局特征结合更细粒度地提高检测的准确性。为进一步提高模型泛化性,利用FF++与DFDC数据集训练模型。本发明方法适用于改进生成算法生成的deepfake检测,检测到的deepfake的准确度明显优于其他方法。
实施例1:
步骤a)中利用python中的读视频算法VideoReader类对视频提取,得到随机的t个视频帧,对提取的视频帧利用人脸识别算法dlib库中的get_frontal_face_detector函数提取脸图像,将得到的脸放入对应真假类别文件夹下。
实施例2:
步骤a)中得到的连续帧的t张人脸图像的宽高分别调整为224、224,利用albumentations算法对人脸图像进行数据增强,利用均值为[0.4718,0.3467,0.3154],方差为[0.1656,0.1432,0.1364]对人脸图像进行归一化,将归一化后的连续帧的t张人脸图像封装为[b,c,h,w]的张量xi∈Rb×c×h×w,R为向量空间,其中人脸图像标签为[b,0/1],xi为第i个人脸图像批次,i∈{1,...,K×t/b},b为每批次人脸图像的个数,c为每张人脸图像通道数,h为每张人脸图像的高,w为每张人脸图像的宽,0表示假人脸图像,1表示真人脸图像。
实施例3:
步骤b)包括如下步骤:
b-1)建立由2个连续的块组成特征提取模块,第一个块、第二个块均由三个连续的深度可分离的卷积层和一个最大池化层构成,每个深度可分离的卷积层由深度卷积层后连接批归一化层和逐点卷积层组成,深度卷积层均设置有3×3的kernel,每个深度卷积层的stride和padding为1,每个最大池化层均有一个2×2像素的窗口,每个最大池化层的步长等于2,第一个块的第一个深度可分离的卷积层输出为32个通道,第二个块的第三个深度可分离的卷积层输出64个通道;
b-2)将xi∈Rb×c×h×w输入特征提取模块,输出维度为[b,64,56,56]的特征图xf=F(xi,θ),xf∈Rb×c×h×w,θ为模型参数。
实施例4:
步骤d)包括如下步骤:
d-1)通过公式z0=xf+Epos计算得到带有位置的三维特征图z0,Epos为三维特征图的位置embedding,Epos∈Rb×c×h×w,z0∈Rb×c×h×w;
d-2)将带有位置的三维特征图z0输入第一个局部增强transformer的第l-1层的图像块内特征提取模块和图像块间特征提取模块,得到图像块内与块间的浅层精细全局特征zl-1,l∈{1,...,L};
d-3)将图像块内与块间的浅层精细全局特征z
l-1进行批归一化后送入第l层的图像块内特征提取模块的WMSA block中通过一个卷积核大小为1,步长为1,padding为0的卷积层卷积后得到QKV∈R
b×3c×h×w,利用torch库里的rearrange方法处理QKV∈R
b×3c×h×w后得到Q∈R
b×c×h×w、K∈R
b×c×h×w、V∈R
b×c×h×w,Q为图像块内特征图的查询向量,K为图像块内特征图的键向量,V为图像块内特征图的值向量,Q∈R
b×A×j×(ww×hh)×r,K∈R
b×A×j×(ww×hh)×r,V∈R
b ×A×j×(ww×hh)×r,ww为图像块宽,hh为图像块高,图像块的个数为A,A=(h/hh)*(w/ww),j为QKV的头数,每个头的维度为r,r=c/j,通过公式
计算得到图像块内全局特征图z
l,z
l∈R
b×A×j×(ww×hh)×r,E为深度可分离的卷积层参数,J为可学习的注意力权重位置重要性矩阵,J∈R
b×A×j×(ww×hh)×(ww×hh),T为转置;
d-4)将图像块内全局特征图z
l∈R
b×A×j×(ww×hh)×r利用torch库里的rearrange方法拼接回原始图像大小z
l∈R
b×c×h×w,通过公式z′
l=z
l+z
l-1计算得到图像块内全局特征图z′
l,将图像块内全局特征图z′
l进行批归一化后输入第l层的卷积核大小为ww,步长为1,填充为ww//2的NWC层中得到邻近图像块特征增强的特征图NWC(LN(z′
l)),通过公式z″
l=NWC(LN(z′
l))+z′
l计算得到邻近图像块特征增强的全局特征图z″
l,将邻近图像块特征增强的全局特征图z″
l进行批归一化后输入第l层的由两个连续的卷积核大小为1,步长为1,填充为0的卷积层构成的卷积MLP block中得到三维空间特征图MLP(LN(z″
l)),通过公式s
l=MLP(LN(z″
l))+z″
l计算得到三维局部增强的图像块内全局特征图s
l;d-5)将三维局部增强的图像块内全局特征图s
l进行批归一化后输入第l层的图像块间特征提取模块的shuffle-WMSAblock中通过一个卷积核大小为1,步长为1,填充为0的卷积层卷积后得到Q
sK
sV
s∈R
b×3c×h×w,利用torch库里的rearrange方法处理Q
sK
sV
s∈R
b×3c×h×w后得到Q
s∈R
b×c×h×w、K
s∈R
b×c×h×w、V
s∈R
b×c×h×w,Q
s为图像块间特征图的查询向量,K
s为图像块间特征图的键向量,V
s为图像块间特征图的值向量,Q
s∈R
b×A×j×(ww×hh)×r,K
s∈R
b×A×j×(ww×hh)×r,V
s∈R
b×A×j×(ww×hh)×r,通过公式
计算得到图像间全局特征图s
s,s
s∈R
b ×A×j×r×h×w;
d-6)将图像间全局特征图ss∈Rb×A×j×r×h×w利用torch库里的rearrange方法拼接回原始图像大小ss∈Rb×c×h×w,通过公式S′l=ss+sl计算得到图像块间全局特征图S′l,将图像块间全局特征图S′l进行批归一化后输入第l层的卷积核大小为ww,步长为1,填充为ww//2的NWC层中得到邻近图像块特征增强的特征图NWC(LN(s′l)),通过公式S″l=NWC(LN(S′l))+S′l计算得到邻近图像块特征增强的全局特征图S″l,将邻近图像块特征增强的全局特征图S″l进行批归一化后输入第l层的由两个连续的卷积核大小为1,步长为1,填充为0的卷积层构成的卷积MLP block中得到三维空间特征图MLP(LN(s″l)),通过公式S″′l=MLP(LN(S″l))+S″l计算得到三维局部增强的图像块间全局特征图S″′l。
实施例5:
步骤e)中将步骤c)得到的三维局部增强的图像块间全局空间特征图S″′
l∈R
b ×c×h×w输入卷积核大小为2,步长为2,填充为0的卷积层得到浅层特征图
实施例6:
步骤f)中将浅层特征图
替代步骤d-1)中的三维特征图z
0,重复执行步骤d-1)至d-6)后将得到的三维局部增强的图像块间全局空间特征图S″′
l∈R
b ×c×h×w作为第二个局部增强transformer输出的图像块内与图像块间的浅层特征图
实施例7:
步骤g)包括如下步骤:
g-1)将图像块内与图像块间的浅层特征图
输入卷积核大小为2,步长为2,填充为0的卷积层,得到特征图
g-2)将特征图
替代步骤d-1)中的三维特征图z
0,重复执行步骤d-1)至d-6)后将得到的三维局部增强的图像块间全局空间特征图S″′
l∈R
b×c×h×w作为第二个局部增强transformer输出的图像块内与图像块间的中级语义精细全局特征图
实施例8:
步骤h)包括如下步骤:
h-1)将图像块内与图像块间的浅层特征图
输入卷积核大小为2,步长为2,填充为0的卷积层,得到特征图
h-2)将特征图
替代步骤d-1)中的三维特征图z
0,重复执行步骤d-1)至d-6)后将得到的三维局部增强的图像块间全局空间特征图S″′
l∈R
b×c×h×w作为第三个局部增强transformer输出的图像块内与图像块间的高级语义精细全局特征图
实施例9:
步骤j)包括如下步骤:
j-1)将图像块内与图像块间的高级语义精细全局特征图
输入特征后处理模块;
j-2)在全局通道注意力模块中先利用通过torch库里的rearrange函数将特征图
维度变换得到
Q
C为图像通道的查询向量,K
C为图像通道的键向量;
j-3)通过公式s
c=Sigmoid(Q
C*K
CT)计算得到全局通道注意力特征图s
c,
Sigmoid(·)为Sigmoid函数,利用torch库里的mean函数对全局通道注意力特征图s
c每行求均值得到每通道的全局注意力w
a,w
a∈R
b×1×8,a=1,...,8c,利用torch库里的reshape函数将每通道的全局注意力w
a维度变换为w
a∈R
b×8c×1×1;
j-4)通过公式s
c′=w
a*s
4″′ l计算得到全局通道注意力特征图s
c′,
利用torch库里的reshape函数将
维度变换为
将特征图
经过输出大小为(1,1)的全局平均池化层后输出s
c′∈R
b×8c×1×1,利用torch库里的flatten函数将s
c′∈R
b×8c×1×1拉平为s
c′∈R
b×8c;
j-5)将特征图sc′∈Rb×8c输入分类器模块的第一个输入维度为8c,输出维度为m的线性层后得到模型预测图像类别表示y′=sc′Wc,Wc∈R8c×m,y′∈Rb×m,Wc为分类器参数,将模型预测视频类别表示y′=sc′Wc经过softmax函数转换为概率值,对y′每行元素取最大值索引,索引对应模型预测类别0或1,当模型预测类别为0则该视频为假图片,当模型预测类别为1则该视频为真图片。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。