DINOv2:自监督视觉特征「开箱即用」的时代开始
🎯 为什么重要:视觉终于等来「不靠文本」的通用特征
视觉预训练此前有两条路(论文 §1):
① 文本弱监督(CLIP / OpenCLIP / SWAG):用「图-文」对学,特征通用但受限于 caption 的描述力——精细的像素级信息(分割、深度)很难从文本里学出来;且需要亿级对齐语料。
② 纯自监督(MAE / DINO / iBOT):从图像本身学,理论上更通用。但此前大多在 ImageNet-1k(130 万张)上训,一放到下游任务就要 fine-tune,否则远不如 CLIP。
困境:自监督方法「概念上更对」,但在工程上一直输。
DINOv2 论文的核心 claim(§1 末):已有的自监督方法(尤其 iBOT)只要训在足够多、足够多样的筛选过的数据上,就能产出开箱即用的通用视觉特征。瓶颈不在算法新颖性,而在「scaling 的工程化」。这把 CV 的「foundation model」从「必须图文配对」拉回到「图像本身够用」。
💡 核心思想:四件已有零件 + 一个新数据集
DINOv2 的方法部分没有发明新 loss。它把已有的自监督组件拼到一起,并把每一个都调到「scale 后才显出价值」的版本(论文 §4):
🛠️ 五个让「自监督 scale 起来」的工程关键
| 设计 | 心智 | 为什么必要(论文依据) |
|---|---|---|
| ① 自动数据筛选 LVD-142M | 用自监督 ViT-H/16 嵌入 → 对 1.2B 网络爬取图做 k-means → 对每个 query 图像检索 4 个近邻 → 拼 142M 多样化数据集 | §3:自监督方法对数据质量极敏感。uncurated 数据掉点严重(Table 2:83.3 vs 85.8) |
| ② iBOT patch-level loss + untied heads | 随机 mask 学生分支的 patch,让教师头预测被遮 patch 的 prototype 分布 | §4:patch 级目标对密集预测(分割、深度)至关重要;§4 解开 DINO/iBOT 头权重共享后scale 上反而更好 |
| ③ Sinkhorn-Knopp centering | 用 SwAV 的 SK 算法(3 步迭代)替代 teacher 的 softmax+EMA centering | §4:避免 teacher 输出塌缩到少数 prototype,提升 batch 内分布均衡 |
| ④ KoLeo 正则 | $L_{\text{koleo}}=-\frac{1}{n}\sum_i\log d_{n,i}$,鼓励 batch 内特征均匀铺开 | §4 + Table 3a:让 instance retrieval(Oxford-M)mAP 涨 +8.3% |
| ⑤ 高分辨率短期 fine-tune | 224×224 训练主体,最后 10k iter 切到 518×518 | §6.6 Fig.6:达到接近全程高清训练的效果,但只花很少算力 |
📊 关键结果:在 8 大视觉任务上全面追平 / 超越弱监督
ImageNet-1k linear probe(论文 Table 4,frozen 特征 + 线性头)
| 方法 | 架构 | 数据 | 文本监督 | kNN val | linear val |
|---|---|---|---|---|---|
| OpenCLIP | ViT-G/14 | LAION-2B | ✓ | 83.2 | 86.2 |
| EVA-CLIP | ViT-g/14 | custom | ✓ | 83.5 | 86.4 |
| iBOT(prior SSL SOTA) | ViT-L/16 | INet-22k | ✕ | 72.9 | 82.3 |
| DINOv2 | ViT-g/14 | LVD-142M | ✕ | 83.5 | 86.5 |
相对此前自监督 SOTA(iBOT)+4.2%,并在不使用任何文本的前提下追平/略胜 OpenCLIP ViT-G(+0.3%)和 EVA-CLIP(+0.1%)。
鲁棒性 / 分布外泛化(论文 Table 6,linear probe)
| 方法 | 架构 | Im-A ↑ | Im-R ↑ | Im-C ↓ | Sketch ↑ |
|---|---|---|---|---|---|
| OpenCLIP | ViT-G/14 | 63.8 | 87.8 | 45.3 | 66.4 |
| iBOT | ViT-L/16 | 41.5 | 51.0 | 43.9 | 38.5 |
| DINOv2 | ViT-g/14 | 75.9 | 78.8 | 28.2 | 62.5 |
DINOv2 在 ImageNet-A 上比 iBOT 涨 +34.4%,比 OpenCLIP 涨 +12.1%。论文 §7.1:「+29.6% on A, +22.1% on R, +23.0% on Sketch vs iBOT」。
实例检索(论文 Table 9,Oxford/Paris)
| 方法 | Oxford-M | Oxford-Hard | Paris-Hard |
|---|---|---|---|
| OpenCLIP ViT-G/14 | 50.7 | 19.7 | 60.2 |
| iBOT ViT-L/16 | 39.0 | 12.7 | 47.0 |
| DINOv2 ViT-L/14 | 75.1 | 54.0 | 83.5 |
Oxford-Hard mAP 相对 iBOT +41%、相对 OpenCLIP +34%。SSL 特征在实例级粒度上反超弱监督。
视频 / 细粒度分类(论文 Table 7)
| 方法 | iNat2018 | iNat2021 | K400 | SSv2 |
|---|---|---|---|---|
| OpenCLIP ViT-G/14 | 73.0 | 76.0 | 78.3 | 35.8 |
| iBOT ViT-L/16 | 66.3 | 74.6 | 72.6 | 38.7 |
| DINOv2 ViT-g/14 | 81.6 | 85.7 | 78.4 | 38.3 |
在 iNaturalist(细粒度动植物)上 DINOv2 比 OpenCLIP +8.6 / +9.7%——「文本描述不出来的细节」正是自监督的强项。
🌐 在领域中的位置
DINOv2 之后,「视觉编码器」在大多数机器人 / VLA / 世界模型工作里成了默认选择:作为感知 backbone 接到 policy 上,几乎取代了 CLIP 的视觉部分。它证明了「scaling + 工程化」比「新算法」更关键——论文 §1 原话:「existing pretraining methods, especially self-supervised methods, can produce such features if trained on enough curated data」。
❓ 常见误区
DINOv2 是不是就是「放大了的 iBOT」?
本质上是,但放大过程中每一处都得调对。Table 1 ablation 显示:从 iBOT 到 DINOv2 总共 +9.1% kNN 提升,分别来自 LayerScale+StochDepth(+0.9)、KoLeo(+2.3)、batch size 3k(+1.2)、untie heads(+0.3)等十几处叠加。没有任何单点能解释一半的提升——是工程化的总和。
它真的不需要任何文本吗?
训练阶段不需要。但 LVD-142M 的数据来源包括 ImageNet-22k、Google Landmarks 等本身最初是带标签的,DINOv2 没用这些标签,只是把它们当作图像集合筛选。所以严格说是「训练时不用任何监督信号」,不是「数据来源完全无标签」。
为什么下游评估只用 linear probe / kNN,不 fine-tune?
这正是 foundation model 的「开箱即用」检验。Table 5 显示 fine-tune 还能再涨 +2% 以上(88.9% on INet-1k),但 fine-tune 是「可选」而非「必需」——这才是 DINOv2 区别于 MAE(必须 fine-tune)的关键。
为什么 ViT-g 只有 1.1B 参数?比 LLM 小多了。
论文 §5 解释:embedding dim 选 1536(24 heads × 64),是为了GPU 计算效率最优(multiple of 64/256)。比 Zhai 2022 的 1408/16 heads 略改,参数量与精度都几乎一致。
DINOv2 能用在视频 / 3D / 机器人吗?
能。Table 7 显示在 K400 / UCF / SSv2 上即使从未训过视频也接近 SOTA。在机器人领域,DINOv2 已是 RT-2 / OpenVLA / π0 等的常见视觉 backbone——这正是它成为「vision foundation model」的实际证据。