DINOv3 从零上手:如何 3 步拿到高质量视觉密集特征
【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3
做视觉任务时,最耗时间的往往不是网络本身,而是特征提取器的选型和调参。DINOv3 是 Meta 的自监督视觉基础模型参考实现,ViT 与 ConvNeXt 共 12 种规格,冻结权重直接推理即可输出高质量密集特征,分类、分割、深度等任务在多数设置下无需微调。
为什么是 DINOv3
- 官方定位就是"零微调可用":线性探针、k-NN 检索、稠密预测均直接使用冻结特征,ViT-L/16 在 ImageNet-1k 线性评估达 83.5%。
- 比同系列 DINOv2 多了 ConvNeXt 谱系(Tiny 29M 到 Large 198M),小模型同样继承 7B 教师蒸馏的收益。
- 密集特征更紧凑可用:224×224 输入只产生 201 个 token(1 CLS + 4 register + 196 patch),patch 相似度图可直接用于匹配与分割。
🎯 最小可运行路径:clone 仓库 + 一行加载预训练权重
依赖只有 PyTorch(训练代码要求 ≥2.7.1),仓库 clone 后用 torch.hub 本地加载,无需 pip install -e。这里的关键是weights参数:权重不随仓库分发,需先申请获取下载地址,传本地路径或 URL 均可。
# 安装(依赖仅 PyTorch) pip install torch git clone https://gitcode.com/GitHub_Trending/di/dinov3 # 本地加载并提取 CLS 全局特征 import torch REPO_DIR = "/path/to/dinov3" model = torch.hub.load(REPO_DIR, "dinov3_vits16", source="local", weights="<CKPT_PATH>") print(model(image_tensor).shape)其余加载方式一句话带过:全部骨干也支持 Hugging Face Transformers(4.56.0+),按 transformers 文档用AutoModel加载即可。
核心能力拆解
全局 CLS 特征:分类、检索与线性探针
默认 forward 返回归一化 CLS token,接一层线性或 k-NN 即可做分类与检索。关键参数是pretrained与weights;ViT-S/16 仅 21M 参数,适合先验证特征质量再放大模型规格。
密集 patch 特征:分割、深度、跟踪与匹配
仓库内 ADE20K 分割、NYUv2 深度、COCO 检测等 eval 模块统一走get_intermediate_layers取 patch token:
patch = model.get_intermediate_layers(x, n=1, reshape=True)[0] # (B, C, H/16, W/16)一个容易踩的坑:输入边长保持 16 的倍数,否则会被静默裁剪到最近的合法尺寸。
预训练下游头:开箱即用的检测、分割与零样本
仓库直接提供 ViT-7B 配套头:ImageNet 分类器、COCO 检测器、ADE20K 分割器、SYNTHMIX 深度估计,以及 dino.txt 零样本文本对齐。关键配置是头权重与骨干权重分属weights和backbone_weights两个参数,不要混传。
⚠️ 新手常见的坑:归一化参数怎么填
特征质量莫名偏低→ web 权重与卫星权重的归一化不同 → LVD-1689M 用 mean (0.485, 0.456, 0.406) / std (0.229, 0.224, 0.225);SAT-493M 用 (0.430, 0.411, 0.296) / (0.213, 0.156, 0.143)。
加载时下载失败或 404→ 权重不随仓库分发,需先申请获取下载地址 → 官方提示用 wget(而非浏览器)下载,再把本地路径传给weights。
期望得到 patch 特征却只有一个向量→ forward 默认只返回 CLS token → 改用get_intermediate_layers(x, n=1, reshape=True)。
延伸资源
- 官方文档:README.md
- 各规格模型指标:MODEL_CARD.md
- 模型规格与权重加载:dinov3/hub/backbones.py
- 评估脚本(线性探针/分割/深度):dinov3/eval/
- 示例 Notebook:notebooks/
从 dinov3_vits16 跑通 patch 特征提取,再按任务选规格。
【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考