恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

DINOv3 三步完成零样本分割:dino.txt 免训练语义分割实战

  • 首页
  • 资讯中心
  • /
  • DINOv3 三步完成零样本分割:dino.txt 免训练语义分割实战

相关资讯

如何用 iii http worker 快速把函数变成 REST 端点(完整指南) 2026/9/15 16:16:05
Python爬虫实战:批量获取天天基金历史净值并存入SQLite 2026/9/15 16:16:05
mold 仓库内嵌 oneTBB 指南:深入理解 Flow Graph 的 Graph Object(图对象)与整图操作 2026/9/15 16:16:05

最新资讯

从Chimera到ChimeraX:结构生物学可视化迁移实战指南
Boss直聘数据爬取与可视化分析:从requests到pyecharts完整实战
AWS CLI 实战:用 cloudformation estimate-template-cost 快速估算模板月度成本
Instructor 多 Provider 结构化输出集成指南:从 OpenAI 到 Ollama 的统一接入方案
ET 框架单线程异步原理:从回调式计时器到 await 与 ETTask
Raspberry Pi 距离检测实战:在 IoT-For-Beginners 中驱动 VL53L0X 飞行时间传感器

今日推荐

GDPR下大数据架构重构与隐私保护实践
多组学数据平台架构设计与优化实践
企业主数据管理系统架构设计与实施全解析

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

DINOv3 三步完成零样本分割:dino.txt 免训练语义分割实战

发布时间:2026/9/15 16:16:05
DINOv3 三步完成零样本分割:dino.txt 免训练语义分割实战 DINOv3 三步完成零样本分割:dino.txt 免训练语义分割实战【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3DINOv3 是 Meta AI 开源的视觉基础模型,其多模态版本 dino.txt 已将文本编码器与图像 patch 特征在大规模数据上对齐,因此只需用类别名做提示,就能直接得到逐像素的 DINOv3 语义分割结果,全程不需要微调训练。下面以街景图像为例,给出这套零样本分割教程的最小可复现路径:环境准备、推理模式选择、Cityscapes 上的 mIoU 评估。为什么可行:文本-图像对齐原理dino.txt 由两个塔构成。视觉侧是 ViT-Large 骨干,定义见 dinov3/models/vision_transformer.py,它把图像切成 16×16 的 patch,每个 patch 产出一个特征向量;文本侧是 24 层 Transformer,定义见 dinov3/eval/text/text_tower.py,把一句自然语言描述编码成同维度向量。两个塔共享同一向量空间,patch 向量与某类事物的句子向量之间的距离,由语义相关程度决定。推理时只需一步运算:对每个 patch 特征,分别计算它与每个类别文本向量的余弦相似度,结果就是一张 [类别数, h, w] 的相似度图,相似度直接充当像素得分。没有分割头,也没有任何标注数据参与训练,类别间的区分能力全部来自预训练阶段建立的图文对齐。DINOv3 环境搭建步骤克隆仓库并用自带的 conda.yaml 建环境,其中已固定 Python 3.11、torch、torchvision、torchmetrics,以及 dino.txt 所需的 ftfy 和 regex:git clone https://gitcode.com/GitHub_Trending/di/dinov3 cd dinov3 micromamba env create -f conda.yaml micromamba activate dinov3模型入口是 dinov3/hub/dinotxt.py 中的dinov3_vitl16_dinotxt_tet1280d20h24l函数,一行调用即可拿到模型与 BPE 分词器,接着把类别名按提示模板批量编码为文本特征:import torch.nn.functional as F from dinov3.hub.dinotxt import dinov3_vitl16_dinotxt_tet1280d20h24l model, tokenizer dinov3_vitl16_dinotxt_tet1280d20h24l() model.to(cuda).eval() text_feats [] for name in [road, car, sky]: text [t.format(name) for t in PROMPT_TEMPLATES] feats model.encode_text(tokenizer(text).to(cuda)) feats F.normalize(feats[:, feats.shape[1] // 2:], p2, dim-1) # 丢弃 CLS 前半 text_feats.append(F.normalize(feats.mean(dim0), p2, dim-1)) text_feats torch.stack(text_feats) # [num_classes, D]图像侧的流程与之对应:先把图像缩放到宽高均为 patch 大小整数倍,骨干网络和附加 head blocks 输出的 patch token 重排成二维网格,逐 patch 归一化后与文本向量做内积,得到低分辨率相似度图;上采样再取 argmax,就是最终的分割掩码。零样本推理模式选择方法推理提供 whole 与 slide 两种模式,按图像尺寸取舍:维度wholeslide输入方式整图一次送入模型按 side×side 窗口、步长 stride 依次处理显存占用随 patch 总数增长单窗口恒定输出分辨率从 patch 网格上采样在输入分辨率上逐像素累积平均推荐参数短边 resize 到 512side384,stride192适用场景中等分辨率、快速评估高分辨率街景、航拍大图滑动窗口模式的做法值得展开:每个窗口算出相似度图并上采样到窗口像素尺寸,沿类别维做 softmax 得到概率值,累加进一张与图像同尺寸的结果矩阵;同时用一个计数器记录每个像素被多少个窗口覆盖。最后结果矩阵除以计数,重叠区域自然得到平均后的预测。这样做避免了整图一次下采样造成的细节损失,类别边界也更为平滑。Cityscapes 街景分割与 mIoU 评估官方推理 notebook 内置了 Cityscapes 与 ADE20K 两个数据集的加载器,类别定义(road、sidewalk、building、car、bus 等 19 类)开箱即用,路径在 notebooks/dinotxt_segmentation_inference.ipynb。评估指标用 torchmetrics 的 MulticlassJaccardIndex(多类别 Jaccard 指数,即 mIoU),macro 平均并忽略索引 255:from torchmetrics.classification import MulticlassJaccardIndex miou MulticlassJaccardIndex(len(class_names), averagemacro, ignore_index255) for img, target in dataloader: pred predict_slide(model, img, text_feats, side384, stride192) pred F.interpolate(pred[None], sizetarget.shape, modebilinear).argmax(1) miou.update(pred[None], target[None]) print(100 * miou.compute().item())每张图的预测先上采样到标注掩码的原生分辨率,取 argmax 得到类别图再累入指标,最后输出各类别 Jaccard 的均值。由于整个流程不训练任何参数,所得数字即模型的免训练真实水平,便于与同样免训练的方法横向对比。提升分割精度:提示模板聚合单句描述会让文本向量偏向特定措辞。实践中参考 CLIP 的做法:准备数十条模板(如 a blurry photo of a {0}.、a low resolution photo of the {0}.、a photo of the hard to see {0}.),把每个类别名填入所有模板后一次性编码;输出中每句对应两段特征,前半属于 CLS token 需丢弃,保留后半;对每条嵌入做 L2 归一化,再跨模板取平均并再次归一化,得到最终类别向量。多条描述求平均可以抵消单一措辞带来的偏差,让类别向量更稳定地指向该类的语义中心。这一步只发生在图像推理之前,运行一次即可,不影响推理速度。小结以上就是 DINOv3 零样本分割的完整链路:双塔共享向量空间,whole 或 slide 两种推理模式,提示模板聚合。需要复现完整数字时,直接从仓库中的推理 notebook 起步,文本塔与视觉塔的实现可对照上文给出的模块路径查阅。【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号