news 2026/9/17 2:02:33

GroundingDINO 配置选型:SwinT 还是 SwinB,从一行 backbone 参数说起

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GroundingDINO 配置选型:SwinT 还是 SwinB,从一行 backbone 参数说起

GroundingDINO 配置选型:SwinT 还是 SwinB,从一行 backbone 参数说起

【免费下载链接】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 配置选型,结论先行:默认 SwinT,只有离线高精度任务才上 SwinB。两个 config 只差一行backbone参数,它决定了输入分辨率、预训练数据和参数量,进而决定你的显存账单和推理速度。

🚀 从最小推理命令看配置入口

装好后跑通一条推理命令,就能看清配置是怎么参与的:

CUDA_VISIBLE_DEVICES=0 python demo/inference_on_a_image.py \ -c groundingdino/config/GroundingDINO_SwinT_OGC.py \ -p weights/groundingdino_swint_ogc.pth \ -i your_image.jpg \ -o outputs/ \ -t "cat . dog"

-c指向超参文件,-p指向权重。这两者成对出现:官方给了groundingdino_swint_ogc.pthGroundingDINO_SwinT_OGC.pygroundingdino_swinb_cogcoor.pthGroundingDINO_SwinB_cfg.py,不能混搭。环境安装很简单:

git clone https://gitcode.com/GitHub_Trending/gr/GroundingDINO cd GroundingDINO && pip install -e .

装完如果报NameError: name '_C' is not defined,是 CUDA 扩展没编译成功,按 README 设置CUDA_HOME后重装即可。

📝 两个 config 文件的逐行 diff

把两个配置文件并排看:43 行里只有第 3 行不同,其余 42 行一字不差。

# 两个文件唯一的差异 backbone = "swin_T_224_1k" # SwinT_OGC.py backbone = "swin_B_384_22k" # SwinB_cfg.py

Transformer 主干的参数两个文件完全一致:enc_layers = 6dec_layers = 6nheads = 8hidden_dim = 256num_queries = 900(默认输出 900 个候选框,再按box_threshold/text_threshold过滤)、num_feature_levels = 4。也就是说,配置是可插拔的:换骨干网络时,上层推理代码一行不用改,只改命令里的-c-p

🔍 backbone 一个参数决定了什么

backbone这一行编码了三件事:SwiN 变体、输入分辨率、预训练数据集。swin_T_224_1k= Swin-Tiny + 224×224 输入 + ImageNet-1K 预训练;swin_B_384_22k= Swin-Base + 384×384 输入 + ImageNet-22K 预训练。

