Meta DINOv2:无监督训练出吊打有监督的视觉特征,1.42 亿图片零标注,线性层直出 SOTA,CV 的 Foundation Model 终于来了
2026/6/10 6:54:31 网站建设 项目流程

Meta DINOv2:无监督训练出吊打有监督的视觉特征,1.42 亿图片零标注,线性层直出 SOTA,CV 的 Foundation Model 终于来了

💡 还在为每个 CV 任务从头训模型?DINOv2 一次预训练,分类/分割/深度估计全拿下,连线性层都能刷 SOTA!Meta FAIR 出品,1.42 亿图片零标注训练,ViT-g/14 模型 87.1% ImageNet 线性精度,跨域鲁棒性炸裂。还有 XRay-DINO 做医学影像、Cell-DINO 做生物荧光显微、dino.txt 做零样本视觉语言对齐。2025 年已进化到 DINOv3,但 DINOv2 依然是视觉基础模型最实用的选择。

📌 目录

  • 1. DINOv2 是什么?
  • 2. 为什么 DINOv2 这么强?
  • 3. 四档模型全系性能
  • 4. 三行代码加载模型
  • 5. 五大下游任务开箱即用
  • 6. Registers:消除 ViT 伪影
  • 7. 特殊变体:XRay-DINO / Cell-DINO / dino.txt
  • 8. 与其他视觉基础模型对比
  • 9. 训练与评估
  • 10. 优缺点与使用建议
  • 11. 总结

1. DINOv2 是什么?

DINOv2是 Meta AI Research (FAIR) 提出的自监督视觉特征学习方法,全称DINOv2: Learning Robust Visual Features without Supervision

核心卖点:1.42 亿图片,零标注训练,产出的视觉特征直接加线性层就能在各类 CV 任务上达到 SOTA。

  • 🔗 项目地址:https://github.com/facebookresearch/dinov2
  • 📄 论文 1:DINOv2: Learning Robust Visual Features without Supervision
  • 📄 论文 2:Vision Transformers Need Registers
  • 🌐 Demo:dinov2.metademolab.com
  • 📝 Blog:Meta AI Blog
  • 🔮 继任者:DINOv3 (2025.8)

一句话总结

DINOv2 = 自监督预训练 + 1.42 亿图片 + 零标注 → 通用视觉特征 → 线性层直出 SOTA → 跨域鲁棒,无需微调

2. 为什么 DINOv2 这么强?

四大核心创新

创新说明效果
自监督 + 知识蒸馏DINO 自监督 + 大模型蒸馏小模型小模型也能接近大模型性能
1.42 亿图片 LVD-142M自动策划的大规模数据集数据量和多样性远超 ImageNet
iBOT 损失结合 DINO + iBOT 双损失同时学好全局和局部特征
高分辨率适配Patch 大小 14×14更精细的空间特征

与 DINO v1 的区别

维度DINO v1DINOv2
数据ImageNet-1K (1.3M)LVD-142M (142M)
模型规模ViT-B/LViT-S/B/L/g(21M-1.1B)
训练方式自监督自监督 +知识蒸馏
下游任务需要微调线性层直出 SOTA
跨域迁移一般鲁棒,无需微调

💡 关键差异:DINOv2 不只是换了个数据集,它证明了无监督训练的视觉特征可以和有监督训练一样好,甚至跨域更好

可视化:自动分割一切

DINOv2 的 Patch 特征天然具有语义分割能力——将前三主成分映射到 RGB,相同语义的区域自动同色:

输入视频 → DINOv2 提取 Patch 特征 → PCA 降维到 3D → 映射为 RGB 结果:同一物体自动同色,不同物体自动异色 无需任何分割标注!

3. 四档模型全系性能

Backbone 性能

模型参数量RegistersImageNet k-NNImageNet Linear
ViT-S/14distilled21M79.0%81.1%
ViT-S/14distilled21M79.1%80.9%
ViT-B/14distilled86M82.1%84.5%
ViT-B/14distilled86M82.0%84.6%
ViT-L/14distilled300M83.5%86.3%
ViT-L/14distilled300M83.8%86.7%
ViT-g/141.1B83.5%86.5%
ViT-g/141.1B83.7%87.1%

💡 ViT-g/14 + Registers 达到87.1% ImageNet 线性精度,仅用线性层!这意味着 DINOv2 提取的特征质量极高。

如何选模型?

场景推荐模型理由
移动端/边缘设备ViT-S/1421M 参数,最快
通用部署ViT-B/1486M,性能/速度平衡
追求精度ViT-L/14 + Reg300M,86.7% 精度
最佳精度ViT-g/14 + Reg1.1B,87.1% 精度

4. 三行代码加载模型

仅需 PyTorch

