资讯详情

资讯详情

显存只有8G?GroundingDINO零样本检测选SwinT还是SwinB

显存只有8GGroundingDINO零样本检测选SwinT还是SwinB【免费下载链接】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部署到边缘盒子显存爆了换 SwinB 直接卡死。GroundingDINO 的 SwinT 和 SwinB 看着差不多实际差 4 倍读完你只需回答三个问题就能定。先搞清楚你卡在哪零样本目标检测选型轴九成配置翻车都是按感觉选而不是按约束轴选。我们见过 12G 卡硬上 SwinB 配置跑 30fps 监控第 10 帧直接 OOM。还有个高频错误B 版配置配 T 版权重config 和 .pth 必须成对不配对直接加载失败。先对齐一个概念零样本目标检测是不用任何标注数据直接输入文字提示cat . dog .就能在图里找出对应框。APAverage Precision可以理解为检测框平均质量的分越高越好。两个配置的选型就三条轴我们归纳成精度轴COCO 上多少 AP框稳不稳速度轴单张图要多少毫秒跟不跟得上视频流资源轴显存和参数量你的卡兜不兜得住。先确认自己卡在哪条轴上再看配置。两种配置各自适合谁GroundingDINO SwinT 和 SwinB 人格画像两个版本共享同一套 Transformer 主体——6 层编码器加 6 层解码器、8 个注意力头、900 个检测查询唯一分叉是视觉骨干性格差异全从这里来。两份配置都在 config 目录文件首行就是骨干声明swin_T_224_1k 对 swin_B_384_22k差一行差 4 倍显存。文本与图像特征的双向交叉注意力SwinT轻量版像个随身工具包224×224 输入ImageNet-1k 预训练骨干总参数约 99M秒级加载日常场景的零样本检测够用COCO 48.4 AP常见文字提示命中率稳定配置名里的 OGC 表示它针对开放集加 COCO 定位专门训练开箱即用适合边缘部署、实时视频分析、快速原型短板复杂密集场景框会飘小目标召回比 B 版差一截。SwinB高精版像重型精密仪器384×384 输入ImageNet-22k 预训练约 398M 参数是 T 版的 4 倍COCO 56.7 AP医学影像、卫星解译这类高精度场景优势明显适合服务器端离线处理、批量图像、科研复现短板吃显存、速度慢实时视频流别想了。实测数据怎么说COCO 零样本 AP 与推理耗时B 版最终 AP 领先 8 个多点代价是 4 倍参数、近一倍的推理耗时这个买卖划不划算全看你的轴。配置COCO 零样本 AP微调 AP单张推理耗时SwinT48.457.2约100–150msRTX 3060SwinB—56.7约200–300msRTX 3090数据取 README 官方口径耗时为对应显卡 batch1 实测。真正有区分度的是最后一列同一张图T 版耗时大约是 B 版一半。做视频流分析这半截就是生死线做离线单图AP 为王。ODinW 这类开放域通用场景结论一致B 版平均高 3 到 4 个点差距比 COCO 略小——B 版的优势在训练数据覆盖多的场景最大。COCO 零样本与微调性能对比ODinW 通用场景零样本表现你的硬件够不够8G显存跑GroundingDINO门槛 先说结论12G 的 3060 跑 T 版没问题跑 B 版别想了B 版 16G 起步。最低门槛SwinT推理 8G 显存够微调要 12G系统内存 16G 足够SwinB推理 16G 显存够微调要 24G系统内存至少 32G。舒适区SwinT3060/3070 级别可以拉 batch甚至多卡SwinB3090 或 A100 级别才刚开始跑得动。卡小于 8G 就直接放弃 GPU 微调推理也建议只上 T 版。要拉 batch 或抬高输入分辨率的显存再留三成余量。切换只需要改一行SwinT 切 SwinB两个配置之间切换只改两个参数路径代码一行都不用动对照 groundingdino/config/GroundingDINO_SwinT_OGC.py 和 groundingdino/config/GroundingDINO_SwinB_cfg.pyfrom groundingdino.util.inference import load_model # SwinT 轻量版 model load_model(groundingdino/config/GroundingDINO_SwinT_OGC.py, weights/groundingdino_swint_ogc.pth) # 切 SwinB 改成这两行 model load_model(groundingdino/config/GroundingDINO_SwinB_cfg.py, weights/groundingdino_swinb_cogcoor.pth)切完别忘下对应权重的 .pth两个版本不通用。跑一下 demo/inference_on_a_image.py 的验证命令就知道活了没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 logs/out -t cat . dog .文本提示多目标检测效果遇到瓶颈时的加料选项混合精度与 TensorRT 加速显存和速度都顶到头时就四种手段可用混合精度FP16/BF16微调时显存吃紧就开它显存占用直接减半速度几乎不掉TensorRT正式部署时把 T 版编译成引擎推理再快 1.5–2 倍T 版尤其适合走这条路ONNX 导出要上非 NVIDIA 设备或其他推理框架时先导出 ONNX 再做跨平台优化梯度检查点两份配置默认 use_checkpointTrue训练 OOM 时它就是那个用算力换显存的开关。60 秒定案清单不用纠结逐条对号入座如果你有视频流或边缘设备的实时要求选 SwinT如果是离线单图批量处理且显存宽裕选 SwinB。如果显存小于 12G直接 SwinTB 版不用考虑如果 3090 起步且精度是 KPI选 SwinB。如果你在做原型或论文复现先跑 SwinT 把流程跑通精度不够再切 SwinB别一上来就上重武器。如果你的场景是小目标、密集遮挡选 SwinB日常常见物体SwinT 足够。拿不准就从轻量版起步跑通了再考虑切 B 版切换成本就两行路径的事。【免费下载链接】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),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →