Grounding DINO 零样本目标检测实战:文本提示与多类别筛选

发布时间:2026/9/28 4:08:54

Grounding DINO 零样本目标检测实战:文本提示与多类别筛选
Grounding DINO 零样本目标检测实战文本提示与多类别筛选这篇教程根据我复现 Grounding DINO 零样本目标检测流程时整理重点演示如何编译模型、加载权重、设置文本提示并对单图和多图进行开放词汇检测。Grounding DINO 适合用自然语言直接找目标不需要提前把类别写死在分类头里。本文更适合做开放词汇目标检测的入门模板。本文会重点跑通以下流程编译 Grounding DINO 并安装依赖准备示例图片和模型权重使用文本提示执行零样本检测调整提示词和阈值筛选目标把同一模型继续用于本地样例图测试如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型建议收藏本文配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住可以在评论区说明具体报错。 文章目录Grounding DINO 零样本目标检测实战文本提示与多类别筛选⚙️ 环境准备⬇️ 下载权重️ 准备示例图片 加载 Grounding DINO 模型 单图零样本检测 多目标提示词测试 本地数据集验证 结果汇总 小结 同系列教程汇总⚙️ 环境准备先检查运行环境并安装依赖。建议优先使用带 NVIDIA GPU 的环境避免推理和训练阶段显存不足。!nvidia-smiimportos HOMEos.getcwd()print(HOME)%cd{HOME}!git clone https://github.com/IDEA-Research/GroundingDINO.git# Fix for CUDA build error introduced in PyTorch 2.1 (updated by default in Google Colab)# Older PyTorch versions still work without this patch, see https://github.com/IDEA-Research/GroundingDINO/issues/402%cd{HOME}/GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn !sed-is/value.type()/value.scalar_type()/gms_deform_attn_cuda.cu !sed-is/value.scalar_type().is_cuda()/value.is_cuda()/gms_deform_attn_cuda.cu%cd{HOME}/GroundingDINO !pip install-q-e.importos CONFIG_PATHos.path.join(HOME,GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py)print(CONFIG_PATH,; exist:,os.path.isfile(CONFIG_PATH))⬇️ 下载权重先把模型权重准备好后面的推理和训练才能顺利运行。%cd{HOME}!mkdir{HOME}/weights%cd{HOME}/weights !wget-q https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pthimportos WEIGHTS_NAMEgroundingdino_swint_ogc.pthWEIGHTS_PATHos.path.join(HOME,weights,WEIGHTS_NAME)print(WEIGHTS_PATH,; exist:,os.path.isfile(WEIGHTS_PATH))️ 准备示例图片这一段会准备图片或视频示例。实际复现时可直接换成你从数据集后台下载的资源。%cd{HOME}!mkdir{HOME}/data%cd{HOME}/data# 请从数据集后台下载示例图片并放到 {HOME}/data 目录。# 文件名保持为 dog.jpeg、dog-2.jpeg、dog-3.jpeg、dog-4.jpeg。 加载 Grounding DINO 模型先把模型加载起来再通过文本提示做开放词汇检测。%cd{HOME}/GroundingDINOfromgroundingdino.util.inferenceimportload_model,load_image,predict,annotate modelload_model(CONFIG_PATH,WEIGHTS_PATH) 单图零样本检测先在单张图片上验证文本提示词和阈值设置。importosimportsupervisionassv IMAGE_NAMEdog-3.jpegIMAGE_PATHos.path.join(HOME,data,IMAGE_NAME)TEXT_PROMPTchairBOX_TRESHOLD0.35TEXT_TRESHOLD0.25image_source,imageload_image(IMAGE_PATH)boxes,logits,phrasespredict(modelmodel,imageimage,captionTEXT_PROMPT,box_thresholdBOX_TRESHOLD,text_thresholdTEXT_TRESHOLD)annotated_frameannotate(image_sourceimage_source,boxesboxes,logitslogits,phrasesphrases)%matplotlib inline sv.plot_image(annotated_frame,(16,16))importosimportsupervisionassv IMAGE_NAMEdog-3.jpegIMAGE_PATHos.path.join(HOME,data,IMAGE_NAME)TEXT_PROMPTchair with man sitting on itBOX_TRESHOLD0.35TEXT_TRESHOLD0.25image_source,imageload_image(IMAGE_PATH)boxes,logits,phrasespredict(modelmodel,imageimage,captionTEXT_PROMPT,box_thresholdBOX_TRESHOLD,text_thresholdTEXT_TRESHOLD)annotated_frameannotate(image_sourceimage_source,boxesboxes,logitslogits,phrasesphrases)%matplotlib inline sv.plot_image(annotated_frame,(16,16))importosimportsupervisionassv IMAGE_NAMEdog-3.jpegIMAGE_PATHos.path.join(HOME,data,IMAGE_NAME)TEXT_PROMPTchair, dog, table, shoe, light bulb, coffee, hat, glasses, car, tail, umbrellaBOX_TRESHOLD0.35TEXT_TRESHOLD0.25image_source,imageload_image(IMAGE_PATH)boxes,logits,phrasespredict(modelmodel,imageimage,captionTEXT_PROMPT,box_thresholdBOX_TRESHOLD,text_thresholdTEXT_TRESHOLD)annotated_frameannotate(image_sourceimage_source,boxesboxes,logitslogits,phrasesphrases)%matplotlib inline sv.plot_image(annotated_frame,(16,16))importosimportsupervisionassv IMAGE_NAMEdog-2.jpegIMAGE_PATHos.path.join(HOME,data,IMAGE_NAME)TEXT_PROMPTglassBOX_TRESHOLD0.35TEXT_TRESHOLD0.25image_source,imageload_image(IMAGE_PATH)boxes,logits,phrasespredict(modelmodel,imageimage,captionTEXT_PROMPT,box_thresholdBOX_TRESHOLD,text_thresholdTEXT_TRESHOLD)annotated_frameannotate(image_sourceimage_source,boxesboxes,logitslogits,phrasesphrases)%matplotlib inline sv.plot_image(annotated_frame,(16,16))importosimportsupervisionassv IMAGE_NAMEdog-2.jpegIMAGE_PATHos.path.join(HOME,data,IMAGE_NAME)TEXT_PROMPTglass most to the rightBOX_TRESHOLD0.35TEXT_TRESHOLD0.25image_source,imageload_image(IMAGE_PATH)boxes,logits,phrasespredict(modelmodel,imageimage,captionTEXT_PROMPT,box_thresholdBOX_TRESHOLD,text_thresholdTEXT_TRESHOLD)annotated_frameannotate(image_sourceimage_source,boxesboxes,logitslogits,phrasesphrases)%matplotlib inline sv.plot_image(annotated_frame,(16,16))importosimportsupervisionassv IMAGE_NAMEdog-2.jpegIMAGE_PATHos.path.join(HOME,data,IMAGE_NAME)TEXT_PROMPTstrawBOX_TRESHOLD0.35TEXT_TRESHOLD0.25image_source,imageload_image(IMAGE_PATH)boxes,logits,phrasespredict(modelmodel,imageimage,captionTEXT_PROMPT,box_thresholdBOX_TRESHOLD,text_thresholdTEXT_TRESHOLD)annotated_frameannotate(image_sourceimage_source,boxesboxes,logitslogits,phrasesphrases)%matplotlib inline sv.plot_image(annotated_frame,(16,16))importosimportsupervisionassv IMAGE_NAMEdog-4.jpegIMAGE_PATHos.path.join(HOME,data,IMAGE_NAME)TEXT_PROMPTmens shadowBOX_TRESHOLD0.35TEXT_TRESHOLD0.25image_source,imageload_image(IMAGE_PATH)boxes,logits,phrasespredict(modelmodel,imageimage,captionTEXT_PROMPT,box_thresholdBOX_TRESHOLD,text_thresholdTEXT_TRESHOLD)annotated_frameannotate(image_sourceimage_source,boxesboxes,logitslogits,phrasesphrases)%matplotlib inline sv.plot_image(annotated_frame,(16,16)) 多目标提示词测试通过更长的提示词组合看看模型能否锁定更细粒度的目标。 本地数据集验证把同样的检测逻辑继续放到本地数据集样本上检查泛化表现。%cd{HOME}fromtypesimportSimpleNamespace# 从数据集后台下载 COCO 格式数据集后修改 DATASET_DIR 指向解压目录。DATASET_DIR/content/dataset# 修改为数据集后台导出的数据集目录datasetSimpleNamespace(locationDATASET_DIR)fromrandomimportrandrangefrom.core.datasetimportDatasetdefpick_random_image(dataset:Dataset,subdirrectory:strvalid)-str:image_directory_pathf{dataset.location}/{subdirrectory}image_namesos.listdir(image_directory_path)image_indexrandrange(len(image_names))image_nameimage_names[image_index]image_pathos.path.join(image_directory_path,image_name)returnimage_pathfromimportrf()projectrf.workspace(work-safe-project).project(safety-vest---v4)datasetproject.version(3).download(coco)TEXT_PROMPT, .join(project.classes.keys())TEXT_PROMPTimage_pathpick_random_image(datasetdataset)importosimportsupervisionassv BOX_TRESHOLD0.35TEXT_TRESHOLD0.25image_source,imageload_image(image_path)boxes,logits,phrasespredict(modelmodel,imageimage,captionTEXT_PROMPT,box_thresholdBOX_TRESHOLD,text_thresholdTEXT_TRESHOLD)annotated_frameannotate(image_sourceimage_source,boxesboxes,logitslogits,phrasesphrases)%matplotlib inline sv.plot_image(annotated_frame,(16,16)) 结果汇总最后把几组提示词的效果放在一起总结文本提示对结果的影响。TEXT_PROMPTreflective safety vest, helmet, head, nonreflective safety vestimportosimportsupervisionassv BOX_TRESHOLD0.35TEXT_TRESHOLD0.25image_source,imageload_image(image_path)boxes,logits,phrasespredict(modelmodel,imageimage,captionTEXT_PROMPT,box_thresholdBOX_TRESHOLD,text_thresholdTEXT_TRESHOLD)annotated_frameannotate(image_sourceimage_source,boxesboxes,logitslogits,phrasesphrases)%matplotlib inline sv.plot_image(annotated_frame,(16,16)) 小结Grounding DINO 的核心是提示词设计和阈值筛选。实际项目里先用短提示词定位主要目标再逐步叠加描述词效果通常更稳定。这一类 notebook 建议按“先环境、再数据、再单样例、最后批量推理”的顺序复现。遇到报错时优先检查 GPU、依赖版本、数据集目录和模型权重路径。后续我会继续按源项目顺序整理同系列中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。 同系列教程汇总Google Gemini 3.5 Flash 零样本目标检测教程从提示词到可视化结果GLM-OCR 文档识别实战教程从验证码、公式到车牌 OCRRF-DETR ByteTrack 多目标跟踪实战教程从命令行到 Python 视频轨迹可视化SAM 3 图像分割实战教程文本、框和点提示的多种分割方式Grounding DINO 零样本目标检测实战文本提示与多类别筛选-本文

