首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DINOv3 也能抓异常?看 AD-DINOv3 如何精准发现微小缺陷(附源代码地址)

DINOv3 也能抓异常?看 AD-DINOv3 如何精准发现微小缺陷(附源代码地址)

原创
作者头像
CoovallyAIHub
发布2025-09-23 14:11:25
发布2025-09-23 14:11:25
17400
代码可运行
举报
运行总次数:0
代码可运行

异常检测一直是计算机视觉领域里的“老大难”:你得在大规模数据里,揪出那些“不合群”的小缺陷。

前不久,Meta 发布的 DINOv3 让我们见识了视觉基础模型的强大能力。而就在大家还沉浸于 DINOv3 的震撼时,中山大学的研究团队顺势出手,提出了一个新框架——AD-DINOv3

这不仅仅是“把 DINOv3 用起来”那么简单,而是一次针对异常检测场景的精心设计。


为什么异常检测这么难?

如果你在工厂车间巡检,一个产品上有个细小划痕,你能立马发现;如果是医院里的一张影像,有一块区域比正常组织略微异常,医生也能敏锐察觉。但换成计算机,这事就没那么容易了。

传统异常检测方法,往往有几个痛点:

  • 依赖大量标注:得先收集一堆“异常样本”来教模型,可现实里异常往往少得可怜。
  • 分布敏感:新产品、新场景来了,模型就容易失效,需要重新训练。
  • 难捕捉细粒度异常:小到一个裂纹、一点瑕疵,可能就被模型当成正常纹理忽略了。

于是,研究者们就盯上了“零样本异常检测”(Zero-Shot Anomaly Detection, ZSAD)。顾名思义,就是不用给模型提前喂目标数据,它也能识别出新的异常。听上去是不是很像“天赋异禀”的检测器?


DINOv3 的登场

在这个节点上,DINOv3(Meta 提出的超大规模自监督视觉模型)出现了。它通过对大量自然图像的训练,学到了非常强的通用视觉特征。用人话讲,就是它看过的东西足够多,能抓住“什么是物体”的关键语义。

这就像一个经验老道的质检员:虽然没见过你厂的产品,但凭直觉也能发现“这儿有点不对”。

但问题也随之而来:DINOv3 学到的主要是全局语义,它会更关注“整体是什么”,而对那些细小的、局部的异常未必足够敏感。要让它胜任异常检测,还得做点“定制化”。

screenshot_2025-09-22_17-16-17.png
screenshot_2025-09-22_17-16-17.png

中山大学的思路:AD-DINOv3

于是,中山大学的研究团队提出了AD-DINOv3,一个把 DINOv3 真正带入 ZSAD 的框架。和“生搬硬套”不同,他们做了几步关键的“微调”:

screenshot_2025-09-22_17-17-27.png
screenshot_2025-09-22_17-17-27.png

跨模态设计:视觉 + 文本

图像特征由 DINOv3 提取(包括 Patch tokens 和 CLS token)。

文本特征由 CLIP 的文本编码器提供(比如“一张正常的电路板照片”“一张有缺陷的电路板照片”)。

两者之间通过对比学习,让视觉和语言特征对齐。

这点有点像请了一个“语言专家”和一个“视觉专家”坐在一起讨论:一个告诉你“这是有裂痕的金属”,另一个去图像里找对应区域。

轻量级适配器(Adapters)

为了缩小 DINOv3 预训练和异常检测任务之间的差异,作者在图像和文本两边都插入了轻量级适配器。

好处是:模型主体保持冻结,不需要大规模重训。

相当于在“专家”和“任务需求”之间加了一层“翻译官”。

跨模态对比学习(CMCL)

这一部分专门训练视觉特征和文本特征,让它们在异常/正常的划分上更加一致。

结果就是:同样是“裂纹”,视觉分支和文本分支都能说“这不正常”。

异常感知校准模块(AACM)

这是论文的核心创新之一。CLS Token 原本关注的是整体语义,但现在作者通过 AACM 引导它去“盯”异常区域。

在训练时,CLS Token 会被迫对照异常掩码,学习更关注缺陷位置。

换句话说,AACM 就像一位师傅手把手教徒弟:“别光看大概,仔细看那条裂缝!”

