
GroundingDINO 零样本目标检测给一句自然语言就把图里的东西框出来【免费下载链接】GroundingDINO[ECCV 2024] Official implementation of the paper Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection项目地址: https://gitcode.com/GitHub_Trending/gr/GroundingDINO想让模型找出图里所有戴红帽子的人并标出位置不标注、不训练GroundingDINO 就是为此而生的零样本目标检测工具输入图片和自然语言提示直接返回对应物体的边界框。能力速览GroundingDINO 能做什么输入图片 类别名提示cat . dog .→ 得到所有实例的边界框多类别用点号分隔一次推理全部框出。输入整句参考表达 token 位置 → 得到句中指代对象的精确位置例如左边那只狮子。输出检测框 → 配合 Stable Diffusion / GLIGEN得到只改写指定区域的编辑图。边界也说清它只出框不出 mask仓库只提供推理代码训练代码未开源微调要自己备数据。5分钟安装与验证GroundingDINO 怎么跑起来装的东西克隆仓库后执行安装会顺带编译 CUDA 版注意力扩展并下载 Swin-T OGC 权重。装之前确认CUDA_HOME指向与 PyTorch 匹配的 CUDA 版本否则按纯 CPU 模式编译后面速度感人。git clone https://gitcode.com/GitHub_Trending/gr/GroundingDINO cd GroundingDINO pip install -e . ; mkdir -p weights cd weights wget -q https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth验证就一条命令以 Swin-T 配置为例图片换成你自己的python demo/inference_on_a_image.py \ -c groundingdino/config/GroundingDINO_SwinT_OGC.py -p weights/groundingdino_swint_ogc.pth \ -i .asset/cat_dog.jpeg -o outputs -t cat . dog .看到outputs/pred.jpg里原图上画出彩色框、框角标着cat (0.9xx)这样的标签就说明整条流水线通了。三个典型工作流批量检测、精确定位与局部编辑场景一批量检测已知几类物品场景一句话盘点一张照片里同时出现的猫、狗和椅子。关键做法提示词写成点号分隔的类别列表cat . dog . chair .跑 推理脚本脚本默认按 box_threshold 0.3 过滤输出的每个框都带命中的词和分数。效果一次推理得到所有实例的框与标签直接落盘成标注图。场景二用整句话精确定位某个短语场景一句话图中有多只动物只想框出戴红帽子的那个人。关键做法把完整句喂给模型再用--token_spans按 token 下标切出目标短语例如a cat and a dog里cat是[2, 5]指定 token_spans 后 text_threshold 自动失效只按该短语打分。效果同一张图、同一句话可以只输出那只猫而不带出那只狗。场景三检测框驱动的局部图像编辑场景一句话只想把图里的狗换成金毛狮子保持原样。关键做法先让 GroundingDINO 框出目标把框和类别喂给 Stable Diffusion 或 GLIGEN 做局部改写仓库的 图像编辑 notebook 里是完整流程。效果只改检测到的区域背景和其他物体基本不动。关键参数怎么调box_threshold 与 text_threshold 调优box_threshold默认 0.3决定哪些框保留分数低于它直接丢弃。漏检多就往 0.2 调误框多往 0.4~0.5 调杂背景场景普遍比干净图更吃低阈值。text_threshold默认 0.25决定哪些词算命中标签。调太低会把无关词混进标签一般跟着 box_threshold 微调即可不用单独大动。token_spans不填就走默认打分逻辑填了则只检测指定短语且与 text_threshold 互斥二选一。容易踩的坑现象import 时抛NameError: name _C is not defined→ 原因CUDA_HOME未设置或安装步骤跳步CUDA 扩展没编译 → 解法重设环境变量后重新 clone 并严格走完全部安装步骤官方 README 点名了这个错。现象输出标签串词、框对不上 → 原因提示词格式不对不同类别间要用.分隔且句尾要有句号 → 解法照cat . dog .的写法来模型会自动补末尾句号但类别间的点号自己得加。现象纯 CPU 跑一张图要等半天或 GPU 显存吃紧 → 原因Swin-B 权重约两倍显存大图高分辨率也会爆 → 解法资源有限就用--cpu-only顶一下、降分辨率正式用回 Swin-T。想再深入可以从 groundingdino/models/ 读 feature enhancer 与跨模态 decoder 的实现弄清 900 个框如何跟 256 个文本维度互相打分。下一步自然的延伸是把检测框接上 SAM 转成 mask做开放词表的实例分割。【免费下载链接】GroundingDINO[ECCV 2024] Official implementation of the paper Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection项目地址: https://gitcode.com/GitHub_Trending/gr/GroundingDINO创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考