相关新闻

锤石辅助进阶指南:从技能连招到对线策略的实战解析

锤石辅助进阶指南:从技能连招到对线策略的实战解析

2026/8/23 0:14:26

1. 先搞清楚锤石在下路的定位和优势点锤石这个英雄在辅助里属于典型的“创造机会型”角色,不是单纯靠加血或护盾保AD,而是靠控制链和位移能力打开局面。很多新手锤石容易犯两个错误:要么躲在AD后面只丢灯笼,要么无脑钩上去送人头。…

2026年文件加密软件全解析:从AES-256原理到7款工具实战选型

2026年文件加密软件全解析:从AES-256原理到7款工具实战选型

2026/8/23 0:14:26

1. 项目概述:为什么我们需要文件加密软件?在数字生活和工作成为常态的今天,我们的电脑硬盘、移动硬盘乃至云盘里,塞满了各种敏感文件。可能是公司的财务报表、未公开的商业计划书,也可能是个人私密的照片、日记&#x…

Android系统证书信任机制解析与MoveCertificate模块实战指南

Android系统证书信任机制解析与MoveCertificate模块实战指南

2026/9/2 16:36:55

1. 项目概述:为什么我们需要MoveCertificate?如果你在Android开发、安全测试或者网络调试领域摸爬滚打过一阵子,大概率遇到过这个让人头疼的场景:你需要在手机上安装一个自定义的根证书(比如Burp Suite或Charles的CA证…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/26 13:57:22

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…