You have to share your contact information, including DoB, and then be approved access, to obtain the models, and given that it's Meta I assume they're actually validating it against their All Humans database.
They made their own DINOv3 license for this release (whereas DINOv2 used the Apache 2.0 license).
Neat though. Will still check it out.
As a first comment, I had to install the latest transformer==4.56.0dev (e.g. pip install git+https://github.com/huggingface/transformers) for it to work properly. 4.55.2 and earlier was failing with a missing image type in the config.
Yes, it's pretty disappointing for a seemingly big improvement over SOTA to be commercially licensed compared the previous version.. At least in the press release they're not portraying it as open source just because it's on GitHub/HuggingFace.
As someone who works on satellite imagery, this part is incredibly exciting:
> ViT models pretrained on satellite dataset (SAT-493M)
DINOv2 had pretty poor out-of-the-box performance on satellite/aerial imagery, so it's super exciting that they released a version of it specifically for this use case.
DINO (Distillation with No labels) is a self-supervised computer vision framework that learns powerful image representations without requiring labeled data. It's particularly valuable for downstream tasks like object detection and segmentation, with DINOv3 now scaling to over 1B parameters and trained on 1.2B images.
> An extended family of versatile vision foundation models producing high-quality dense features and achieving outstanding performance on various vision tasks including outperforming the specialized state of the art across a broad range of settings, without fine-tuning
To elaborate, this is a foundation model. This basically means it can take an arbitrary image and map it to a high dimensional space H in which ~arbitrary characteristics become much easier to solve for.
For example (and this might be oversimplifying a bit, computer vision people please correct me if I’m wrong) if you’re interested in knowing whether or not the image contains a cat, then maybe there is some hyperplane P in H for which images on one side of P do not contain a cat, and images on the other side do contain a cat. And so solving for “Does this image contain a cat?”becomes a much easier problem, all you have to do is figure out what P is. Once you do that, you can pass your image into DINO, dot product with the equation for P, and check whether the answer is negative or positive. The point is that finding P is much easier than training your own computer vision model from scratch.
You can pretty much use it as a drop-in replacement for anything built on top of DINOv2. E.g. if you want to fine-tune a segmentation model you can use EoMT[0] which uses DINOv2 as backbone and replace the backbone with DINOv3. If you just want to run it you can give LightlyTrain a spin [1]. There should also be support in the original EoMT repo soon. The methods in the DINOv3 paper focus on frozen backbones which are usually faster to train but might have lower performance than full fine-tuning.
They made their own DINOv3 license for this release (whereas DINOv2 used the Apache 2.0 license).
Neat though. Will still check it out.
As a first comment, I had to install the latest transformer==4.56.0dev (e.g. pip install git+https://github.com/huggingface/transformers) for it to work properly. 4.55.2 and earlier was failing with a missing image type in the config.
Seems like the tides are shifting at meta
> ViT models pretrained on satellite dataset (SAT-493M)
DINOv2 had pretty poor out-of-the-box performance on satellite/aerial imagery, so it's super exciting that they released a version of it specifically for this use case.
For example (and this might be oversimplifying a bit, computer vision people please correct me if I’m wrong) if you’re interested in knowing whether or not the image contains a cat, then maybe there is some hyperplane P in H for which images on one side of P do not contain a cat, and images on the other side do contain a cat. And so solving for “Does this image contain a cat?”becomes a much easier problem, all you have to do is figure out what P is. Once you do that, you can pass your image into DINO, dot product with the equation for P, and check whether the answer is negative or positive. The point is that finding P is much easier than training your own computer vision model from scratch.
https://ai.meta.com/dinov3/
I’m fascinated by this, but am admittedly clueless about how to actually go about building any kind of recognizer or other system atop it.
[0]: https://github.com/tue-mps/eomt [1]: https://docs.lightly.ai/train/stable/semantic_segmentation.h...
As for doing it in general, it's a fairly standard vision transformer so anything built on DINOv2 (or any other ViT) should be easy to adapt to v3.