Overview
DINOv2 (Self-Distillation with No Labels v2) is a self-supervised Vision Transformer pre-training method from Meta AI. It produces high-performance visual features using a purely self-supervised training regime on 142M images — no labels required during pre-training. The pretrained backbones are paired with a lightweight linear classification head for ImageNet-1K inference, outputting 1000-class logits.
All models use a ViT/14 patch size (14x14 patches) and are evaluated at 224x224 input resolution. Some variants add register tokens (arXiv:2309.16588) — extra learnable tokens that absorb the attention artifacts otherwise seen in patch-token feature maps, giving slightly better accuracy with the same backbone size.
See DINO for the original first-generation models.
Model Variants
| Model | Architecture | Params | GFLOPs | Top-1 Acc | Validated Devices | Config |
|---|---|---|---|---|---|---|
dinov2_vits14_lc |
ViT-S/14 distilled | 21M | 4.6 | 81.1% | TDA4VH | dinov2_vits14_lc_config.yaml |
dinov2_vits14_reg_lc |
ViT-S/14 distilled + registers | 21M | 4.6 | 80.9% | TDA4VH | dinov2_vits14_reg_lc_config.yaml |
dinov2_vitb14_lc |
ViT-B/14 distilled | 86M | 17.6 | 84.5% | TDA4VH | dinov2_vitb14_lc_config.yaml |
dinov2_vitb14_reg_lc |
ViT-B/14 distilled + registers | 86M | 17.6 | 84.6% | TDA4VH | dinov2_vitb14_reg_lc_config.yaml |
Recommended for edge deployment: dinov2_vits14_lc (best accuracy/compute trade-off)
Note: ViT-L/14 and ViT-g/14 variants (
dinov2_vitl14_lc,dinov2_vitg14_lc, and their_reg_lccounterparts) are excluded from this repo — they require ~16 GB+ RAM to export and are not suitable for edge (TIDL) deployment.
Quick Start
Prerequisites
pip install torch torchvision onnx>=1.22.0 onnxruntime>=1.23.2 onnx-simplifier
Export the Model
# Export the default model (ViT-S/14 distilled)
python prepare_model.py
# Export a specific model variant
python prepare_model.py --model dinov2_vitb14_lc
# Export the registers variant
python prepare_model.py --model dinov2_vits14_reg_lc
# Export all edge-suitable models
python prepare_model.py --model all
# Re-run shape fixing on an already-exported ONNX
python prepare_model.py --model dinov2_vits14_lc --skip-export
The script automatically:
- Loads the pretrained backbone + linear classification head from PyTorch Hub (
facebookresearch/dinov2) - Exports to ONNX (opset 17) with a dynamic batch axis
- Fixes input shapes to
[1, 3, 224, 224]and propagates shapes via ONNX shape inference - Runs onnx-simplifier (
onnxsim) and validates the final model withonnx.checker
Compile and Infer uing edgeai-tidlrunner
Note: Run the commands below from inside the
tidlrunnerdirectory (the cloned edgeai-tidlrunner repository), with--config_pathpointing to this model's config file.
Compile using edgeai-tidlrunner - on PC
cd /path/to/edgeai-tidlrunner
tidlrunner-cli compile --target_device J784S4 \
--config_path /path/to/dinov2_vits14_lc_config.yaml
Run Inference Benchmark - on device
cd /path/to/edgeai-tidlrunner
tidlrunner-cli infer --target_device J784S4 \
--config_path /path/to/dinov2_vits14_lc_config.yaml
Compile and Infer using edgeai-tidl-tools (Advanced):
Follow the instructions at https://github.com/TexasInstruments/edgeai-tidl-tools
Deploy using edgeai-tidl-tools:
Deplyment can be done using edgeai-tidl-tools. For ONNX models, onnxruntime-tidl with TIDL acceleration can be used. Consult the documentation of edgeai-tidl-tools for more details.
Citation
If you use these models, please cite:
@misc{oquab2023dinov2,
title={DINOv2: Learning Robust Visual Features without Supervision},
author={Oquab, Maxime and Darcet, Timothée and Moutakanni, Theo and others},
journal={arXiv:2304.07193},
year={2023}
}
@misc{darcet2023vitneedreg,
title={Vision Transformers Need Registers},
author={Darcet, Timothée and Oquab, Maxime and Mairal, Julien and Bojanowski, Piotr},
journal={arXiv:2309.16588},
year={2023}
}
🔗 Resources
| Resource | Link |
|---|---|
| Paper | arXiv:2304.07193 |
| Registers Paper | arXiv:2309.16588 |
| Source Code | facebookresearch/dinov2 |
| edgeai-tidl-tools | GitHub |
| edgeai-tidlrunner | GitHub |
| EdgeAI SDK | Documentation |
| DINO | Predecessor model |
Related Models
|
DINO Predecessor First-generation self-supervised ViT |
ViT Alternative backbone Supervised transformer |
ResNet CNN backbone Lower compute |
ConvNeXt Modern CNN Transformer-inspired design |
Maintained by: Texas Instruments EdgeAI Team
Last Updated: August 2026