维度SwinT(GroundingDINO_SwinT_OGC.pySwinB(GroundingDINO_SwinB_cfg.py实际影响
输入分辨率224×224384×384特征图面积 3 倍差,小目标定位
预训练数据ImageNet-1KImageNet-22K见过的语义类别数量差一个量级
相对规模约 4×(参数量级)显存占用与耗时
  • 分辨率:384 的特征图面积是 224 的 3 倍,细节更多。同一张图,SwinB 更容易框准小目标,代价是预处理和推理都更久。
  • 预训练语料:1K 还是 22K 个类别,直接关系"给一句没见过的描述能不能听懂",这正是 GroundingDINO 开放词汇检测的核心能力来源。
  • 参数量级:约 4 倍的差距决定了显存账单的档位差。

📊 COCO 数据与显存账单

官方 README 的 checkpoint 表给出两组数字:

模型训练数据COCO box AP
GroundingDINO-T(SwinT)O365, GoldG, Cap4M48.4(零样本)/ 57.2(微调)
GroundingDINO-B(SwinB)COCO, O365, GoldG, Cap4M, OpenImage, ODinW-35, RefCOCO56.7(微调)

注意:这两行数字不能直接比。SwinB 的训练数据混入了 COCO,SwinT 刻意避开了 COCO,所以 57.2 是纯零样本迁移的结果,含金量更高。SwinB 的优势更多体现在 ODinW 这类跨领域泛化基准上,趋势见官方图。

部署时真正卡脖子的还是显存和速度:

  • 8GB 显存跑 SwinT 推理绰绰有余,batch size 还有空间;SwinB 推理需要 3090/4090 级别的卡,batch size 基本只能设为 1。
  • 同一张图,SwinB 的总耗时约为 SwinT 的 2 倍,384 分辨率的预处理开销也更大。
  • 两个配置默认都开了use_checkpoint = True(梯度检查点:重算中间激活换显存),微调时可以直接依赖它,不必自己降 batch 硬扛。

🧭 部署选型:先问瓶颈在精度还是延迟

选型别从"哪个更强"开始,先问:你的瓶颈是模型精度,还是工程优化?

  • 实时视频流、边缘盒子、8GB 卡 →选 SwinT,别犹豫。224 输入的预处理开销小,单卡能持续出帧。
  • 服务器端离线批处理、漏检代价高 →选 SwinB。384 输入对小目标更友好,单张慢约 2 倍在离线场景里无感。
  • 想给推理加速:两个配置都走 TensorRT/ONNX 路线,但注意加速不改变两者相对差异,别指望把 SwinB 优化到 SwinT 的水平。

选型速查 ✅

  1. 默认 SwinT;只有确认精度瓶颈来自模型本身(而非后处理阈值调优)且卡是 3090/4090 级别时,再考虑 SwinB。
  2. 权重与配置必须成对:swint_ogc权重配GroundingDINO_SwinT_OGC.pyswinb_cogcoor权重配GroundingDINO_SwinB_cfg.py,混搭会加载失败或精度异常。
  3. 换配置只改命令行-c-p两个参数,上层代码零改动——这是官方可插拔设计,放心用。
  4. 微调显存不够时,先确认use_checkpoint = True已开启(两个配置默认就是),再谈梯度累积等其他手段。
  5. 跑新配置前先用 demo/test_ap_on_coco.py 过一遍,确认 COCO 零样本结果与官方 48.5 左右一致,排除 CUDA 扩展没编译成功的坑。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 2:01:48

YOLOWorld实战:基于ultralytics的零样本检测与微调训练全指南

这几年做目标检测,我有个很深的感受:模型越来越多,但真正能快速落地、让我不用为每个新场景都从头标数据的方案,其实不多。YOLOWorld就是那个让我眼前一亮的存在。它和普通YOLO最大的区别在于,它不是一个只能检测固定类…

作者头像 李华
网站建设 2026/9/17 2:01:44

STM32驱动MQ-2烟雾传感器实战:ADC精度、硬件设计与Keil配置

简介:本资源是一套基于STM32F4系列微控制器与MQ-2烟雾传感器的嵌入式检测系统完整工程,面向嵌入式初学者、电子类课程设计学生及STM32入门开发者,解决环境烟雾浓度实时采集与ADC数据处理的核心实践问题。压缩包共176个文件,以49个…

作者头像 李华
网站建设 2026/9/17 1:54:54

无锡依玛壁挂炉故障维修电话|频繁启停上门排查|欧米到家报修热线

文章简介无锡冬季湿冷明显,壁挂炉承担家庭洗浴热水、地暖、暖气片采暖等多项需求,设备运行时间长、启停频率高,容易出现不点火、点火后熄火、热水忽冷忽热、地暖升温慢、暖气片局部不热、运行反复掉压、接口漏水、异响报警、频繁启停等问题。…

作者头像 李华
网站建设 2026/9/17 1:52:50

SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION蓝屏修复:从原理到CMD实操指南

开机自检刚过,还没看到Windows登录界面,屏幕突然一蓝,跳出一长串停止代码:SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION。看到这串英文的朋友,第一反应估计跟我当初一样——又长又怪,断句都费劲,眼…

作者头像 李华