
Grounding DINO:用语言提示做开放集目标检测的模型|部署与使用全指南
项目仓库: https://github.com/IDEA-Research/GroundingDINO
论文:arXiv:2303.05499 · 维护方:IDEA Research(阔昆) · 语言:Python · 框架:PyTorch · 形态:Python 库 + Notebook · 在线 Demo:Hugging Face Space
1 项目简介
Grounding DINO 把 DINO 检测器与 grounded 预训练结合,实现用自然语言提示做开放集目标检测:输入一张图 + 一段文本提示(如 "a cat. a dog."),模型输出图中所有匹配对象的边界框。COCO 零样本 52.5 AP、微调 63.0 AP。
它是 Grounded-SAM、Grounded-SAM 2、DetGPT 等项目的检测后端,也已被 Hugging Face Transformers 官方支持。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Grounding DINO |
| 仓库地址 | github.com/IDEA-Research/GroundingDINO |
| 论文 | arXiv:2303.05499 |
| 在线 Demo | Hugging Face Space |
| Transformers 集成 | huggingface.co/docs/transformers/model_doc/grounding-dino |
| 形态 | Python 库 + Notebook |
| 最新 | Grounding DINO 1.5(独立 API 仓)、Grounded-SAM 2 |
1.2 适用场景
- 用文本提示检测图中任意对象(无需训练新类)。
- 作为 Grounded-SAM 的检测后端,先检测再分割。
- 自动标注数据集、引导 Stable Diffusion 做局部编辑。
1.3 能力边界(官方口径)
- 输入是
(image, text)对;文本提示用.分隔类别。 - 支持 CPU 模式(无 GPU 也能跑)。
- 已推出 Grounding DINO 1.5(独立 API 仓),能力更强。
2 功能特性
- 开放集检测:用语言检测任意类别。
- 零样本 SOTA:COCO 零样本 52.5 AP。
- CPU 可跑:无 GPU 机器也能推理。
- Hugging Face Transformers 官方支持:三行代码调用。
- 生态联动:Grounded-SAM、Grounded-SAM 2、DetGPT、GLIGEN。
3 官方界面预览
在线 Demo:huggingface.co/spaces/ShilongLiu/Grounding_DINO_demo。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库 | github.com/IDEA-Research/GroundingDINO | 源码 |
| 论文 | arXiv:2303.05499 | 技术报告 |
| Transformers 文档 | model_doc/grounding-dino | 官方集成 |
| Grounded-SAM 2 | IDEA-Research/Grounded-SAM-2 | 检测+SAM 2 |
| Grounding DINO 1.5 | IDEA-Research/Grounding-DINO-1.5-API | 最新版 |
5 前置要求与服务器配置
5.1 软件前提
- Python、PyTorch、torchvision。
- 克隆仓库后
pip install -e .。 - 可选:CPU 模式无需 GPU。
5.2 硬件建议
GPU 加速;CPU 可跑但较慢。
6 方式一:源码安装与推理
git clone https://github.com/IDEA-Research/GroundingDINO.git
cd GroundingDINO
pip install -e .下载权重(如 groundingdino_swint_ogc.pth)后按
demo/ 目录下 Notebook 运行。
7 方式二:Hugging Face Transformers 调用
from transformers import AutoProcessor, AutoModelForZeroShotObjectDetection
processor = AutoProcessor.from_pretrained("IDEA-Research/grounding-dino-tiny")
model = AutoModelForZeroShotObjectDetection.from_pretrained("IDEA-Research/grounding-dino-tiny")8 输入输出
- 输入:图像 + 文本提示(如
"cat . dog .")。 - 输出:边界框 + 置信度 + 类别。
9 常用运维命令
nvidia-smi10 常见故障排查
- 检测不到目标:调整文本提示格式,用
.分隔类别;调阈值。 - 想做视频追踪:配合 Grounded-SAM 2。
- 想要更强检测:用 Grounding DINO 1.5。
11 风险与合规说明
- 模型遵循仓库 LICENSE;商用前需核对。
- 检测输出用于监控时需遵守隐私法规。
- 与 SAM 结合做自动标注时,标注质量需人工审核。
本文基于官方 README 整理,仅供学习与部署参考;以仓库最新说明为准。