ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

DINOv3 视觉特征提取实战指南:从环境配置到首次推理

DINOv3 视觉特征提取实战指南:从环境配置到首次推理 DINOv3 视觉特征提取实战指南从环境配置到首次推理【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3DINOv3 是 Meta AI Research 发布的自监督视觉基础模型系列本文围绕它的视觉特征提取展开。内容覆盖环境配置、模型加载与跑通首次推理的全过程。前置要求是 Python 基础GPU 更佳CPU 也能跑只是更慢。 环境准备纯推理路径的依赖非常轻hubconf.py 中声明的只有 torch 和 numpy若走 Hugging Face 路线再补一个 transformers依赖最低版本是否可选PyTorch2.7.1否torchvision与 torch 同小版本否预处理用numpy官方未约束否transformers4.56.0是仅 HF 路线pip install torch2.7.1 torchvision numpy训练与评估代码还依赖 omegaconf、submitit 等一批包装完整环境可直接用仓库里的 conda.yaml 一键建环境。⚙️ 加载模型——三种方式对比项目中支持三种加载路径差异主要在代码来源和生态适配加载方式适用场景是否需要网络代码量PyTorch Hub 远程快速试用无本地代码是少PyTorch Hub 本地仓库官方推荐权重可控是下载权重少HF Transformers已在 transformers 生态是少Hub 远程加载代码与权重都从远端拉取两行即可import torch model torch.hub.load(facebookresearch/dinov3, dinov3_vits16)本地仓库先执行git clone https://gitcode.com/GitHub_Trending/di/dinov3再指向本地目录import torch REPO_DIR /path/to/dinov3 model torch.hub.load(REPO_DIR, dinov3_vits16, sourcelocal)HF Transformersbackbone 已上架 Hubtransformers ≥ 4.56.0 可直接用 pipelinefrom transformers import pipeline pipe pipeline(modelfacebook/dinov3-convnext-tiny-pretrain-lvd1689m, taskimage-feature-extraction) features pipe(your_image.jpg)没有特殊需求时推荐 PyTorch Hub 本地仓库路线代码版本可控权重还能通过weights参数换成官网申请的 URL 或本地文件路径。 跑通第一次推理LVD-1689M 权重对应的预处理是标准 ImageNet 归一化直接复制运行import torch from PIL import Image from torchvision.transforms import v2 REPO_DIR /path/to/dinov3 model torch.hub.load(REPO_DIR, dinov3_vits16, sourcelocal).eval() transform v2.Compose([ v2.ToImage(), 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)), ]) image Image.open(your_image.jpg).convert(RGB) input_tensor transform(image).unsqueeze(0) # (1, 3, 256, 256) with torch.no_grad(): features model(input_tensor) print(fFeature shape: {tuple(features.shape)}) # feed features into your classifierbackbone 的 forward 默认输出归一化后的 CLS token维度等于该变体的 embed_dimViT-S/16 为 384输入被缩放到 256×256对应 16×16 的 patch 网格。要拿 patch 级密集特征则改调model.get_intermediate_layers(x)稠密匹配、前景分割等零样本任务用的都是它。 模型选型全部 backbone 变体注册在 dinov3/hub/backbones.py变体名参数量输出维度推荐场景dinov3_vits1621M384快速实验、低延迟dinov3_vits16plus29M384小模型中取平衡dinov3_vitb1686M768通用基线dinov3_vitl16300M1024高精度任务dinov3_vitl16plus官方未列出1024大模型中取平衡dinov3_vith16plus840M1280大显存单卡dinov3_vit7b166716M4096数据中心级 GPUdinov3_convnext_tiny29M多尺度特征图偏好 CNN 的场景dinov3_convnext_small50M多尺度特征图偏好 CNN 的场景dinov3_convnext_base89M多尺度特征图偏好 CNN 的场景dinov3_convnext_large198M多尺度特征图偏好 CNN 的场景如果不确定选哪个先用 dinov3_vits16 跑通流程再按需升级。GPU 显存小于 8G 时建议直接从最小变体开始ViT-7B 面向多张 80G 集群卡消费级硬件不必考虑。从推理到微调纯推理之外项目内置了完整的训练与评估入口主要任务方向有四个线性探针分类冻结 backbone仅训练线性层评估 ImageNet-1k → dinov3/eval/linear.py语义分割ADE20K 线性探针训练与 M2F 解码器推理 → dinov3/eval/segmentation/单目深度估计NYUv2-Depth 线性探针 → dinov3/eval/depth/零样本文本对齐dino.txt 把视觉特征与文本对齐支持开放词汇分割 → dinov3/eval/text/没有 GPU 集群时仓库 notebooks/ 目录下的五个 notebookPCA、前景分割、稠密匹配、视频跟踪、零样本分割是更轻量的上手方式。基准数据速览ImageNet-1klinear eval83.5%ViT-L/16 冻结 backbone只训练线性层ImageNet-1kk-NN82.0%同一配置下的 k-NN 分类器以上为 README 中官方给出的复现数字稠密预测与零样本任务的完整指标以官方仓库 README 和论文为准。常见问题权重下载报错官方权重需先在官网下载页申请把邮件给的 URL 通过weights参数传入或下载后传本地路径。GPU 显存不足换 dinov3_vits1621M 参数或调小输入分辨率ViT-7B 需要数据中心级 GPU单卡跑不动。torch 版本冲突报错训练/评估代码仅在 PyTorch ≥ 2.7.1 和 Linux 上测试过先升级 torch或按 conda.yaml 重装完整环境。输入必须是 224×224 吗不是。位置编码用 RoPE支持 16 倍数分辨率官方预处理默认 resize 到 256×256。接下来可以尝试把特征接入线性探针看分类上限有多少入口在 dinov3/eval/linear.py。【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表