Meta
https://arxiv.org/abs/2304.07193
DINOv2: Learning Robust Visual Features without Supervision
The recent breakthroughs in natural language processing for model pretraining on large quantities of data have opened the way for similar foundation models in computer vision. These models could greatly simplify the use of images in any system by producing
arxiv.org
https://github.com/facebookresearch/dinov2
GitHub - facebookresearch/dinov2: PyTorch code and models for the DINOv2 self-supervised learning method.
PyTorch code and models for the DINOv2 self-supervised learning method. - facebookresearch/dinov2
github.com
0. Abstract
1. Introduction
2. Related Work
Intra-image self-supervised training.
Discriminative self-supervised learning.
Scaling self-supervised pretraining.
Automatic data curation.
3. Data Processing
Data sources.
Deduplication.
Self-supervised image retrieval.
Implementation Details.
4. Discriminative Self-supervised Pre-training
Image-level objective (Caron et al., 2021).
Patch-level objective (Zhou et al., 2022a).
Untying head weights between both objectives.
Sinkhorn-Knopp centering (Caron et al., 2020).
KoLeo regularizer (Sablayrolles et al., 2019).
Adapting the resolution (Touvron et al., 2019).
5. Efficient implementation
Fast and memory-efficient attention.
Sequence packing.
Efficient stochastic depth.
Fully-Sharded Data Parallel (FSDP).
Model distillation.
6 Ablation Studies
6.1 Improved Training Recipe
6.2 Pretraining Data Source
6.3 Model Size and Data
6.4 Loss Components
6.5 Impact of Knowledge Distillation
6.6 Impact of Resolution
7 Results
Baselines.
7.1 ImageNet Classification
How far are we from weakly-supervised models?
Can we finetune the encoders?
Table 4: ImageNet-1k 데이터셋에서 고정된 사전 학습 특징(frozen pretrained features)에 대한 선형 평가(linear evaluation)를 나타낸다. 공개 혹은 비공개 데이터로 학습된 공개적으로 이용 가능한 모델들에 대해, 텍스트 감독(text supervision, text sup.) 여부를 포함하여 검증 세트에서 Top-1 정확도를 보고한다. 참고로, 검증 세트에서의 kNN 성능도 함께 보고한다. 아키텍처(Arch.)는 가능한 모든 구조를 비교하며, 특별히 명시되지 않는 한 해상도는 224 × 224로 설정된다. EVA-CLIP의 학습에 사용된 데이터셋은 맞춤형 혼합 데이터(custom mixture)이며, 자세한 내용은 논문(Fang et al., 2023)을 참조하기 바란다.
Robustness analysis.
• Im-A (ImageNet-A): ImageNet에서 어려운 샘플만 모아둔 데이터셋.
• Im-R (ImageNet-R): ImageNet의 복제 또는 변형 이미지들로 구성된 데이터셋.
• Im-C (ImageNet-C): ImageNet에 노이즈와 왜곡이 추가된 데이터셋.
• Sketch: 스케치 스타일의 이미지 데이터셋.
이 표는 DINOv2와 다른 모델들의 **도메인 일반화 성능(domain generalization)**을 비교한 결과를 나타낸다. 여기서 도메인 일반화란, 사전 학습된 모델이 학습하지 않은 새로운 데이터나 도메인에서 얼마나 잘 작동하는지를 평가하는 것이다.
7.2 Additional Image and Video classification Benchmarks
7.3 Instance Recognition
7.4 Dense Recognition Tasks
Semantic segmentation.
Frozen backbone in a SOTA pipeline.
Depth estimation.
Table 11: 고정된 특징(frozen features)을 사용한 깊이 추정(depth estimation) 결과를 나타낸다. 선형 분류기(linear classifier)를 Transformer 레이어 하나(lin. 1) 또는 네 개(lin. 4), 그리고 Ranftl et al. (2021)의 DPT 디코더(DPT)를 기반으로 학습시켰을 때의 성능을 보고한다. 세 개의 데이터셋에 대해 RMSE(metric)를 사용하며, 값이 낮을수록 더 좋다. 참고로, 각 벤치마크에서의 최신(state-of-the-art) 결과는 Li et al. (2022b)에서 가져온 값을 표 상단에 보고한다.
7.5 Qualitative Results
Semantic Segmentation and Depth Estimation.
Out-of-distribution generalization.
PCA of patch features.
Figure 9: 첫 번째 PCA 구성요소들의 시각화를 추가로 보여준다. 모든 이미지의 패치 간 PCA를 계산하고, 첫 세 가지 구성요소를 시각화한다. 각 구성요소는 특정 색상 채널에 대응하며, 포즈, 스타일, 또는 객체가 달라지더라도 유사한 이미지 간 동일한 부분이 일치한다. 배경은 첫 번째 PCA 구성요소의 점수가 음수인 패치를 제거하여 제거한다.
Patch matching.
8 Fairness and Bias Analysis
Figure 10: 이미지 간의 매칭 결과를 보여준다. 서로 다른 도메인, 포즈, 심지어는 객체에 속하더라도 유사한 의미적 정보를 공유하는 패치 수준의 특징들을 매칭한다. 이는 모델이 도메인을 넘어 전이하고, 서로 다른 객체의 유사한 부분 간 관계를 이해하는 능력을 보여준다.
Table 13: 성별, 피부 톤, 나이 그룹 간의 라벨 연관성 공정성(label association fairness)을 평가한 결과를 나타낸다. Goyal et al. (2022b)에서 제안한 프로토콜을 약간 수정하여 사용하였다. 백본(backbone)을 파인튜닝하는 대신, ImageNet-22k의 619개 클래스의 하위 집합에서 선형 분류기를 단순히 학습하였다.
Table 14: DINOv2를 재현(reproducing)하는 데 따른 탄소 배출량을 평가한 결과를 나타낸다. A100-40GB의 전력 소비를 400W로 가정하고, 전력 사용 효율(PUE)을 1.1, 그리고 탄소 집약도(carbon intensity factor)를 KWh당 0.385kg CO2e로 가정하여 계산하였다.
9 Estimating the Environmental Impact of Training our Models
10 Future work and Discussion
Acknowledgments.
DINOv2가 좋은 표현을 뽑아내는 핵심 구조
1. Self-Supervised Vision Transformer (ViT) 기반 구조
DINOv2는 ViT (Vision Transformer) 구조를 기반으로 하고, Self-Supervised Learning으로 학습된다.
즉, 이미지에 대한 레이블 없이도 의미 있는 표현을 학습할 수 있다.
- 이미지를 패치 단위로 나눠서 각 패치마다 feature vector를 만든다.
- 이 벡터들이 Transformer를 거쳐, 글로벌(전체 이미지) + 로컬(패치 단위) 표현을 학습한다.
2. Teacher-Student 구조로 학습함
DINOv2는 teacher network와 student network라는 두 개의 모델을 사용해서 학습한다.
- 두 네트워크는 같은 이미지를 서로 다른 방식으로 보며 서로 비슷한 feature를 뽑도록 유도한다.
- 정답(label) 없이도, 같은 이미지에 대해 비슷한 특징을 추출하게 되어 robust하고 일반화된 표현을 만든다.
3. KoLeo Regularizer 도입
KoLeo 정규화는 patch-level embedding 간 거리를 균등하게 분포시키는 데 쓰인다.
- 비슷한 이미지가 너무 가까이 몰리지 않도록 조정해준다.
- 결과적으로 feature space에서 분산이 잘 된 표현을 얻게 되어, 다양한 task에서 일반화가 잘 된다.
4. Register Token 도입 (Vision Transformers Need Registers 논문 기반)
- ViT는 학습 중 패치들끼리 정보를 교환하면서 학습한다.
- DINOv2는 여기에 Register Token이라는 추가 토큰을 넣어, 글로벌한 정보 흐름을 강화함.
- 이 Register들은 Transformer 내부에서 정보의 정류장 역할을 하며, patch 간 정보를 더 잘 통합하게 한다.
- 결과적으로 더욱 안정적이고 의미 있는 feature가 나온다.
💡 어떻게 좋은 표현을 “활용”하는가?
1. Linear Evaluation (선형 분류기만 붙여서 평가 가능)
- DINOv2는 학습된 표현이 매우 강력해서, 선형 분류기 하나만 붙여도 ImageNet에서 87%에 달하는 정확도를 낸다.
- 이건 “표현만으로도 거의 모든 걸 알고 있다”는 걸 뜻함.
# 예시: 학습된 backbone 불러오기
model = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitg14')
features = model(image) # -> [batch_size, 196, 1024] (patch-level features)
2. Downstream Tasks에 바로 사용 가능
DINOv2는 다양한 작업에 바로 붙여 쓸 수 있게 학습되어 있음:
작업어떻게 활용됨
분류 (classification) | 학습된 feature 위에 선형 레이어 하나만 붙여서 수행 |
깊이 추정 (depth) | DPT나 linear head만 붙이면 바로 동작 |
세그멘테이션 | multi-scale head나 Mask2Former 등으로 쉽게 확장 |
이미지 검색 | feature 간 유사도로 kNN 검색 가능 |
3. Pretrained 모델 사용법 요약
# ViT-B/14 backbone 불러오기
model = torch.hub.load('facebookresearch/dinov2', 'dinov2_vitb14')
# 이미지 feature 뽑기 (사전처리 필요)
features = model(image_tensor) # 예: [batch_size, 197, dim]
# 여기서 197은 [CLS] 토큰 + 196 패치
# dim은 768, 1024, 1280, 1536 (모델 크기에 따라 다름)
핵심 요약
요소설명
학습 방식 | Self-supervised, teacher-student 구조 |
특징 | 레이블 없이도 의미 있는 표현 학습 |
KoLeo | 표현 공간을 균등하게 만들어 일반화 성능 향상 |
Register Token | 정보 흐름을 강화해 더 안정적인 feature 추출 |
활용성 | 선형 분류기만으로도 고성능, 다양한 다운스트림 task에서 사용 가능 |
출력 형태 | [batch_size, patch 개수 + 1, dim] 행렬 형태의 feature |