多层特征融合

DINOv3 是分层的,低层捕捉细节,高层捕捉语义。AD-DINOv3 融合了 6th、12th、18th、24th 层的特征,保证既能看清楚“小瑕疵”,又能理解“大语义”。


实验结果:工业与医疗的双重验证

光说原理没用,得看效果。团队在 8 个工业和医疗数据集上做了全面测试。

工业场景

数据集:MVTec AD、VisA、BTAD、MPDD。

结果:AD-DINOv3 在 AUROC 和 F1 上全面领先,平均 AUROC 达到 94.2%。

screenshot_2025-09-22_17-22-04.png
screenshot_2025-09-22_17-22-04.png

比如在 MVTec AD 上,AUROC 提升到了 91.6%。

screenshot_2025-09-22_17-21-30.png
screenshot_2025-09-22_17-21-30.png

可视化结果:相比其他方法的模糊热图,AD-DINOv3 的缺陷定位更清晰,比如电路板上的小裂纹一眼就能看出来。

医疗场景

数据集:ISIC、ColonDB、ClinicDB、TN3K。

结果:在 ClinicDB 上,AUROC 高达 90.4%,比 AnomalyCLIP 提升近 8 个百分点。

screenshot_2025-09-22_17-21-47.png
screenshot_2025-09-22_17-21-47.png

可视化:在皮肤病灶、肠镜等场景中,AD-DINOv3 能更精准地圈出病变区域,误报更少。

一句话总结:无论是工厂质检还是医学影像,这个框架都能打。


消融实验:关键模块有多重要?

团队还做了消融实验,把模型“拆开”看每个组件的贡献。

screenshot_2025-09-22_17-23-54.png
screenshot_2025-09-22_17-23-54.png
  • 仅用 DINOv3 特征:AUROC 只有 76.2%,F1 只有 20.49%。
  • + CMCL:AUROC 飙升到 90.98%,说明跨模态对齐是关键。
  • + AACM:进一步提升到 91.6%,F1 也提升近 30 个点。
  • 多层特征:比只用最后一层多了约 +1.2% AUROC。

这里我自己的理解是:DINOv3 本身像个全能运动员,但缺乏针对异常检测的“专项训练”。CMCL 和 AACM 就相当于私人教练,帮它把注意力放在正确的地方。


思考感悟

我读完论文最大的感受是:

  • 基础模型的潜力 —— DINOv3 并不是直接拿来即用,而是通过巧妙设计(Adapters + CMCL + AACM)变成了异常检测的利器。
  • 跨模态的重要性 —— 光靠视觉特征不够,语言的“语义提示”是一个很好的补充。
  • 训练与推理的平衡 —— AACM 只在训练时使用,推理阶段不增加开销,这点很聪明。

这让我想到一句话:大模型就像“原石”,真正的价值要靠应用场景里精雕细琢才能体现。


总结

AD-DINOv3 是第一个将 DINOv3 应用于零样本异常检测的框架。

创新点包括:轻量级适配器、跨模态对比学习、异常感知校准模块、多层特征融合。

在 8 个工业和医疗数据集上验证有效,全面领先当前 SOTA 方法。

更重要的是,它展示了视觉基础模型在细粒度检测任务中的巨大潜力。

未来,像 AD-DINOv3 这样的框架,或许能让工业质检更高效、让医学影像诊断更精准,也为基础模型和应用结合提供了更多启发。

论文及源码地址

代码语言:javascript
代码运行次数:0
运行
复制
论文地址:https://arxiv.org/pdf/2509.14084
源码地址:https://github.com/Kaisor-Yuan/AD-DINOv3

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么异常检测这么难?
  • DINOv3 的登场
  • 中山大学的思路:AD-DINOv3
    • 跨模态设计:视觉 + 文本
    • 轻量级适配器(Adapters)
    • 跨模态对比学习(CMCL)
    • 异常感知校准模块(AACM)
    • 多层特征融合
  • 实验结果:工业与医疗的双重验证
    • 工业场景
    • 医疗场景
  • 消融实验:关键模块有多重要?
  • 思考感悟
  • 总结
    • 论文及源码地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档