Meta FAIR 开源 DINOv3:自监督视觉基础模型新王者,双架构 ViT+ConvNeXt,7B 参数 12 个骨干,深度估计/检测/分割/林冠图全线 SOTA!
Meta FAIR 开源 DINOv3:自监督视觉基础模型新王者,双架构 ViT+ConvNeXt,7B 参数 12 个骨干,深度估计/检测/分割/林冠图全线 SOTA!
💡 Meta FAIR 出品,DINOv2 正统续作。双架构(ViT + ConvNeXt),12 个预训练骨干,最大 7B 参数,两大数据集(LVD-1689M 网页图 + SAT-493M 卫星图),无需微调即超越专业 SOTA。深度估计、目标检测、语义分割、林冠高度图、元数据引导训练(FINO)全覆盖,PyTorch Hub / HuggingFace Transformers / timm 三大生态即插即用。
📌 目录
- 1. DINOv3 是什么?
- 2. DINOv2 → DINOv3 进化了什么?
- 3. 双架构 + 12 个预训练骨干全览
- 4. 五大下游适配器
- 5. FINO:元数据引导训练
- 6. 快速上手
- 7. 竞品对比
- 8. 适用场景与优缺点
- 9. 总结与推荐
1. DINOv3 是什么?
DINOv3是 Meta AI Research(FAIR)出品的自监督视觉基础模型,DINOv2 的正统续作。
- 🔗 项目地址:https://github.com/facebookresearch/dinov3
- 📜 论文:arXiv:2508.10104
- 📰 官方博客:https://ai.meta.com/blog/dinov3-self-supervised-vision-model/
- 🌐 官方网站:https://ai.meta.com/dinov3/
- 🤗 HuggingFace:https://huggingface.co/collections/facebook/dinov3-68924841bd6b561778e31009
一句话总结
DINOv3 = Meta FAIR 自监督视觉基础模型 = DINOv2 正统续作,高质量密集特征 = 双架构:ViT(6档)+ ConvNeXt(4档),共 12 个骨干 = 最大 7B 参数,最小 21M 参数 = 两大数据集:LVD-1689M(网页图)+ SAT-493M(卫星图) = 无需微调即超越专业 SOTA = 5 大下游适配器:分类/深度估计/检测/分割/林冠高度 = FINO 元数据引导训练:无需标签,用已有元数据适配 = PyTorch Hub + HuggingFace Transformers + timm 三大生态 = CVPR 级别工作,FAIR 视觉基石核心亮点图
DINOv3 输出高分辨率密集特征——用红色十字标记某个 patch,计算其与所有其他 patch 的余弦相似度地图,直观展示模型对图像语义的理解深度。
输入图片 → DINOv3 → 密集特征 → 余弦相似度地图 ↓ 同一物体区域高相似度 不同物体区域低相似度 无需标注,自监督学习得到2. DINOv2 → DINOv3 进化了什么?
| 对比维度 | DINOv2 | DINOv3 |
|---|---|---|
| 发布时间 | 2023 | 2025 |
| 架构 | ViT only | ViT + ConvNeXt 双架构 |
| 最大参数 | 1.1B (ViT-g) | 7B (ViT-7B) |
| 预训练骨干 | 4 个 (S/B/L/g) | 12 个(6 ViT + 4 ConvNeXt + 2 卫星) |
| 预训练数据 | LVD-142M | LVD-1689M + SAT-493M |
| 卫星图预训练 | ❌ | ✅SAT-493M |
| ConvNeXt 蒸馏 | ❌ | ✅4 档 ConvNeXt |
| 下游适配器 | 分类/分割/深度 | 分类/深度估计/检测/分割/林冠高度 |
| 目标检测 | ❌ | ✅COCO2017 检测器 |
| 林冠高度图 | ❌ | ✅CHMv2 (CVPR 级) |
| 元数据训练 | ❌ | ✅FINO 分支 |
| timm 支持 | ✅ | ✅ (≥1.0.20) |
| HF Transformers | ✅ | ✅ (≥4.56.0) |
| 密集特征质量 | 优秀 | 更强(高分辨率) |
| 无需微调 SOTA | ✅ | ✅更广范围超越 |
三大进化方向
1️⃣ 规模跃升:1.1B → 7B,数据 142M → 1689M(12 倍) 2️⃣ 架构扩展:ViT-only → ViT + ConvNeXt,覆盖更多部署场景 3️⃣ 领域拓展:通用视觉 → 卫星遥感 + 元数据引导 + 更多下游3. 双架构 + 12 个预训练骨干全览
ViT 系列(网页图 LVD-1689M)
| 模型 | 参数 | 类型 | 适用场景 |
|---|---|---|---|
| ViT-S/16 distilled | 21M | 蒸馏 | 移动端/嵌入式 |
| ViT-S+/16 distilled | 29M | 蒸馏 | 轻量级应用 |
| ViT-B/16 distilled | 86M | 蒸馏 | 通用推荐 ⭐ |
| ViT-L/16 distilled | 300M | 蒸馏 | 高质量特征 |
| ViT-H+/16 distilled | 840M | 蒸馏 | 研究级精度 |
| ViT-7B/16 | 6,716M | 全量 | 顶级性能 🏆 |
ConvNeXt 系列(网页图 LVD-1689M)
| 模型 | 参数 | 适用场景 |
|---|---|---|
| ConvNeXt Tiny | 29M | CNN 偏好/部署友好 |
| ConvNeXt Small | 50M | 平衡精度与速度 |
| ConvNeXt Base | 89M | 通用 CNN 方案 |
| ConvNeXt Large | 198M | 高精度 CNN |
卫星图系列(SAT-493M)
| 模型 | 参数 | 预训练数据 | 适用场景 |
|---|---|---|---|
| ViT-L/16 distilled | 300M | SAT-493M | 遥感特征提取 |
| ViT-7B/16 | 6,716M | SAT-493M | 遥感顶级性能 🛰️ |
骨架选型指南
🎯 追求极致精度 → ViT-7B/16 (6.7B) ⚖️ 精度与效率平衡 → ViT-L/16 (300M) 或 ConvNeXt-Base (89M) 🚀 轻量快速部署 → ViT-S/16 (21M) 或 ConvNeXt-Tiny (29M) 🛰️ 遥感卫星场景 → ViT-7B/16 SAT-493M 🔧 CNN 架构偏好 → ConvNeXt 系列(蒸馏自 ViT) 📱 移动端/边缘 → ViT-S/16 (21M)4. 五大下游适配器
🎯 适配器一:图像分类(ImageNet)
骨干:ViT-7B/16 (LVD-1689M) 头数据集:ImageNet 加载方式: dinov3_vit7b16_lc = torch.hub.load(REPO_DIR, 'dinov3_vit7b16_lc', source="local", weights=<PATH>, backbone_weights=<PATH>)📏 适配器二:单目深度估计(SYNTHMIX → NYUv2)
骨干:ViT-7B/16 (LVD-1689M) 头数据集:SYNTHMIX(合成混合数据) 评估:NYUv2-Depth 加载方式: depther = torch.hub.load(REPO_DIR, 'dinov3_vit7b16_dd', source="local", weights=<PATH>, backbone_weights=<PATH>) 推理示例: img_size = 1024 img = get_img() transform = make_transform(img_size) with torch.inference_mode(): with torch.autocast('cuda', dtype=torch.bfloat16): batch_img = transform(img)[None] depths = depther(batch_img) 复现论文结果: PYTHONPATH=. python -m dinov3.run.submit dinov3/eval/depth/run.py \ config=dinov3/eval/depth/configs/config-nyu-synthmix-dpt-inference.yaml \ datasets.root=<PATH/TO/DATASET> \ load_from=dinov3_vit7b16_dd \ --output-dir <PATH/TO/OUTPUT/DIR>🔍 适配器三:目标检测(COCO2017)
骨干:ViT-7B/16 (LVD-1689M) 头数据集:COCO2017 加载方式: detector = torch.hub.load(REPO_DIR, 'dinov3_vit7b16_de', source="local", weights=<PATH>, backbone_weights=<PATH>)🖼️ 适配器四:语义分割(ADE20K)
骨干:ViT-7B/16 (LVD-1689M) 头数据集:ADE20K 解码器:Mask2Former (M2F) 加载方式: segmentor = torch.hub.load(REPO_DIR, 'dinov3_vit7b16_ms', source="local", weights=<PATH>, backbone_weights=<PATH>) 推理示例(滑动窗口推理): segmentation_map = make_inference( batch_img, segmentor, inference_mode="slide", decoder_head_type="m2f", rescale_to=(img.size[-1], img.size[-2]), n_output_channels=150, crop_size=(896, 896), stride=(896, 896), output_activation=partial(torch.nn.functional.softmax, dim=1), ).argmax(dim=1, keepdim=True) 复现论文结果: PYTHONPATH=. python -m dinov3.run.submit dinov3/eval/segmentation/run.py \ config=dinov3/eval/segmentation/configs/config-ade20k-m2f-inference.yaml \ datasets.root=<PATH/TO/DATASET> \ load_from=dinov3_vit7b16_ms \ --output-dir <PATH/TO/OUTPUT/DIR>🌲 适配器五:林冠高度图 v2(CHMv2)
骨干:ViT-L/16 (DINOv3) 功能:全球高分辨率林冠高度估计 改进:基于 2024 年初版 CHM,利用 DINOv3 大幅提升精度/细节/全球一致性 论文:arXiv:2603.06382 模型权重: 🤗 HuggingFace: facebook/dinov3-vitl16-chmv2-dpt-head 📖 HF Transformers 支持:https://huggingface.co/docs/transformers/model_doc/chmv2 应用场景: 🌍 全球森林监测 📊 碳汇估算 🛰️ 遥感分析 🌳 生态研究5. FINO:元数据引导训练
🆕 2026-06-12 最新发布
FINO 分支:https://github.com/facebookresearch/dinov3/tree/FINO 论文:Who Needs Labels? Adapting Vision Foundation Models With the Metadata You Already Have (Gardès et al., 2026) arXiv: 2606.05107核心思想
传统微调:需要标注标签 → 成本高、耗时长 FINO 方法:利用已有元数据(无需额外标注)→ 零标签成本适配 已验证场景: 🛰️ FMoW 卫星图像 → 利用地理/时间元数据 🔬 HPA-WholeHR 荧光图像 → 利用生物实验元数据为什么重要?
1. 降低适配门槛:无需标注,用已有信息即可适配新领域 2. 卫星遥感/生物医学等专业领域标注稀缺 3. 元数据(时间、位置、实验条件)天然存在 4. 把"废数据"变成"训练信号"6. 快速上手
方式一:PyTorch Hub(推荐)
importtorch REPO_DIR="/path/to/dinov3"# 克隆到本地的仓库路径# 加载 ViT 骨干dinov3_vits16=torch.hub.load(REPO_DIR,'dinov3_vits16',source='local',weights=<CHECKPOINT_URL_OR_PATH>)dinov3_vitb16=torch.hub.load(REPO_DIR,'dinov3_vitb16',source='local',weights=<CHECKPOINT_URL_OR_PATH>)dinov3_vitl16=torch.hub.load(REPO_DIR,'dinov3_vitl16',source='local',weights=<CHECKPOINT_URL_OR_PATH>)dinov3_vit7b16=torch.hub.load(REPO_DIR,'dinov3_vit7b16',source='local',weights=<CHECKPOINT_URL_OR_PATH>)# 加载 ConvNeXt 骨干dinov3_convnext_tiny=torch.hub.load(REPO_DIR,'dinov3_convnext_tiny',source='local',weights=<CHECKPOINT_URL_OR_PATH>)dinov3_convnext_base=torch.hub.load(REPO_DIR,'dinov3_convnext_base',source='local',weights=<CHECKPOINT_URL_OR_PATH>)# 加载卫星图骨干dinov3_vit7b16_sat=torch.hub.load(REPO_DIR,'dinov3_vit7b16',source='local',weights=<SAT_CHECKPOINT_URL_OR_PATH>)方式二:HuggingFace Transformers(≥4.56.0)
# Pipeline 方式fromtransformersimportpipelinefromtransformers.image_utilsimportload_image url="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"image=load_image(url)feature_extractor=pipeline(model="facebook/dinov3-convnext-tiny-pretrain-lvd1689m",task="image-feature-extraction",)features=feature_extractor(image)# AutoModel 方式importtorchfromtransformersimportAutoImageProcessor,AutoModelfromtransformers.image_utilsimportload_image url="http://images.cocodataset.org/val2017/000000039769.jpg"image=load_image(url)pretrained_model_name="facebook/dinov3-vitl16-pretrain-lvd1689m"processor=AutoImageProcessor.from_pretrained(pretrained_model_name)model=AutoModel.from_pretrained(pretrained_model_name,device_map="auto")inputs=processor(images=image,return_tensors="pt").to(model.device)withtorch.inference_mode():outputs=model(**inputs)pooled_output=outputs.pooler_outputprint("Pooled output shape:",pooled_output.shape)可用 HF 模型名:
facebook/dinov3-vits16-pretrain-lvd1689m facebook/dinov3-vits16plus-pretrain-lvd1689m facebook/dinov3-vitb16-pretrain-lvd1689m facebook/dinov3-vitl16-pretrain-lvd1689m facebook/dinov3-vith16plus-pretrain-lvd1689m facebook/dinov3-vit7b16-pretrain-lvd1689m facebook/dinov3-convnext-base-pretrain-lvd1689m facebook/dinov3-convnext-large-pretrain-lvd1689m facebook/dinov3-convnext-small-pretrain-lvd1689m facebook/dinov3-convnext-tiny-pretrain-lvd1689m facebook/dinov3-vitl16-pretrain-sat493m facebook/dinov3-vit7b16-pretrain-sat493m方式三:timm(≥1.0.20)
importtimm model=timm.create_model('vit_small_patch16_dinov3.lvd1689m',pretrained=True)图像预处理
# LVD-1689M 网页图模型(标准 ImageNet 变换)fromtorchvision.transformsimportv2importtorchdefmake_transform(resize_size:int=256):returnv2.Compose([v2.ToImage(),v2.Resize((resize_size,resize_size),antialias=True),v2.ToDtype(torch.float32,scale=True),v2.Normalize(mean=(0.485,0.456,0.406),std=(0.229,0.224,0.225)),])# SAT-493M 卫星图模型(遥感专用归一化)defmake_sat_transform(resize_size:int=256):returnv2.Compose([v2.ToImage(),v2.Resize((resize_size,resize_size),antialias=True),v2.ToDtype(torch.float32,scale=True),v2.Normalize(mean=(0.430,0.411,0.296),std=(0.213,0.156,0.143)),])深度估计完整示例
fromPILimportImageimporttorchfromtorchvision.transformsimportv2importmatplotlib.pyplotaspltfrommatplotlibimportcolormapsdefget_img():importrequests url="http://images.cocodataset.org/val2017/000000039769.jpg"returnImage.open(requests.get(url,stream=True).raw).convert("RGB")defmake_transform(resize_size=768):returnv2.Compose([v2.ToImage(),v2.Resize((resize_size,resize_size),antialias=True),v2.ToDtype(torch.float32,scale=True),v2.Normalize(mean=(0.485,0.456,0.406),std=(0.229,0.224,0.225)),])# 加载深度估计器depther=torch.hub.load(REPO_DIR,'dinov3_vit7b16_dd',source="local",weights=<DEPTHER_PATH>,backbone_weights=<BACKBONE_PATH>)img_size=1024img=get_img()transform=make_transform(img_size)withtorch.inference_mode():withtorch.autocast('cuda',dtype=torch.bfloat16):batch_img=transform(img)[None]depths=depther(batch_img)# 可视化plt.figure(figsize=(12,6))plt.subplot(121)plt.imshow(img)plt.axis("off")plt.subplot(122)plt.imshow(depths[0,0].cpu(),cmap=colormaps["Spectral"])plt.axis("off")plt.savefig("depth_result.png")7. 竞品对比
| 对比维度 | DINOv3 | DINOv2 | SAM2 | SigLIP2 | EVA-CLIP |
|---|---|---|---|---|---|
| 出品方 | Meta FAIR | Meta FAIR | Meta FAIR | BAAI | |
| 最大参数 | 7B | 1.1B | 900M | 878M | 5B |
| 架构 | ViT + ConvNeXt | ViT | Hiera | ViT | ViT |
| 骨干数量 | 12 | 4 | 1 | 2 | 多个 |
| 卫星预训练 | ✅SAT-493M | ❌ | ❌ | ❌ | ❌ |
| 深度估计 | ✅SYNTHMIX | ✅ | ❌ | ❌ | ❌ |
| 目标检测 | ✅COCO | ❌ | ❌ | ❌ | ❌ |
| 语义分割 | ✅ADE20K | ✅ | ✅ | ❌ | ❌ |
| 林冠高度 | ✅CHMv2 | ❌ | ❌ | ❌ | ❌ |
| 元数据训练 | ✅FINO | ❌ | ❌ | ❌ | ❌ |
| 自监督 | ✅ | ✅ | ✅ | ✅ (对比) | ✅ (对比) |
| PyTorch Hub | ✅ | ✅ | ✅ | ❌ | ❌ |
| HF Transformers | ✅ (≥4.56) | ✅ | ✅ | ✅ | ✅ |
| timm | ✅ (≥1.0.20) | ✅ | ❌ | ❌ | ❌ |
| 密集特征 | ✅高分辨率 | ✅ | ❌ | ❌ | ❌ |
最大差异化
1. 双架构:ViT + ConvNeXt 覆盖 Transformer 和 CNN 两种偏好 2. 12 个骨干:从 21M 到 7B,覆盖所有部署规模 3. 卫星遥感:SAT-493M 专属预训练,遥感领域独一份 4. FINO 元数据训练:零标签适配,专业领域利器 5. CHMv2 林冠高度:全球环境监测实际应用 6. 无需微调 SOTA:冻住骨干直接用 7. 三大生态:PyTorch Hub + HF Transformers + timm 8. 密集特征王者:高分辨率密集特征,下游任务最强基础8. 适用场景与优缺点
✅ 适合场景
🖼️ 视觉特征提取(通用) → 图像检索/聚类/相似度计算 → 21M~7B 全尺寸覆盖 📏 单目深度估计 → 室内/室外场景理解 → 自动驾驶/机器人导航 → SYNTHMIX 训练,NYUv2 验证 🔍 目标检测 → COCO 80 类通用检测 → DINOv3 骨干 + 检测头 🖼️ 语义分割 → ADE20K 150 类场景解析 → Mask2Former 解码器 🛰️ 遥感卫星分析 → SAT-493M 专用预训练 → FMoW 功能性地图分类 → CHMv2 林冠高度估计 🔬 生物医学/专业领域 → FINO 元数据引导适配 → HPA 荧光图像分析 🌲 环境监测 → 全球森林碳汇估算 → 植被覆盖变化检测⚠️ 注意事项
1. 模型权重需申请:需通过 Meta 官方链接申请下载 2. 7B 模型显存需求大:推理需要高端 GPU 3. ConvNeXt 为蒸馏版本:精度略低于 ViT 原版 4. 部分适配器仅 ViT-7B:分类/深度/检测/分割头仅 7B 版本 5. 卫星图归一化不同:需使用 SAT-493M 专用归一化参数 6. 推理建议用 bfloat16:配合 torch.autocast 加速9. 总结与推荐
推荐指数:⭐⭐⭐⭐⭐
| 维度 | 评分 | 说明 |
|---|---|---|
| 性能 | ⭐⭐⭐⭐⭐ | 无需微调即 SOTA,密集特征质量顶级 |
| 灵活 | ⭐⭐⭐⭐⭐ | 12 个骨干 + 5 个适配器,全场景覆盖 |
| 生态 | ⭐⭐⭐⭐⭐ | PyTorch Hub + HF + timm 三大生态 |
| 创新 | ⭐⭐⭐⭐⭐ | FINO 元数据训练 + SAT 卫星 + CHMv2 |
| 部署 | ⭐⭐⭐⭐ | 从 21M 到 7B 全覆盖,但 7B 显存需求大 |
| 文档 | ⭐⭐⭐⭐ | README 详细,但权重申请略繁琐 |
一句话推荐
如果你需要高质量的视觉特征,DINOv3 是 2025-2026 年的最佳选择。 12 个骨干(21M~7B),双架构(ViT + ConvNeXt), 卫星遥感专属预训练,FINO 零标签适配, 深度估计/检测/分割/林冠高度全适配器, 三大生态即插即用,无需微调即超越专业 SOTA。 DINOv2 可以正式退休了。📢 项目地址:https://github.com/facebookresearch/dinov3
📜 论文:arXiv:2508.10104
📰 博客:https://ai.meta.com/blog/dinov3-self-supervised-vision-model/
🌐 网站:https://ai.meta.com/dinov3/
🤗 HuggingFace:DINOv3 Collection
🌲 CHMv2:arXiv:2603.06382
🧪 FINO:arXiv:2606.05107
相关链接
- 🌲 Canopy Height Maps v2
- 🧪 FINO 分支
- 📖 HF Transformers DINOv3 文档
- 📖 HF Transformers CHMv2 文档
- 🛠️ timm DINOv3 支持
原文链接:https://github.com/facebookresearch/dinov3
标签:#MetaFAIR #DINOv3 #自监督 #视觉基础模型 #ViT #ConvNeXt #深度估计 #语义分割 #目标检测 #林冠高度 #遥感 #FINO #7B参数 #SOTA
分类:原创文章
