Skip to main content

DINOv2

DINOv2 は、Meta が DINO を 大規模化 + 高品質データ + distillation によって発展させ、汎用 visual backbone として一気に普及させた self-supervised foundation model です。

DINO からの変更点

改良内容
DataWeb から集めた raw image を、retrieval ベースで自動 curate (重複削除、品質確保)
ObjectiveDINO + iBOT (patch-level self-distillation + masked) を併用
ScaleViT-g/14 まで pretrain
DistillationViT-S / ViT-B / ViT-L へ蒸留して提供

何が嬉しいのか

DINOv2 features は、

  • ImageNet classification (linear probe / kNN)
  • Semantic segmentation
  • Depth estimation
  • 3D / matching / tracking
  • Open-vocabulary 3D

など、多くの downstream で fine-tune なしでも非常に強いことが知られています。Foundation backbone として、CLIP と並ぶ位置を占めるようになりました。

どこで使われているか

  • Depth Anything の backbone
  • SAM 系の image encoder
  • VGGT などの geometry model
  • Open-vocabulary 3D / NeRF feature field
  • 多くの VLM / robot policy の feature

数式で見る DINOv2 の複合目的

DINOv2 は、image-level の DINO objective と、patch-level の iBOT objective を組み合わせることで、global な semantic feature と dense な local feature を同時に強くします。簡略化すると、全体の loss は次のように書けます。

LDINOv2=LDINO[CLS]+λLiBOTpatch\mathcal{L}_{\mathrm{DINOv2}} = \mathcal{L}_{\mathrm{DINO}}^{[\mathrm{CLS}]} + \lambda\mathcal{L}_{\mathrm{iBOT}}^{\mathrm{patch}}

LDINO[CLS]\mathcal{L}_{\mathrm{DINO}}^{[\mathrm{CLS}]} は class token や global representation に対する self-distillation loss です。LiBOTpatch\mathcal{L}_{\mathrm{iBOT}}^{\mathrm{patch}} は masked patch の teacher distribution を student が予測する loss であり、λ\lambda は patch-level objective の重みです。

Masked patch の index 集合を M\mathcal{M} とし、patch ii に対する teacher distribution を pt(xi)p_t(\cdot\mid x_i)、masked view からの student distribution を ps(x~i)p_s(\cdot\mid \tilde{x}_i) とすると、patch-level loss は次のように書けます。

LiBOTpatch=1MiMkpt(k)(xi)logps(k)(x~i)\mathcal{L}_{\mathrm{iBOT}}^{\mathrm{patch}} = -\frac{1}{|\mathcal{M}|} \sum_{i\in\mathcal{M}}\sum_k p_t^{(k)}(x_i)\log p_s^{(k)}(\tilde{x}_i)

ここで、x~i\tilde{x}_i は mask された入力における patch ii の情報を表します。この式の気持ちは、「画像全体として同じ意味を持つだけではなく、各 patch が周囲の文脈からどのような意味を持つかも学ばせる」というものです。DINOv2 の dense feature が segmentation、depth、matching で強いのは、この patch-level な蒸留が局所構造を保つ方向に効くためです。

DINOv2 と CLIP

観点CLIPDINOv2
SupervisionCaptionなし (self-supervised)
Language alignmentありなし
Dense feature 品質中程度非常に高い
Zero-shot classification強い弱い (linear probe が必要)

両者は相補的で、よく一緒に使われます。

関連ページ

主なソース