以往的区分人脸造假的方法就是用一个网络先提取特征,然后再进行二分类(real/fake),作者提出利用Attention进行细粒度分类;
主要过程如下:
此外,为了解决这个网络的学习困难,我们进一步引入了一种新的区域独立性损失和一种注意力引导的数据挖掘策略。
人脸伪造技术越来越高,给伪造人脸检测技术带来了新的挑战,作者将细粒度分类的技术引入到伪造人脸检测技术中来。
Sstnet: De-tecting manipulated faces through spatial, steganalysis andtemporal features. 通过空间,隐写分析和时间特征来检测被篡改的面孔。 它添加了带有约束卷积和LSTM的简化Xception流
Two-branch recurrent network for isolating deepfakes in videos. 使用双分支表示提取器,使用多尺度拉普拉斯高斯(LoG)算子将颜色域和频率域的信息结合起来。
Thinking in frequency: Face forgery detection bymining frequency-aware clues. 使用频率感知分解和局部频率统计来暴露频域中的深层伪影
网络结构主要由三个关键部分组成:
与基于单注意结构的网络能够以视频层标签作为训练的明确指导不同,基于多注意结构的网络由于缺乏区域级标签,只能以无监督或弱监督的方式进行训练。但是,这样也可能因为多个注意力都注意同一个区域从而忽视其他的区域而导致网络的性能下降。因此,作者提出了 Region Independence Loss来解决该问题。该方法的目的是确保每个注意力图集中在一个特定的区域而不重叠,并且集中的区域在不同的样本中是一致的。此外,作者使用Attention Guided Data Augementation(AGDA)机制来减少最具辨别力特征的出现,并强制其他注意图挖掘更多有用的信息。
最后再经过三层密集连接的卷积层强化 T T T,得到输出 F ∈ R C F × H s × W s F\in R^{C_F\times H_s\times W_s} F∈RCF×Hs×Ws
先通过双线性插值将Attention map的尺寸放大到与feature map相同,然后对他们进行点积:
F k = F × A k F_k = F\times A_k Fk=F×Ak
将 F k F_k Fk经过全局平均池化之后输入到分类网络,但为了防止textural information被Attention map所破坏,作者设计了一个normalized average pooling方法:
v k = ∑ m = 0 H s − 1 ∑ n = 0 W s − 1 F k , m , n ∣ ∣ ∑ m = 0 H s − 1 ∑ n = 0 W s − 1 F k , m , n ∣ ∣ 2 v_k = \frac{\sum_{m=0}^{H_s-1}\sum_{n=0}^{W_s-1}F_{k,m,n}}{||\sum_{m=0}^{H_s-1}\sum_{n=0}^{W_s-1}F_{k,m,n}||_2} vk=∣∣∑m=0Hs−1∑n=0Ws−1Fk,m,n∣∣2∑m=0Hs−1∑n=0Ws−1Fk,m,n
其中 v k ∈ R 1 × n v_k\in R^{1\times n} vk∈R1×n,将其堆叠在一起得到feature matrix: P ∈ R M × C F P\in R^{M\times C_F} P∈RM×CF
首先将Attention map分离成单通道Attention map:$A_{sum} $
然后对 A s u m A_{sum} Asum和网络最后一层输出的feature map进行BAP操作,得到全局深度特征: G G G
同样将其输入到分类网络;
作者对 D D D应用BAP,得到语义特征向量: V ∈ R M × N V \in R^{M\times N} V∈RM×N
区域独立性损失函数如下所示:
L R I L = ∑ i = 1 B ∑ j = 1 M max ( ∣ ∣ V j i − c j t ∣ ∣ 2 2 − m i n ( y i ) , 0 ) + ∑ i , j ∈ ( M , M ) , i ≠ j max ( m o u t − ∣ ∣ c i t − c j t ∣ ∣ 2 2 , 0 ) L_{RIL} = \sum_{i=1}^{B}\sum_{j=1}^{M}\max(||V_j^i-c_j^t||_2^2-m_{in}(y_i),0)+\sum_{i,j\in(M,M),i\neq j}\max(m_{out}-||c_i^t-c_j^t||_2^2,0) LRIL=i=1∑Bj=1∑Mmax(∣∣Vji−cjt∣∣22−min(yi),0)+i,j∈(M,M),i=j∑max(mout−∣∣cit−cjt∣∣22,0)
其中 c ∈ R M × N c\in R^{M\times N} c∈RM×N是 V V V的中心
c t = c t − 1 − α ( c t − 1 − 1 B ∑ i = 1 B V i ) c^t = c^{t-1}-\alpha(c^{t-1}-\frac{1}{B}\sum_{i=1}^{B}V_i) ct=ct−1−α(ct−1−B1i=1∑BVi)
B B B: batchsize
m i n m_{in} min:特征与特征中心的margin
m o u t m_{out} mout: 特征中心点之间的margin
α \alpha α:更新率,随着训练进行而减小
该损失函数的第一项是类内损失,目的是为了将 V V V拉近中心点 c c c,第二项是类间损失,目的是为了拉远距离;
考虑到假脸的关注区域应该与真实脸部的关注区域略有不同,因此作者将部分特征假脸限制在与真实脸部的特征中心相邻的位置,而不是对其进行固定。这样,作者在内部类中提供了较大的边距,以搜索有用的信息(如人脸)
最终的损失函数为:
L = λ 1 ∗ L C E + λ 2 ∗ L R I L L = \lambda_1 * L_{CE} + \lambda_2 * L_{RIL} L=λ1∗LCE+λ2∗LRIL
为了让不同的注意力图注意不同的区域,作者提出了Attention Guided Data Augmentations方法
注意力图 A k A_k Ak经过归一化以后得到 A k ∗ ∈ R H × W A_k^* \in R^{H\times W} Ak∗∈RH×W
然后利用高斯模糊生成一个退化的图片,最后再利用 A k ∗ A_k^* Ak∗作为权重来退化原始图片
I ′ = I × ( 1 − A k ∗ ) + I d × A k ∗ I^{'} = I\times(1-A_k^*) + I_d\times A_k^* I′=I×(1−Ak∗)+Id×Ak∗
作用: