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

发布时间:2026/7/16 3:49:40

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/7/16 3:39:39

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

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

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

2026/7/16 3:39:39

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

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

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

2026/7/16 3:39:39

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

算力之光:从精英主义到大众化的认知觉醒-本文由自己构思,Trae执笔完成

算力之光:从精英主义到大众化的认知觉醒-本文由自己构思,Trae执笔完成

2026/7/16 4:49:42

本文由自己构思,Trae执笔完成一场关于技术、认知与文明的思考算力之光: 从精英主义到大众化的认知觉醒2026 年 7 月 个人随笔01被困住的认知很长一段时间里,我被一种隐秘的焦虑所困。这种焦虑并不来自外界的压力,而是来自内心深…

TEngine Unity框架:模块化架构与热更新实战解析

TEngine Unity框架:模块化架构与热更新实战解析

2026/7/16 4:49:42

1. 项目概述:为什么我们需要一个“终极”框架?做Unity游戏开发有些年头了,从最早的Unity 4.x一路跟到现在的2022 LTS,项目从小体量的独立游戏做到过千万流水的商业手游。一个最深的感触就是:项目做到中后期&#xff0c…

BPI-CanMV-K230D开发板环境监测系统实现

BPI-CanMV-K230D开发板环境监测系统实现

2026/7/16 4:49:42

1. BPI-CanMV-K230D-Zero开发板硬件解析BPI-CanMV-K230D-Zero开发板作为一款面向AIoT应用的硬件平台,其核心采用了嘉楠科技Kendryte K230D RISC-V架构芯片。这款芯片在设计上充分考虑了边缘计算场景的需求,具备低功耗、高性能的特点。开发板的工作温度范…

MySQL 9.7.0 是假版本?Windows 11 下正确安装 MySQL 8.4 LTS 指南

MySQL 9.7.0 是假版本?Windows 11 下正确安装 MySQL 8.4 LTS 指南

2026/7/16 4:49:42

1. 先说结论:MySQL 9.7.0 LTS 目前并不存在,你看到的极大概率是信息混淆或误传我盯着这个标题看了三遍——“MySQL 9.7.0 LTS”,手边正开着 Oracle 官网、MySQL 官方下载页、GitHub 上 mysql-server 仓库的 release 标签,还有近五…

从概念到量产:ISO 26262功能安全标准与ASIL等级实战解析

从概念到量产:ISO 26262功能安全标准与ASIL等级实战解析

2026/7/16 4:49:42

1. ISO 26262功能安全标准:汽车电子的"安全宪法"第一次接触ISO 26262时,我正参与某新能源车的刹车控制系统开发。当时团队遇到一个棘手问题:如何证明我们的电子制动系统在发生单点故障时仍能保证安全?这个问题直接把我们…

路,饮食饮水代谢检测系统 小动物代谢监测系统 小动物代谢检测系统

路,饮食饮水代谢检测系统 小动物代谢监测系统 小动物代谢检测系统

2026/7/16 4:39:42

实时记录动物进食、饮水、自主活动、能量代谢相关数据,食槽结构可防止饲料洒落、粪便混入,多通道持续监测。安徽,正华生物,露。适用于药理药效、毒理、动物营养、肥胖与能量代谢、心血管病症、转基因动物等方向科研实验。技术参数…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/16 0:35:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/15 0:26:43

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

2026/7/16 0:09:31

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

跨境电商多语言商品图翻译方案实现

跨境电商多语言商品图翻译方案实现

2026/7/16 0:09:31

一、问题引入对于做跨境电商的卖家来说,多语言商品图的制作一直是令人头疼的环节。当你准备在亚马逊、Shopee、Lazada等多个平台同步上架新品时,首先遇到的就是图片翻译问题。以一位做家居用品的卖家为例,他需要将200张商品图片中的英文文案全…

Windows系统文件d3dx9_36.dll丢失找不到问题解决

Windows系统文件d3dx9_36.dll丢失找不到问题解决

2026/7/16 0:09:31

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…