GroundingDINO零样本目标检测速成指南:一句话检测万物
发布时间:2026/9/16 18:08:01 锦皓数字建站

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是什么零样本目标检测的定位传统目标检测器是闭集的能认的类别在训练时就被写死了想加一个戴帽子的猫就得重新采数据、再训练。GroundingDINO是 ECCV 2024 论文的 PyTorch 官方实现把 DINO 检测框架与接地预训练结合你给它一对图像, 文本它输出最多 900 个候选框每个框都会和文本里的每个词打相似度分你再按阈值筛掉不够格的。可以把它理解成传统检测器是只认员工名单的保安GroundingDINO 则是能照着你的口令实时认人的保安。性能上官方给出的 COCO 零样本 AP 达到 52.5训练全程没用 COCO 数据微调后 63.0。仓库提供两个权重Swin-T零样本 48.4 / 微调 57.2和 Swin-B56.7并且支持纯 CPU 推理。下图是论文里的定位同一个模型既能做标准检测也能做新类别零样本检测还能理解短语级指代。GroundingDINO快速部署三步看到第一个检测框克隆代码git clone https://gitcode.com/GitHub_Trending/gr/GroundingDINO进入目录后按 README 顺序做可编辑安装即可。 装之前先跑一下echo $CUDA_HOME确认 CUDA 路径已设置否则 CUDA 扩展会静默跳过编译整个模型退化成 CPU 模式后面排查起来很费劲。第二步是下权重建一个weights/目录把官方发布页里的groundingdino_swint_ogc.pth放进去想要更高精度可以换groundingdino_swinb_cogcoor.pth。第三步跑单图推理脚本 demo/inference_on_a_image.pypython 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 .有 GPU 的话前面加CUDA_VISIBLE_DEVICES0。跑完outputs/里会多出raw_image.jpg原图和pred.jpg画好检测框的结果。第一次打开 pred.jpg 的时候那种感觉有点像把证件递给保安然后他被人群里指出来。没有 GPU加--cpu-only也能跑只是慢。GroundingDINO的三种典型玩法交互式查询Gradio Web 界面跑demo/gradio_app.py会在 7579 端口起一个本地服务上传图、输检测口令页面上还有两个阈值的滑杆边拖边看结果做演示和调参特别直观。我第一次试的时候把box_threshold拖到 0.2 以下召回变化肉眼可见。批量标注FiftyOne COCO 导出demo/create_coco_dataset.py是预标注工具对一批图做批量推理结果写进 FiftyOne你抽检修正后能直接导出 COCO 格式的训练数据集也可以落盘画出带框图片。注意它默认box_threshold0.15、text_threshold0.10比单图推理宽松不少——这是故意用精度换召回预标注阶段正需要这样。与生成模型联动仓库里配了两个现成 notebookStable Diffusion 版先检测区域、再在框内做局部重绘GLIGEN 版把检测框当锚点做可控生成。检测框从此成了编辑操作的地址标签这才是 open-set 这个名字真正值钱的地方。GroundingDINO检测阈值怎么调参数速查参数默认值作用调节方向box_threshold0.3保留检测框的相似度阈值调高减少误检调低到 0.2 补召回text_threshold0.25生成标签的词相似度阈值调高过滤不相关词token_spans无文本中短语的 token 位置细粒度定位只想找指定短语时使用--cpu-only关强制 CPU 推理无 GPU 或显存不足时-c配置SwinT_OGC模型配置文件精度要求高换GroundingDINO_SwinB_cfg.py两个小提醒不同类别之间用.分隔官方建议文本末尾的句号脚本会自动补不用自己加。漏检多时先把box_threshold回调到 0.2 试试误检多再往回升。GroundingDINO翻车记录4个常见问题import 直接报_C is not defined。现象一导入就炸。原因CUDA_HOME 没设置CUDA 扩展没编译成功。解法重新克隆代码、严格按顺序重装并确认 CUDA 版本与运行时对齐官方文档也是这么建议的。一个框都出不来。通常是三件事之一阈值太高、图里确实没有目标、或者文本写成了整句话。多类别检测就写cat . dog .别写一只猫和一只狗在院子里玩。标签变成胡言乱语。分词器会把一个词拆成多个 token高相似 token 拼在一起就是乱码。对关键短语用token_spans指定短语位置让模型只定位那个短语。推理慢得像在 CPU 上跑。先nvidia-smi确认 GPU如果 CUDA_HOME 从头就没配代码其实按 CPU-only 编译的也可能是输入图太大先降分辨率再说。生态与延伸 GroundingDINO 更像一个基础件而不是成品官方后续推出了 Grounded SAM接分割和 Grounding DINO 1.5 API模型也已被 HuggingFace transformers 原生支持。想再玩深一点可以从 demo/image_editing_with_groundingdino_stablediffusion.ipynb 入手检测框加扩散模型的组合是值得挖的方向。内部结构文本骨干、图像骨干、特征增强器、跨模态解码器都在groundingdino/models/目录下想看架构可以翻。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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。