不用训练检测器:TRAIL 让冻结的基础模型自己指出照片哪块被 AI 改过

🧠 大模型影像论文精读 · 2026-09-02 · Image Forensics · Foundation Model · Edit Localization · DINO
arXiv 2026-08 · AI 修图区域定位(影像取证):零训练,读冻结视觉基础模型的扰动响应找出被改区域

判断一张照片哪里被 AI 动过手脚,过去要么靠水印和元数据这类事后凭证,要么专门训练一个检测网络。这篇论文的做法看起来有点不讲理:什么都不训,拿一个冻结的视觉基础模型,把图加一层固定扰动过两遍,看哪些图块的特征「晃」得厉害——晃得最凶的地方,往往就是被修过的区域。

生成式填充已经是修图软件的标配:抹路人、扩图、换天空,一键完成。但改完之后痕迹在哪?水印和内容凭证(C2PA 这类附在文件里的「出生证明」)一导出、一截图就丢了,于是只能被动取证:直接看像素找破绽。主流做法是收集大量「原图—修改图—被改区域」三元组,训练一个专门输出 mask(被改区域的遮罩图)的定位网络。这条路有两个死穴:标注贵,而且编辑模型一换代,检测器就得重训。

作者没有再造检测器,而是去「问」基础模型。把图过一遍冻结的 DINO(自监督训练出来的视觉基础模型,这里用的是 70 亿参数的 DINOv3;「冻结」即参数一个都不更新),再把同一张图叠上一层按 Haar 小波(最简单的明暗交替方块波)规则生成的固定轻微扰动,再过一遍;然后把图切成小方块(patch,每块对应一个特征向量),逐块比较两遍之间特征挪了多远,就得到一张热力图。没有定位头,没有任何训练。为什么能行?基础模型在海量自然图像上学到的特征很「稳」:真实区域的噪声、纹理、光照是连续的,经得起一点扰动;被生成模型填进去的区域在这种结构上是脆弱的,一推就晃。

两个附带发现比主结果更值得记。其一,扰动要加在整张图上:全图扰动时 AUROC 为 0.903,只加局部掉到 0.857,把图块裁开独立编码更是掉到 0.735——「这块反常」只有对照整图才成立,逐块分析的取证方法天生吃亏。其二,最敏感的不是最深层:在 16 个 DINO 编码器上,最好的特征都出现在约八成深度(归一化深度 0.80–0.94),太浅只剩纹理、太深只剩语义,而「与整图协不协调」恰好在这一层读得出来。

成色如何?在 CocoGlide(COCO 真图被 GLIDE 修补生成的公开基准)80 张训练没见过的测试图上,TRAIL 的 patch 级 AUROC(随机抽一个被改图块和一个干净图块,能认出被改那个的概率)达到 0.903,与用 mask 标注训练的监督方法 Detective SAM(0.912)只差 0.9 个点;换到泊松插值这种完全不同的编辑方式,是 0.855 对 0.864,同样几乎持平。零训练追平监督训练,是这篇真正的卖点。

往真实工作流里放,它至少能落在三处。相册与修图软件可以在 AI 消除之后顺手生成一张「改动热力图」,用户知道自己改了哪,分享时也能选择保留;平台审核不必等编辑器厂商配合,对成图直接做零训练筛查,嫌 70 亿参数太重就先拿小编码器粗筛、再精查;反过来,它还能给修图模型当验收指标——改动热力图越平,说明修得越不留痕。

局限也要说清。边界精度还差口气:固定阈值下 Dice(定位结果与真实改动区域的重叠度)只有 0.619,监督方法是 0.709,事后挑阈值才能到 0.790,说明它给出的是「大致区域」而非精确轮廓;在「换内容」式的语义拼接上落后更多(0.811 对 0.904)——它擅长抓接缝不自然,不擅长判断「这块内容本身可不可能存在」。此外 headline 评测只有 80 张图,规模偏小;70 亿参数模型要过两遍,单张成本不算低。

它更像一个提醒:定位「哪里被改过」也许本来就不是非训不可的任务,答案已经躺在基础模型里,缺的只是把读数取出来的办法。

论文来源:arXiv 原文 ↗

← 返回 大模型影像论文精读