importtorch# 加载 DINOv2 backbonemodel=torch.hub.load('facebookresearch/dinov2','dinov2_vitl14_reg')# 提取特征features=model(image_tensor)# [1, 384] ViT-L 特征向量

所有可用模型

# DINOv2 基础版dinov2_vits14=torch.hub.load('facebookresearch/dinov2','dinov2_vits14')dinov2_vitb14=torch.hub.load('facebookresearch/dinov2','dinov2_vitb14')dinov2_vitl14=torch.hub.load('facebookresearch/dinov2','dinov2_vitl14')dinov2_vitg14=torch.hub.load('facebookresearch/dinov2','dinov2_vitg14')# DINOv2 + Registers(推荐)dinov2_vits14_reg=torch.hub.load('facebookresearch/dinov2','dinov2_vits14_reg')dinov2_vitb14_reg=torch.hub.load('facebookresearch/dinov2','dinov2_vitb14_reg')dinov2_vitl14_reg=torch.hub.load('facebookresearch/dinov2','dinov2_vitl14_reg')dinov2_vitg14_reg=torch.hub.load('facebookresearch/dinov2','dinov2_vitg14_reg')# 带分类头的完整模型dinov2_vitl14_lc=torch.hub.load('facebookresearch/dinov2','dinov2_vitl14_lc')dinov2_vitl14_reg_lc=torch.hub.load('facebookresearch/dinov2','dinov2_vitl14_reg_lc')

💡 加载 backbone 只需要 PyTorch,不需要安装任何其他依赖!


5. 五大下游任务开箱即用

任务一:图像分类

  • Linear Head:1 层或 4 层线性分类头
  • 所有 4 档 backbone 均有预训练分类头可供下载
  • 也可通过torch.hub.load直接加载完整分类模型

任务二:深度估计

数据集头部类型说明
NYUd(室内)Linear / Linear4 / DPT室内深度估计
KITTI(室外)Linear / Linear4 / DPT自动驾驶场景
  • 提供DPT 头(Dense Prediction Transformer),适合密集预测
  • Linear 头轻量快速,DPT 头精度更高

任务三:语义分割

数据集头部类型说明
ADE20KLinear / Multi-scale / Mask2Former150 类场景解析
VOC2012Linear / Multi-scale21 类语义分割
  • ViT-g/14 在 ADE20K 上提供Mask2Former完整模型
  • Multi-scale 头支持多尺度推理,精度更高

任务四:零样本视觉语言对齐(dino.txt)

# 加载 dino.txt 模型model=torch.hub.load('facebookresearch/dinov2','dinov2_vitl14_reg4_dinotxt_tet1280d20h24l')
  • 基于 DINOv2 Meets Text
  • 图像级和像素级的视觉-语言对齐
  • 零样本分类和分割

任务五:特征提取 + 最近邻检索

DINOv2 的特征天然适合:

  • 图像检索:提取特征 → k-NN 搜索
  • 聚类分析:PCA 降维 → 可视化
  • 相似度计算:余弦相似度
features=model(images)# [B, dim]similarities=features @ features.T# 交叉相似度矩阵

6. Registers:消除 ViT 伪影

问题:ViT 的高频伪影

原始 DINOv2 在注意力图中出现伪影 token(artifact tokens),这些 token 聚集了大量注意力但不对应任何有意义的图像区域。

解决方案:Vision Transformers Need Registers

在 ViT 中添加额外的 register token,充当注意力的"垃圾桶":

版本k-NNLinear伪影
ViT-L/14 无 Reg83.5%86.3%❌ 有伪影
ViT-L/14 + Reg83.8%86.7%✅ 无伪影
ViT-g/14 无 Reg83.5%86.5%❌ 有伪影
ViT-g/14 + Reg83.7%87.1%✅ 无伪影

💡 加 Registers 不仅消除伪影,还提升了精度!推荐始终使用 +Reg 版本


7. 特殊变体:XRay-DINO / Cell-DINO / dino.txt

🏥 XRay-DINO:医学影像

  • 论文:Advancing human-centric AI for robust X-ray analysis
  • 模型:ViT-L/16
  • 需填表申请下载
  • 许可:FAIR Noncommercial Research License(仅限研究用途)

🔬 Cell-DINO:生物荧光显微

  • 论文:Cell-DINO: Self-Supervised Image-based Embeddings for Cell Fluorescent Microscopy(PLOS Comp Bio)
  • 2025.12.16 新增

🧬 Channel-Adaptive DINO:生物学

  • 论文:Scaling Channel-Adaptive Self-Supervised Learning
  • 适用于多通道生物图像(如荧光显微多通道)
  • 2025.12.16 新增

