)
一、引言隨著大模型技術(shù)向邊緣側(cè)滲透文本即查詢的開放詞匯目標(biāo)檢測正在成為工業(yè)視覺、智能安防和機器人感知的核心能力。GroundingDINO 作為當(dāng)前最具代表性的多模態(tài)檢測模型之一能夠根據(jù)任意自然語言提示在圖像中定位目標(biāo)無需針對特定類別重新訓(xùn)練。本文將結(jié)合 sophon-demo 官方例程詳細(xì)介紹如何將 GroundingDINO 移植并部署到土星云 SE110S 系列加速卡上涵蓋算法原理、典型場景、模型編譯與推理全流程。二、GroundingDINO 算法簡介2.1 核心思想GroundingDINO 由 IDEA Research 于 2023 年提出其名稱中的 Grounding 指代視覺定位Visual GroundingDINO 則繼承自 DETR 系列的端到端檢測范式。它將文本提示與圖像輸入共同送入模型輸出與文本語義對齊的檢測框從而實現(xiàn)說什么、檢什么的開放詞匯檢測能力。2.2 網(wǎng)絡(luò)架構(gòu)模型整體由四個核心模塊構(gòu)成圖像主干Swin-T、文本主干BERT-base、特征融合器Feature Enhancer以及語言引導(dǎo)的查詢選擇與跨模態(tài)解碼器。圖像分支提取多尺度視覺特征文本分支輸出詞級嵌入二者通過雙向注意力完成深度融合解碼器在融合特征上直接生成帶類別標(biāo)簽的邊界框省去了傳統(tǒng)檢測器的 NMS 后處理依賴。2.3 技術(shù)亮點其一開放詞匯支持 COCO 以外的任意類別描述甚至可以用 a person wearing red shirt 這類短語進(jìn)行細(xì)粒度檢索其二零樣本遷移在不微調(diào)的情況下即可在下游數(shù)據(jù)集取得較強表現(xiàn)在 COCO 上零樣本 mAP 可達(dá) 52.5其三端到端基于集合預(yù)測與二分匹配無需錨框設(shè)計與手工后處理推理流程簡潔其四可作為開放詞匯檢測器與 SAM 等分割模型級聯(lián)構(gòu)成檢測分割的視覺基礎(chǔ)模型流水線廣泛應(yīng)用于自動標(biāo)注與圖像編輯場景。2.4 與傳統(tǒng)檢測器的對比相比 YOLO、Faster R-CNN 等閉集檢測器GroundingDINO 的最大區(qū)別在于輸入側(cè)引入了文本模態(tài)。傳統(tǒng)檢測器只能輸出訓(xùn)練時定義的固定類別新增類別需要重新標(biāo)注與訓(xùn)練而 GroundingDINO 通過文本提示即可動態(tài)切換檢測目標(biāo)在類別頻繁變化的場景下大幅降低了迭代成本。當(dāng)然這種靈活性也帶來了更大的模型體量與計算開銷因此在邊緣端部署時需要針對硬件特性做專門優(yōu)化。三、典型使用場景GroundingDINO 的開放詞匯特性使其特別適合類別不固定、需求頻繁變化的邊緣場景1工業(yè)質(zhì)檢產(chǎn)線上缺陷種類隨批次變化工程師可通過文本提示靈活定義劃痕、凹陷、異物等缺陷無需為每條產(chǎn)線重訓(xùn)模型。2智能安防在邊緣盒子中根據(jù)安保人員輸入的未戴安全帽人員遺留包裹等自然語言指令實時檢索畫面。3機器人感知服務(wù)機器人通過語音指令識別桌子上的藍(lán)色杯子完成抓取前的目標(biāo)定位。4數(shù)據(jù)標(biāo)注自動化作為預(yù)標(biāo)注工具用文本提示批量生成檢測框大幅降低人工標(biāo)注成本。5多模態(tài) Agent 視覺前端為大語言模型驅(qū)動的智能體提供可交互的視覺感知接口。四、土星云 SE110S 平臺概述土星云 SE110S 系列是面向邊緣推理場景的高性能 AI 加速產(chǎn)品基于 BM1684X 芯片單卡 INT8 算力可達(dá) 32TOPS支持 FP16/INT8 混合精度推理具備典型功耗低、視頻解碼路數(shù)多、工業(yè)級寬溫等特性非常適合在邊緣服務(wù)器、工控機和智能盒中部署多模態(tài)大模型。SE110S 提供 PCIe 與 SoC 兩種形態(tài)配套完整的 TPU-MLIR 編譯工具鏈和 SAIL 推理接口支持 PyTorch、ONNX 等主流框架模型的一鍵轉(zhuǎn)換。五、模型部署全流程5.1 環(huán)境與代碼準(zhǔn)備首先克隆官方例程倉庫并進(jìn)入 GroundingDINO 目錄執(zhí)行下載腳本獲取預(yù)編譯 BModel、ONNX 模型、測試數(shù)據(jù)與 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需安裝對應(yīng)版本的 TPU-MLIR 工具鏈并在 scripts/gen_fp16bmodel_mlir.sh 中配置 ONNX 路徑、輸出目錄與輸入 shape隨后指定目標(biāo)平臺執(zhí)行./scripts/gen_fp16bmodel_mlir.sh bm1684x編譯腳本會調(diào)用 model_transform 與 model_deploy 完成圖優(yōu)化、算子降級與 FP16 量化最終生成可在 SE110S 上加載的 BModel 文件。5.3 Python 推理Python 例程基于 PIL 與 SAIL 接口入口腳本為 python/groundingdino_pil.py。安裝依賴后執(zhí)行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 支持以英文句號分隔多個類別模型會根據(jù)提示輸出對應(yīng)檢測框與置信度。推理結(jié)果會保存為帶標(biāo)注的圖片可直觀驗證開放詞匯檢測效果。需要注意的是文本提示建議使用英文單詞或簡短短語類別之間用英文句號分隔并在末尾保留句號這與官方倉庫的輸入格式保持一致。5.4 C 推理對性能要求更高的生產(chǎn)環(huán)境推薦使用 cpp/groundingdino_sail 下的 C 例程。該實現(xiàn)基于 SAIL 封裝預(yù)處理與后處理均在 C 側(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六、性能測試與優(yōu)化建議使用 bmrt_test 可測試模型的理論推理時間。在 SE110SBM1684X上groundingdino_bm1684x_fp16.bmodel 的單圖推理約為 285ms完整程序端到端性能中C 版本的解碼、預(yù)處理、推理、后處理分別約為 5.8ms、6.1ms、468ms、6.1ms顯著優(yōu)于 Python 版本的預(yù)處理耗時。優(yōu)化建議優(yōu)先使用 C SAIL 接口可將預(yù)處理時間從 150ms 級降至 6ms 級端到端幀率提升明顯對輸入分辨率做合理縮放在精度允許范圍內(nèi)降低圖像尺寸可線性減少推理耗時官方模型默認(rèn)輸入為 800×1333文本提示盡量精簡過長的句子會增加 BERT 編碼與注意力計算開銷多卡場景可通過 devid 綁定不同 TPU 核實現(xiàn)流水線并行若對實時性要求極高可嘗試 INT8 量化進(jìn)一步壓縮模型體積與推理延遲但需關(guān)注量化精度損失。七、總結(jié)GroundingDINO 將自然語言理解與目標(biāo)檢測深度融合為邊緣端帶來了靈活、可交互的視覺感知能力。借助土星云 SE110S 系列的算力與完整工具鏈開發(fā)者可以快速完成從 ONNX 到 BModel 的編譯轉(zhuǎn)換并通過 Python 或 C 接口實現(xiàn)高效推理。無論是工業(yè)質(zhì)檢、智能安防還是機器人感知開放詞匯檢測都正在成為邊緣 AI 應(yīng)用的新范式而 SE110S 與 GroundingDINO 的組合為這一范式提供了可落地的工程方案。