ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

GroundingDINO 在土星云 SE110S 系列上的部署与实战

2026/8/16 16:53:27 拓冰建站 浏览量
GroundingDINO 在土星云 SE110S 系列上的部署与实战 一、引言随着大模型技术向边缘侧渗透文本即查询的开放词汇目标检测正在成为工业视觉、智能安防和机器人感知的核心能力。GroundingDINO 作为当前最具代表性的多模态检测模型之一能够根据任意自然语言提示在图像中定位目标无需针对特定类别重新训练。本文将结合 sophon-demo 官方例程详细介绍如何将 GroundingDINO 移植并部署到土星云 SE110S 系列加速卡上涵盖算法原理、典型场景、模型编译与推理全流程。二、GroundingDINO 算法简介2.1 核心思想GroundingDINO 由 IDEA Research 于 2023 年提出其名称中的 Grounding 指代视觉定位Visual GroundingDINO 则继承自 DETR 系列的端到端检测范式。它将文本提示与图像输入共同送入模型输出与文本语义对齐的检测框从而实现说什么、检什么的开放词汇检测能力。2.2 网络架构模型整体由四个核心模块构成图像主干Swin-T、文本主干BERT-base、特征融合器Feature Enhancer以及语言引导的查询选择与跨模态解码器。图像分支提取多尺度视觉特征文本分支输出词级嵌入二者通过双向注意力完成深度融合解码器在融合特征上直接生成带类别标签的边界框省去了传统检测器的 NMS 后处理依赖。2.3 技术亮点其一开放词汇支持 COCO 以外的任意类别描述甚至可以用 a person wearing red shirt 这类短语进行细粒度检索其二零样本迁移在不微调的情况下即可在下游数据集取得较强表现在 COCO 上零样本 mAP 可达 52.5其三端到端基于集合预测与二分匹配无需锚框设计与手工后处理推理流程简洁其四可作为开放词汇检测器与 SAM 等分割模型级联构成检测分割的视觉基础模型流水线广泛应用于自动标注与图像编辑场景。2.4 与传统检测器的对比相比 YOLO、Faster R-CNN 等闭集检测器GroundingDINO 的最大区别在于输入侧引入了文本模态。传统检测器只能输出训练时定义的固定类别新增类别需要重新标注与训练而 GroundingDINO 通过文本提示即可动态切换检测目标在类别频繁变化的场景下大幅降低了迭代成本。当然这种灵活性也带来了更大的模型体量与计算开销因此在边缘端部署时需要针对硬件特性做专门优化。三、典型使用场景GroundingDINO 的开放词汇特性使其特别适合类别不固定、需求频繁变化的边缘场景1工业质检产线上缺陷种类随批次变化工程师可通过文本提示灵活定义划痕、凹陷、异物等缺陷无需为每条产线重训模型。2智能安防在边缘盒子中根据安保人员输入的未戴安全帽人员遗留包裹等自然语言指令实时检索画面。3机器人感知服务机器人通过语音指令识别桌子上的蓝色杯子完成抓取前的目标定位。4数据标注自动化作为预标注工具用文本提示批量生成检测框大幅降低人工标注成本。5多模态 Agent 视觉前端为大语言模型驱动的智能体提供可交互的视觉感知接口。四、土星云 SE110S 平台概述土星云 SE110S 系列是面向边缘推理场景的高性能 AI 加速产品基于 BM1684X 芯片单卡 INT8 算力可达 32TOPS支持 FP16/INT8 混合精度推理具备典型功耗低、视频解码路数多、工业级宽温等特性非常适合在边缘服务器、工控机和智能盒中部署多模态大模型。SE110S 提供 PCIe 与 SoC 两种形态配套完整的 TPU-MLIR 编译工具链和 SAIL 推理接口支持 PyTorch、ONNX 等主流框架模型的一键转换。五、模型部署全流程5.1 环境与代码准备首先克隆官方例程仓库并进入 GroundingDINO 目录执行下载脚本获取预编译 BModel、ONNX 模型、测试数据与 BERT 分词器git clone https://github.com/sophgo/sophon-demo.gitcd sophon-demo/sample/GroundingDINOchmod -R x scripts/./scripts/download.sh --all下载完成后models/BM1684X 目录下会得到 groundingdino_bm1684x_fp16.bmodel这是可直接在 SE110S 上运行的 FP16 模型datasets 目录包含测试图片、视频与 COCO 类别文件。5.2 模型编译若需自行从 ONNX 编译 BModel需安装对应版本的 TPU-MLIR 工具链并在 scripts/gen_fp16bmodel_mlir.sh 中配置 ONNX 路径、输出目录与输入 shape随后指定目标平台执行./scripts/gen_fp16bmodel_mlir.sh bm1684x编译脚本会调用 model_transform 与 model_deploy 完成图优化、算子降级与 FP16 量化最终生成可在 SE110S 上加载的 BModel 文件。5.3 Python 推理Python 例程基于 PIL 与 SAIL 接口入口脚本为 python/groundingdino_pil.py。安装依赖后执行cd pythonpip3 install -r requirements.txtpython3 groundingdino_pil.py \--bmodel ../models/BM1684X/groundingdino_bm1684x_fp16.bmodel \--input ../datasets/test/zidane.jpg \--tokenizer_path ../models/bert-base-uncased \--text_prompt person . helmet . ball \--devid 0其中 --text_prompt 支持以英文句号分隔多个类别模型会根据提示输出对应检测框与置信度。推理结果会保存为带标注的图片可直观验证开放词汇检测效果。需要注意的是文本提示建议使用英文单词或简短短语类别之间用英文句号分隔并在末尾保留句号这与官方仓库的输入格式保持一致。5.4 C 推理对性能要求更高的生产环境推荐使用 cpp/groundingdino_sail 下的 C 例程。该实现基于 SAIL 封装预处理与后处理均在 C 侧完成避免了 Python 开销。编译方式如下cd cpp/groundingdino_sailmkdir build cd buildcmake .. make -j4./groundingdino_sail.pcie \--bmodel ../../models/BM1684X/groundingdino_bm1684x_fp16.bmodel \--input ../../datasets/test/zidane.jpg \--tokenizer_path ../../models/bert-base-uncased \--text_prompt person . car六、性能测试与优化建议使用 bmrt_test 可测试模型的理论推理时间。在 SE110SBM1684X上groundingdino_bm1684x_fp16.bmodel 的单图推理约为 285ms完整程序端到端性能中C 版本的解码、预处理、推理、后处理分别约为 5.8ms、6.1ms、468ms、6.1ms显著优于 Python 版本的预处理耗时。优化建议优先使用 C SAIL 接口可将预处理时间从 150ms 级降至 6ms 级端到端帧率提升明显对输入分辨率做合理缩放在精度允许范围内降低图像尺寸可线性减少推理耗时官方模型默认输入为 800×1333文本提示尽量精简过长的句子会增加 BERT 编码与注意力计算开销多卡场景可通过 devid 绑定不同 TPU 核实现流水线并行若对实时性要求极高可尝试 INT8 量化进一步压缩模型体积与推理延迟但需关注量化精度损失。七、总结GroundingDINO 将自然语言理解与目标检测深度融合为边缘端带来了灵活、可交互的视觉感知能力。借助土星云 SE110S 系列的算力与完整工具链开发者可以快速完成从 ONNX 到 BModel 的编译转换并通过 Python 或 C 接口实现高效推理。无论是工业质检、智能安防还是机器人感知开放词汇检测都正在成为边缘 AI 应用的新范式而 SE110S 与 GroundingDINO 的组合为这一范式提供了可落地的工程方案。