DINOv3 零样本语义分割:不写训练代码,输入类别名就出像素级结果

发布时间:2026/9/15 17:38:12

DINOv3 零样本语义分割:不写训练代码,输入类别名就出像素级结果 DINOv3 零样本语义分割不写训练代码输入类别名就出像素级结果【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3DINOv3 是 Meta AI 发布的视觉基础模型配套的 dino.txt 模块支持零样本语义分割输入几张图、一行类别名无需任何标注或训练直接得到逐像素的分割结果省掉传统分割项目最耗时的标注环节。先看效果给类别名出分割图一张街景照片类别列表是[road, building, car, ...]跑一次推理每个像素就被分到了对应的类。你不需要标注一张图也不需要微调任何权重仓库自带的 dinotxt_segmentation_inference.ipynb 里还内置了 Cityscapes 18 类、ADE20K 150 类两个完整评估流程可直接算出 mIoU。下面先讲清它为什么不用训练也能用再带你跑通。为什么没有一张标注图也能用关键在两步视觉端自监督预训练再用文本把特征接上。DINOv3 的 ViT 骨干dinov3/models/在海量无标注图像上用自监督目标学出稠密特征每个 16×16 像素的 patch 都有一个嵌入向量对纹理和语义都敏感。dino.txtdinov3/eval/text/在骨干后面加了一个文本编码器用图文对把视觉特征和文字描述对齐到同一个向量空间。于是每个 patch 向量都能和每个类别的文本向量比余弦相似度——本质上就是给每个像素找它对应的名字。全程没有分割这个任务参与训练。最快上手路径三步出第一张分割结果克隆仓库后先装依赖micromamba env create -f conda.yaml一条命令即可依赖只有 PyTorch 2.7.1、torchvision、ftfy、regex 等见 requirements.txt只加载模型的话装好 PyTorch 就够。第一步加载模型。hubconf 入口在 hubconf.py一行拿到模型和分词器from dinov3.hub.dinotxt import dinov3_vitl16_dinotxt_tet1280d20h24l model, tokenizer dinov3_vitl16_dinotxt_tet1280d20h24l() model.to(cuda).eval()第二步把类别名编码成文本向量每个类别用多条 prompt 模板取平均import torch.nn.functional as F text_features [] for name in class_names: texts [t.format(name) for t in PROMPT_TEMPLATES] feats model.encode_text(tokenizer.tokenize(texts).cuda()) feats feats[:, feats.shape[1] // 2 :] # 丢掉前半段 CLS 对应部分 feats F.normalize(feats, p2, dim-1).mean(0) text_features.append(F.normalize(feats, p2, dim-1)) text_features torch.stack(text_features) # [num_classes, D]第三步提取图像 patch 特征和文本特征算相似度逐像素取 argmax 就是分割图from dinov3.data.transforms import make_classification_eval_transform img make_classification_eval_transform()(pil_img)[None].cuda() cls_tokens, patch_tokens, _ model.encode_image_with_patch_tokens(img) x F.normalize(patch_tokens, p2, dim-1).movedim(2, 1) # [1, D, h, w] y F.normalize(text_features[:, :1024], p2, dim-1) logits torch.einsum(bdhw,cd-bchw, x, y) # 每像素对每个类别的分数 segmentation logits[0].argmax(0) # [h, w]双线性上采样到原图尺寸把segmentation用 matplotlib 的 colormaps 上色就是你看到的分割结果。功能亮点whole 与 slide 两种推理模式notebook 里封装了两个推理函数覆盖不同分辨率需求。whole 模式整图一次过适合 512 短边左右的中小图速度快slide 模式384 窗口、192 步长滑动切块逐窗计算后累加平均适合高分辨率大图如 2048×2048 的街景显存占用平稳。两者输出的都是低分辨率相似度图最后双线性插值回原图尺寸。模型加载入口与权重说明在 dinov3/hub/ 的backbones.pyWeights枚举可选 LVD-1689M网络图和 SAT-493M卫星图两套预训练骨干跑遥感数据时用后者。进阶调优与常见坑三个最值得调的参数。分辨率whole 模式建议短边 512大图直接切 slideside 384、stride 192 是 notebook 的默认值改小 stride 会让边界更平滑但更慢。prompt 数量80 条模板取平均比只用单句 a photo of {}. 更稳想提速可先降到 8 条掉点通常可接受。显存ViT-L/16 配 bfloat16 混合精度torch.autocast能省一半以上显存文本特征与类别绑定、不随图像变化整批推理前缓存一次即可别每张图重复编码。最常见的坑patch 粒度是 16 像素上采样后细边缘会模糊追求边界精度请改走带标注的线性探针路线。什么场景适合什么场景别用适合开放词汇的语义分割类别随时可增删、项目早期的快速基线、遥感卫星图用 SAT-493M 骨干。不适合需要精细轮廓的任务发丝、器官边界、医学影像这类域差大的数据、逐帧实时性要求高的视频。这三类要么标注训练要么换方案零样本路线帮不上忙。下一步模型加载看 dinov3/hub/零样本推理参考 notebooks/dinotxt_segmentation_inference.ipynb骨干权重配置在 dinov3/hub/backbones.py建议先按上面的三步跑通第一张图再打开 notebook 复现 Cityscapes 的 mIoU。【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/15 17:38:12

基于MATLAB的光伏阴影多峰P-V特性曲线建模与MPPT仿真

简介:资源围绕光伏特性曲线、阴影遮挡与MPPT最大功率点跟踪,提供一套MATLAB/Simulink仿真模型,面向光伏系统设计人员、电气工程学生及MPPT算法研究者。压缩包共6个文件,核心为slx与mdl仿真模型,附mat数据文件、slxc仿真…

2026/9/15 17:43:13

EA 建模实战:从 UML 到数据库设计与代码生成

做软件设计这么多年,建模工具换了不少,最终长期留在我工作流里的,是 Enterprise Architect(EA)。它很难说是第一眼就讨喜的工具,界面密集、逻辑复杂、学习曲线陡峭,但等真正用熟之后你会发现&am…

2026/9/15 17:43:13

学生考勤管理系统毕业设计:Flask+SQLAlchemy完整实现详解

简介:面向计算机专业毕业生与项目实战学习者,这套基于Python的学生考勤管理系统毕设资料包,包含完整源码、部署教程与论文文档,可直接用于毕业设计参考或日常练手。压缩包共445个文件,大小约11.61MB,核心包…

2026/9/15 17:43:13

go2rtc 的 HomeKit Server 怎么把 H264 摄像头导出到 Apple Home?

go2rtc 的 HomeKit Server 怎么把 H264 摄像头导出到 Apple Home? 【免费下载链接】go2rtc Ultimate camera streaming application 项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc 如果你的摄像头已经在 go2rtc 的 streams 列表里(RT…

2026/9/15 17:43:13

洛阳东翔科技做的网站实战案例揭秘如何避开安全大坑

洛阳东翔科技做的网站实战案例揭秘如何避开安全大坑 别再迷信模板网站的“一键生成”了。那些花里胡哨的模板,看着是挺快,但往往因为代码结构混乱、权限配置随意,成了黑客眼中的“提款机”。很多老板觉得网站上线就行,殊不知后台被拖库、页面被挂马,损失…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码