Attribution as Retrieval: Model-Agnostic AI-Generated Image Attribution¶
会议: CVPR 2026
arXiv: 2603.10583
代码: https://github.com/hongsong-wang/LIDA
领域: 图像取证 / AI生成图像归属
关键词: deepfake attribution, image retrieval, bit-plane, model-agnostic, few-shot
一句话总结¶
将 AI 生成图像的归属问题从分类范式重新定义为实例检索范式,提出基于低位平面指纹的模型无关框架 LIDA,通过无监督预训练和少样本归属适应,在零样本和少样本设置下实现 SOTA 的 Deepfake 检测和图像归属性能。
研究背景与动机¶
领域现状:随着 AIGC 技术快速发展,合成图像越来越逼真,检测和归属 AI 生成图像已成为关键的安全研究方向。现有方法分两类——生成式图像水印(需访问生成模型)和 AI 生成图像归属(独立于生成过程)。
现有痛点:现有归属方法将问题视为分类任务,存在三个核心缺陷:(1) 依赖模型——需要访问生成模型本身;(2) 缺乏通用性——对新的、未见过的生成器难以扩展;(3) 闭集假设——训练时需要所有生成器已知,open-set 场景表现差。
核心矛盾:AI 图像生成器快速迭代演化,而归属系统需要频繁重新训练才能适应新生成器,这种"训练-部署-重训"循环严重限制实用性。
本文目标:设计一个模型无关的归属框架,不需要访问任何生成模型,不需要对新生成器重训练,仅需几张样本就能将新生成器纳入归属系统。
切入角度:将归属问题从分类重新定义为实例检索——训练一个通用的特征编码器,对查询图像在注册数据库中检索最相似的图像来确定来源。
核心 idea:利用图像低位平面作为生成指纹输入,通过无监督预训练学习噪声结构表示,再用少量样本进行归属适应,实现基于检索的开放集归属。
方法详解¶
整体框架¶
LIDA 想解决的是一个很现实的窘境:AI 图像生成器层出不穷,而把"这张图来自哪个生成器"做成分类任务的归属系统,每来一个新生成器都得重训一遍。它的破局思路是把归属从分类改写成检索——训练一个通用的特征编码器,推理时把查询图像编码成向量,再去注册数据库里找最近邻,谁离得最近就归属给谁。整条 pipeline 分三步:先从 RGB 图像剥出低位平面当作生成指纹,再在大规模真实图像上无监督预训练这个编码器,最后用每个生成器寥寥几张图做少样本适应。这样新增一个生成器只需往数据库里塞几张样本,编码器本身不必再动。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["RGB 图像"] --> B["低位指纹生成<br/>取最低 3 位平面并二值化"]
B --> C["无监督预训练<br/>ImageNet 指纹图分类 pretext"]
C --> D["少样本归属适应<br/>中心损失 + 真实原型对比损失"]
D --> E["注册数据库<br/>各生成器类心 + 真实原型"]
Q["查询图像 → 低位指纹 → 编码器"] -->|"离真实原型远判为 AI"| F["检索最近类心"]
E --> F
F --> G["归属结果"]
关键设计¶
1. 低位指纹生成:把生成器的"笔迹"从图像内容里抠出来
直接拿 RGB 图像做归属会失败,因为真假图像和不同生成器的图像在特征空间里彼此混叠——视觉内容主导了表示,淹没了生成器留下的细微痕迹。这里的观察是:生成器的固有伪影主要藏在低位平面里。于是对每个通道做位平面分解 \(\mathbf{x}_c = \sum_{k=0}^{7} 2^k \cdot \mathbf{b}_c^k\),只取最低 3 个位平面再二值化:
高位平面承载的是人眼可见的内容,被整段丢弃;剩下的低位指纹几乎不含语义,却把生成器特有的噪声结构放大出来。在这个指纹空间里,真实图像和 AI 图像清晰分离,同一生成器的图像还会自然聚成一簇——这正是后面检索能work的前提。整个提取过程只是几行位操作,不引入任何额外参数。
2. 无监督预训练:先在真实图像上学到一套可迁移的噪声结构表示
少样本适应阶段每个生成器只有几张图,从零训练编码器必然过拟合,所以需要一个好的权重起点。做法是把编码器放在大规模真实图像(ImageNet 的指纹图)上预训练,以图像分类作为 pretext task,损失为标准交叉熵 \(\mathcal{L}_P = -\sum_{b=1}^{B} \sum_{c=1}^{C} s_b^c \log q_b^c\)。骨干用 ResNet-50,但刻意移除了低层的下采样,好让指纹里的空间结构尽量保留下来。这里有个微妙之处:预训练只用真实图像、完全不碰任何生成器样本,但学到的"固有噪声结构"是可迁移到取证下游任务的,因此微调时收敛更快、表现也更稳。
3. 少样本归属适应:用几张图微调,同时小心别毁掉预训练学到的结构
适应阶段走两阶段归属范式——先判真假,再归属到具体生成器,配两个互补的损失。一是中心损失 \(\mathcal{L}_A = \sum_{i=1}^{m} \|x_i - c_{y_i}\|_2^2\),把同一生成器的特征往各自类心拉拢,类心 \(c_j\) 按每个 batch 内属于该类的样本做滑动更新:
二是真实原型对比损失 \(\mathcal{L}_D\),把真实图像拉近真实原型、把 AI 图像推远,专门负责真假检测那一关。总损失 \(\mathcal{L} = \mathcal{L}_A + \lambda \mathcal{L}_D\)。这里关键的选择是刻意不用交叉熵:交叉熵会逼着特征去对齐分类边界,从而把预训练辛苦学到的特征空间结构搅乱,而中心损失更像一个正则项,只约束类内紧凑、不强行重排整个空间,因此在每类只有几张图的极端少样本下反而更稳。
一个完整示例¶
假设数据库里已注册了 3 个生成器(SD、Midjourney、DALL·E),每个用 1 张图做过适应,外加一组真实图像原型。来一张待查图像时,先剥出它的低位指纹,过编码器得到特征向量;\(\mathcal{L}_D\) 学出的真实原型先判它是不是真实图——若离真实原型足够远,判为 AI 生成,进入归属阶段;再把它和 3 个生成器各自的类心比距离,落到最近的那一簇(比如离 SD 类心最近)就归属为 SD。若此时冒出第 4 个生成器,不必重训编码器,只需拿它的几张图编码后注册进数据库,下次查询自然能被检索到——这就是"归属即检索"带来的开放集扩展能力。
损失函数 / 训练策略¶
- 预训练阶段:ImageNet 指纹图像上的分类交叉熵 \(\mathcal{L}_P\)(仅作 pretext task)
- 微调阶段:中心损失 \(\mathcal{L}_A\)(归属类内聚拢)+ 真实原型对比损失 \(\mathcal{L}_D\)(真假检测),合成 \(\mathcal{L} = \mathcal{L}_A + \lambda \mathcal{L}_D\)
- 类心以滑动方式按 batch 内同类样本更新(公式见上)
实验关键数据¶
主实验¶
在 GenImage 数据集上 1-shot 和 5-shot 归属结果 (Rank-1 / mAP %):
| 方法 | 1-shot Rank-1 | 1-shot mAP | 5-shot Rank-1 | 5-shot mAP |
|---|---|---|---|---|
| ResNet | 17.4 | 37.5 | 19.4 | 25.0 |
| DIRE | 14.3 | 34.8 | 18.7 | 24.8 |
| ESSP | 17.0 | 36.0 | 17.5 | 23.7 |
| LIDA (Ours) | 40.4 | 61.5 | 76.9 | 54.5 |
消融实验¶
| 配置 | 关键指标 | 说明 |
|---|---|---|
| RGB 输入 | 特征空间中真假混合 | PCA 可视化无法区分不同生成器 |
| 低位指纹输入 | 特征空间中清晰聚类 | 真实和 AI 图像分离,同生成器图像聚拢 |
| 无预训练直接微调 | 性能显著下降 | 缺乏通用噪声结构表示 |
| 交叉熵替代中心损失 | 性能下降 | 破坏预训练特征空间结构 |
关键发现¶
- 低位平面指纹是区分生成器的关键——不同生成器在低位产生显著不同的噪声模式
- 检索范式天然支持开放集——新增生成器只需添加几张样本到数据库,无需重训练模型
- 1-shot 设置下 LIDA 的 mAP 已比 ResNet baseline 高出 24 个点
- 5-shot 设置下性能大幅跃升,Rank-1 从 40.4% 升至 76.9%
亮点与洞察¶
- 范式创新:将归属从分类转为检索,彻底解决了对新生成器的扩展性问题
- 低位平面作为指纹输入简单高效——几行代码的位操作就能提取
- 避免使用交叉熵的设计选择很精妙——保护预训练特征空间结构对少样本学习至关重要
- 提供"证据型归属"——检索到的相似图像本身就是归属决策的证据
局限与展望¶
- 低位平面对 JPEG 压缩等后处理操作的鲁棒性需要进一步验证
- 注册数据库的规模和质量直接影响归属准确率
- 当前仅在图像级别归属,未扩展到视频生成器
- 对高度相似的同族生成器(如 SD v1.4 vs v1.5)区分能力可能有限
相关工作与启发¶
- Yu et al. (GAN fingerprint):首次系统研究 GAN 指纹,但限于闭集分类
- Tree-Ring/Gaussian Shading:生成式水印方法,需访问生成模型
- DIRE:使用扩散重建差异检测,但归属能力弱
- 启发:其他取证任务(如 deepfake 视频检测、AI 文本检测)也可探索"检测作为检索"范式
评分¶
- 新颖性: ⭐⭐⭐⭐ 将归属建模为检索是很好的范式转变,低位指纹作为输入简洁有效
- 实验充分度: ⭐⭐⭐⭐ GenImage 和 WildFake 两个大规模数据集,零样本/少样本多设置评估
- 写作质量: ⭐⭐⭐⭐ 方法描述清晰,实验设计合理
- 价值: ⭐⭐⭐⭐ 实用性强,模型无关+少样本适应解决了真实场景的关键需求