前言

DINOv3 是一系列多功能视觉基础模型,无需微调即可在各种设置中优于专业技术水平。DINOv3 产生高质量的密集特征,在各种视觉任务中实现出色的性能,显着超越以前的自监督和弱监督基础模型。

模型型号介绍

以下是按照 DINOv3 论文中描述的方法训练的 Vision Transformer 和 ConvNeXt 模型所提供的 12 种模型变体:

  • 10 个模型在 Web 数据上预训练(LVD-1689M 数据集)
    1. 从头开始训练的ViT-7B
    2. 从 ViT-7B 中蒸馏出来的 ViT-S/S+/B/L/H+
    3. 从 ViT-7B 中提炼而来的 ConvNeXt-{T/S/B/L} 型号
  • 2 个在卫星数据上预训练的模型(SAT-493M 数据集)
    1. 从头开始训练的ViT-7B
    2. 从 ViT-7B 中蒸馏出来的ViT-L

模型输入和输出

每个基于 Transformer 的模型都采用图像作为输入,并返回类令牌、补丁令牌(和注册器令牌)。这些模型遵循 ViT 架构,补丁大小为 16。对于 224x224 映像,这将产生 1 个类令牌 + 4 个寄存器令牌 + 196 个补丁令牌 = 201 个令牌(对于具有寄存器的 DINOv2,这导致 1 + 4 + 256 = 261 个令牌)。

如果图像形状是补丁大小的倍数,则模型可以接受更大的图像。如果未验证此条件,则模型将裁剪到最接近的补丁大小的较小倍数。

相关地址

相关的介绍可以参考 https://huggingface.co/facebook/dinov3-vit7b16-pretrain-lvd1689m

权重下载

  • huggingface(目前无法使用):目前在huggingface上下载需要获取权限(刚上线的时候还是不用的,所以还是要及时下载)
    在这里插入图片描述
  • github仓库(需申请后可正常使用): 在页面中点击模型下载链接(见下图1),并填写相关信息即可。为提高申请成功率,建议使用美国 IP,姓名可随意填写英文,邮箱推荐使用 Gmail,地区选择美国,机构可填写 Meta AI。通常几分钟后即可收到包含下载地址的邮件,点击其中的链接即可获取权重文件。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

权重下载链接

DINO权重网盘下载链接

DINOV3 离线使用方法

一、离线加载方式

在已下载 DINOV3 官方代码与对应预训练权重的前提下,可通过 torch.hub.load 以本地(local)模式加载模型:

torch.hub.load(
'dinov3-main',
self.model_name,
source='local',
weights=f'hub/checkpoints/{self.model_name}_pretrain.pth'
)

二、参数说明

  1. dinov3-main: DINOV3 官方代码所在的本地目录路径。使用前需要先从官方仓库拉取源码:https://github.com/facebookresearch/dinov3。(我这个是直接下载然后解压的,所以有个 -main

  2. self.model_name: 模型名称,用于指定不同规模的 DINOV3 网络结构,例如:

    • dinov3_vits16
    • dinov3_vitb16
    • dinov3_vitl16
      该名称需与 hubconf.py 中注册的模型接口名称保持一致。
  3. source=‘local’: 指定从本地路径加载模型代码,而不是从 GitHub 在线拉取。

  4. weights: 指定预训练权重文件路径。需要注意以下几点:

    • torch.hub 在加载权重时,会优先从 TORCH_HOME 环境变量指定的缓存目录中查找
    • 建议将所有 DINOV3 权重文件统一放置在:
      $TORCH_HOME/hub/checkpoints/
      
    • 为了便于根据 self.model_name 自动选择不同参数规模的模型,建议将下载的官方权重文件重命名为:
      {model_name}_pretrain.pth
      
      例如:
      dinov3_vits16_pretrain.pth
      dinov3_vitb16_pretrain.pth
      

三、环境变量配置

为确保 torch.hub 能正确定位本地权重文件,建议在系统中提前设置 TORCH_HOME 环境变量,例如:

export TORCH_HOME=/path/to/torch_cache

并将 DINOV3 的预训练权重文件放置在如下目录中:

$TORCH_HOME/hub/checkpoints/

四、一些建议

在离线模式下,torch.hub 不会自动下载模型代码或预训练权重,请确保:

  1. DINOV3 官方代码已完整下载到本地

  2. 权重文件真实存在,且路径与命名规则正确

  3. 若模型名称与 hubconf.py 中的注册接口不一致,或权重路径配置错误,torch.hub.load 会直接报错

  4. 在多模型规模对比或多实验场景中,通过 self.model_name 统一管理模型结构与权重文件,有助于提升代码的可维护性、可复现性和实验管理效率

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