DINOv3 快速上手指南:5 分钟跑出第一份图像密集特征
DINOv3 快速上手指南5 分钟跑出第一份图像密集特征【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3DINOv3 是 Meta AI Research 的自监督视觉基础模型参考实现核心能力是为图像生成高质量密集特征每个 16×16 图像块一个特征向量可用于检索、匹配、分割且多数下游任务无需微调。这篇文章面向需要提取图像特征、把模型接进自己业务的工程师走完四个步骤即可完成接入。DINOv3 最小安装步骤一条命令装好 PyTorch 环境仓库 hubconf.py 声明的硬依赖只有torch和numpy加载预训练模型不需要训练那套重依赖。官方声明训练与评估代码要求 PyTorch 2.7.1 及以上版本且只在 Linux 上验证过仓库自带的 conda.yaml 用的是 Python 3.11。如果你只做推理装好 PyTorch 再克隆代码就够git clone https://gitcode.com/GitHub_Trending/di/dinov3 pip install torch2.7.1 numpy跑通第一个结果提取 256×256 图像的 patch 特征模型权重需要先在 Meta 官网申请访问权限批准后会收到一组下载地址。拿到 URL 或本地文件路径后用torch.hub.load并加上sourcelocal指定本地仓库目录、weights指定权重import torch REPO_DIR /path/to/dinov3 # 你 clone 下来的仓库目录 model torch.hub.load( REPO_DIR, dinov3_vits16, sourcelocal, weightsdinov3_vit_s_pretrain_lvd1689m-hash.pth, )取特征时不要直接model(x)——那个入口走的是分类头backbone 没有挂头。正确的入口是get_intermediate_layers实现在 dinov3/models/vision_transformer.pyreshapeTrue会把特征整理成空间网格import torchvision.transforms.v2 as v2 transform v2.Compose([ v2.Resize((256, 256), antialiasTrue), v2.ToDtype(torch.float32, scaleTrue), v2.Normalize(mean(0.485, 0.456, 0.406), std(0.229, 0.224, 0.225)), ]) img transform(pil_image)[None] # [1, 3, 256, 256] patches, cls model.get_intermediate_layers( img, n1, reshapeTrue, return_class_tokenTrue )[0] print(patches.shape, cls.shape) # torch.Size([1, 384, 16, 16]) torch.Size([1, 384])patch 特征是一个 16×16 网格256÷1616 个块、每格 384 维ViT-S 的嵌入维度cls是 384 维的全局图像向量适合整图级别的相似度计算。归一化参数是 README 中 LVD-1689M 权重对应的标准 ImageNet 评测值照抄即可。DINOv3 模型规格选型对比ViT 还是 ConvNeXt所有骨干都预训练在网页图像数据集 LVD-1689M 上另有卫星影像版 SAT-493M。下表参数规模与嵌入维度来自 README 和 dinov3/hub/backbones.py模型参数量patch 特征维度适用场景dinov3_vits1621M384快速实验、CPU 可用规模dinov3_vits16plus29M512小规模部署dinov3_vitb1686M768精度与速度平衡最常用的默认档dinov3_vitl16300M1024生产级精度官方 ImageNet-1k 线性评测 83.5% 即此规格dinov3_vith16plus840M1152顶级精度需要较强显存dinov3_convnext_tiny29M768偏实时、偏轻量部署dinov3_convnext_small / base / large50M / 89M / 198M768 / 1024 / 1536偏好卷积结构对高分辨率更稳时选 ConvNeXt选法很直接显存紧张选 tiny/small常规业务选 vitb16追求指标上限且有多卡再考虑 vitl16 及以上。ViT-7B/166,716M 参数用于官方预训练配方推理场景基本用不上。接到你的业务分类、分割、深度与零样本图像分类冻结 backbone、只训练一个线性头入口 dinov3/eval/linear.py配PYTHONPATH.运行即可。官方快速配方ViT-L/16ImageNet-1k训练约 14 小时32 张 H100-80GB线性评测 83.5%、k-NN 82.0%。语义分割ADE20K 线性分割的训练脚本在 dinov3/eval/segmentation/配置文件 config-ade20k-linear-training.yaml。单目深度NYUv2-Depth 线性深度估计在 dinov3/eval/depth/。零样本玩法仓库带了一组 notebooknotebooks/patch 特征 PCA 可视化、前景分割、跨图 patch 匹配、dino.txt 开放词表分割都能直接打开跑适合先验证想法再接管线。DINOv3 常见报错与踩坑点权重不能用浏览器下官方明确要求用wget下载 checkpointtorch.hub.load的weights参数支持 URL 或本地路径加载器会自动判断。两版权重归一化参数不同LVD-1689M网页图像用 mean(0.485, 0.456, 0.406)、std(0.229, 0.224, 0.225)SAT-493M卫星影像用 mean(0.430, 0.411, 0.296)、std(0.213, 0.156, 0.143)。混用会直接掉点。输入分辨率要配合 patch 尺寸ViT 用 RoPE 位置编码分辨率不必是 224但保持边长能被 16 整除最稳妥分辨率越高16×16 网格数越多显存占用按 patch 数平方增长。跑 eval 模块别忘 PYTHONPATH.所有训练/评估命令如python -m dinov3.eval.linear都要以仓库根目录加入模块搜索路径否则报 ModuleNotFoundError。大模型要配多卡840M 的 ViT-H 单卡 256 分辨率已较吃力7B 级别官方配方按 256 卡训练推理也建议多卡切分。到这里你已经能加载模型、取到 patch 与 class 特征也知道了各规格的取舍。下一步按任务走整体用法看 README.md数据格式与下载要求见 DATASETS.md想改模型结构看 dinov3/models/想接新任务参考 dinov3/eval/ 里的线性评测模板。许可条款见 LICENSE.md权重申请入口在 README 的 Pretrained models 一节。【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →