#306 · Primary category: Computer Vision

dinov3-finetune

dinov2 dinov3 image-segmentation self-supervised-learning

Testing adaptation of the DINOv2/3 encoders for vision tasks with Low-Rank Adaptation (LoRA)

Project last updated:10/24/25

GitHub Stars

505

Forks

37

Contributors

1

License

MIT

Why we included this project

Finetuning a self-supervised vision backbone for segmentation usually means either freezing it and training a head, or updating the whole thing and hoping it does not forget what it already learned. This repo takes a middle path: it shows how to adapt DINOv2 or DINOv3 encoders with Low-Rank Adaptation, adding a small set of trainable weights between blocks while the original encoder weights stay untouched, then decoding with a simple 1x1 convolution. The Explanation notebook walks through the LoRA setup in detail, and the CLI runs real experiments on Pascal VOC and ADE20k across model sizes and decoders, so you can compare LoRA against decoder-only finetuning on the same data. Results include robustness checks under ImageNet-C style corruptions, which matters if your segmentation head will see noisy or degraded input. There is also an embedding visualization notebook that shows what these encoders actually represent at different resolutions, and it doubles as a way to inspect DINOv3's cleaner PCA outputs at high resolution without leaning on FeatUp.

Articles for this project

No articles for this project yet.

To suggest a topic or contribute an article, contact us.

Related projects in this category