📝 dino.txt:视觉语言对齐

  • 论文:DINOv2 Meets Text
  • 基于 ViT-L/14 + Registers
  • 统一的图像级 + 像素级视觉语言对齐框架
  • 2025.06.11 新增

8. 与其他视觉基础模型对比

对比维度DINOv2CLIPSAMMAESupervised ViT
训练方式自监督对比学习提示学习掩码自编码有监督
训练数据142M 图片400M 图文对11M 图像ImageNet-1KImageNet-1K/21K
标注需求❌ 零标注文本描述需要标注❌ 零标注✅ 需要标注
图像分类⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
语义分割⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
深度估计⭐⭐⭐⭐⭐⭐⭐⭐⭐
跨域迁移⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
零样本能力⭐⭐⭐ (dino.txt)⭐⭐⭐⭐⭐⭐⭐⭐⭐
特征质量⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
无需微调

DINOv2 的独特优势

  1. 纯视觉特征,不依赖文本:比 CLIP 更"纯粹"的视觉理解
  2. 跨域鲁棒性最强:医学影像/卫星图/艺术画/视频帧都能用
  3. 下游任务最全:分类+分割+深度+检索,一个 backbone 全搞定
  4. 无需微调:线性层直出 SOTA,省时省力

9. 训练与评估

训练配置

配置节点数GPU训练时间k-NNLinear
ViT-L/16 short4 A100-80GB32~1 天81.6%82.9%
ViT-L/14 full12 A100-80GB96~3.3 天82.0%84.5%

环境安装

# 推荐 condacondaenvcreate-fconda.yaml conda activate dinov2# 或 pippipinstall-rrequirements.txt# 密集预测任务(深度/分割)需要额外依赖condaenvcreate-fconda-extras.yaml conda activate dinov2-extras

评估方式

方式命令说明
k-NNpython dinov2/run/eval/knn.py最近邻分类
Linearpython dinov2/run/eval/linear.py线性探针
Log Regressionpython dinov2/run/eval/log_regression.py逻辑回归

10. 优缺点与使用建议

✅ 优点

维度评分说明
特征质量⭐⭐⭐⭐⭐线性层直出 SOTA
跨域鲁棒⭐⭐⭐⭐⭐无需微调即可跨域使用
易用性⭐⭐⭐⭐⭐torch.hub.load三行代码
模型齐全⭐⭐⭐⭐⭐4 档大小 + Registers + 蒸馏版
下游任务⭐⭐⭐⭐⭐分类/分割/深度/检索/零样本全覆盖
特殊领域⭐⭐⭐⭐XRay-DINO / Cell-DINO / Channel-Adaptive
可视化⭐⭐⭐⭐⭐PCA 特征自动语义分割

⚠️ 注意事项

事项说明
训练代码仅支持Linux,需 PyTorch 2.0 + xFormers
ViT-g/141.1B 参数,推理需要较大 GPU 内存
XRay-DINO需填表申请,仅限非商业研究
许可证模型权重使用 FAIR 许可,需确认商用合规
DINOv32025.8 已发布 DINOv3,可关注

💡 使用建议

  1. 优先用 +Reg 版本:消除伪影 + 提升精度,没有理由不用
  2. ViT-B/14 是甜点:86M 参数,84.6% 精度,速度和质量的最佳平衡
  3. 特征直接用:不需要微调 backbone,只需训一个线性头
  4. 密集预测用 DPT:深度估计/分割用 DPT 头,比 Linear 头效果好
  5. 关注 DINOv3:2025 年 8 月已发布继任者

11. 总结

DINOv2 是视觉基础模型领域的里程碑之作

  • 🔥零标注训练:1.42 亿图片,不需要任何标签
  • 🎯线性层直出 SOTA:ViT-g/14 + Reg 达到 87.1% ImageNet 线性精度
  • 🌍跨域鲁棒:无需微调,医学/卫星/艺术/视频全场景可用
  • 📦开箱即用torch.hub.load三行代码加载
  • 🏥特殊领域扩展:XRay-DINO (医学) / Cell-DINO (生物) / Channel-Adaptive (多通道)
  • 📝dino.txt:图像级+像素级视觉语言对齐,零样本能力
  • Registers:消除 ViT 伪影,提升精度
  • 🔮DINOv3 续作:2025.8 已发布,持续进化

推荐指数:⭐⭐⭐⭐⭐

如果你需要通用视觉特征——不管是分类、检索、分割、深度估计还是零样本任务——DINOv2 都是当前最实用、最强大的选择。一个 backbone 解决所有 CV 任务,这就是视觉 Foundation Model 应该有的样子。

📢 项目地址:https://github.com/facebookresearch/dinov2


标签:#Meta #DINOv2 #自监督学习 #视觉基础模型 #ViT #计算机视觉 #深度学习 #FeatureExtraction

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询