(论文笔记)FatFormer

366 阅读2分钟

Forgery-aware Adaptive Transformer for Generalizable Synthetic Image Detection CVPR2024

activation

之前的像UnivFD,由于采用固定参数的CLIP-ViT,导致模型对伪造表示学习不足,缺乏forgery adaption。作者可视化了UnivFD的Logit分布进行定性分析,发现UnivFD在unseen models上分布有大量重合

image.png 因此作者引入了两个关键设计帮助模型对伪造进行学习,包括伪造感知适配器(forgery aware adapter,FAA)和语言引导对齐(language-guided alignment,LGA)

method

  1. 伪造感知适配器(forgery aware adapter):这个模块主要包含两个部分,包括轻量级伪造提取器和一个频率提取器

image.png

  • 轻量级伪造提取器:该提取器包含两个卷积层和一个ReLU层用于提取图像的低级特征,组合在每两个encoder中,因为生成图像和真实图像在图像的低级特征上会有差异。
  • 频率提取器:之前的提取频率都使用离散傅里叶变换和离散余弦变换,这些变换损害了变换后的频率信息,使用离散小波变换(DWT)保留了图像特征空间结构,使用DWT提取图像频率信息,将输入分解为LL,LH,HL和HH4个不同的频段。之后inter-band attention和intra-band attention被用于提取频率信息,实现了不同位置的动态聚合。
  1. 语言引导对齐(LGA):包括patch-based enhancer和Text-guided interactor

image.png

  • patch-based enhancer:该部分接收由image encoder输出的patch tokens,通过局部图像patch tokens条件增强提示的上下文相关性,具体而言,先用image encoder的输出,即fimg(1:N)RN×Df_{img}^{(1:N)}\in\mathbb{R}^{N \times D}乘以context embeddings即pctxRC×Dp_{ctx}\in\mathbb{R}^{C\times D} 得到
Apbe=pctx(fimg(1:N))TA_{pbe} = p_{ctx}\cdot(f_{img}^{(1:N)})^{T}

ApbeRC×NA_{pbe}\in\mathbb{R}^{C\times N}是相似度矩阵,之后使用该ApbeA_{pbe}构建新的context embedding

p^ctx=softmax(Apbe)fimg(1:N)+pctx\hat{p}_{ctx}=softmax(A_{pbe})\cdot f_{img}^{(1:N)}+p_{ctx}
  • Text-guided interactor:为了引导编码器专注于与伪造相关的表示,提出了Text-guided interactor,它将局部图像patch tokens与全局文本prompt embedding对齐,具体流程同上:
Atgi=fimg(1:N)(ftext)TA_{tgi} = f_{img}^{(1:N)}\cdot {(f_{text})}^T
f^img(1:N)=softmax(Atgi)ftext+fimg(1:N)\hat{f}_{img}^{(1:N)}=softmax(A_{tgi})\cdot f_{text}+f_{img}^{(1:N)}

f^img(1:N)\hat{f}_{img}^{(1:N)}表示对齐的图像补丁标记。结合Augmented contrastive objectives,引导图像编码器专注于每个不同图像补丁内的伪造相关表示。

  • Augmented contrastive objectives:
S(i)=cos(fimg(0),ftext(i))S(i) = cos(f_{img}^{(0)}, f_{text}^{(i)})
S(i)=1Ntcos(f^img(t),ftext(i))S^{\prime}(i)=\frac{1}{N}\sum\limits_{t}cos(\hat{f}_{img}^{(t)},f_{text}^{(i)})
P^(i)=softmax((S(i)+S(i))/τ)\hat{P}(i)=softmax((S(i)+S^{\prime}(i))/\tau)

之后使用交叉熵求损失

L=ylogP^(y)(1y)log(1P^(y))\mathcal{L}=-y\cdot log\hat{P}(y)-(1-y)\cdot log(1-\hat{P}(y))

image.png