DeepStream 视觉模型导入
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/deepstream-import-vision-model。
技能介绍
要解决什么问题
把 Hugging Face 或 NGC 上的目标检测模型接到 NVIDIA DeepStream 上,往往要自己在各环节对齐:权重格式(ONNX / SafeTensors)、TensorRT 动态 batch 引擎、nvinfer 配置,以及和模型输出匹配的自定义边界框解析器。日志命名、batch 与流数关系、OBB 字段初始化等细节一旦不一致,基准测试和报告脚本也会对不上路径。
本技能按固定阶段自动跑通整条链路,并在每个阶段开始前要求对照 references/ 下的参考文档(脚本路径、bash 变量、日志文件名契约、解析规则),而不是凭记忆操作。
技能如何工作
流水线大致分为四块:
- 模型获取(步骤 1–3):浏览 HF/NGC、识别检测类格式、下载 ONNX 或导出 SafeTensors(见
references/model-acquire.md)。 - 引擎构建(步骤 4–5):构建动态 TensorRT 引擎,并用
trtexec在 BS=1 与 BS=MAX_BS下跑基准(见references/engine-build.md)。 - DeepStream 流水线(步骤 6–7):配置
nvinfer、实现边界框解析器,做单流与多流运行(见references/pipeline-run.md)。 - 报告(步骤 8):基于固定日志路径生成图表与 HTML/PDF 报告(见
references/report-generation.md)。
获知 MODEL_NAME 后会建立强制输出目录结构,避免产物平铺。默认自动跑完全流程,不在每步等待人工确认。关键约定包括:引擎文件命名为 {model}_dynamic_b{MAX_BS}.engine;DS 运行中 batch-size 与流数量始终相等;日志使用固定名如 trtexec_b1.log、ds_s${N}_run1.log(无时间戳);解析器里使用 NvDsInferObjectDetectionInfo obj = {} 做零初始化,避免 OBB 的 rotation_angle 未定义。
适用边界与注意点
当前范围仅限目标检测。若在 config.json 中识别到分类、分割或其他架构,应快速失败,不要按检测流程硬接。
开始前需完成预检;若走 KITTI 相关验证,帧数为 0 或检测率异常时应按技能中的 KITTI 验证关卡处理。非检测任务或需要改契约(日志名、引擎命名)时,应先改参考文档与脚本约定再跑流水线。
使用场景
- 从 Hugging Face 或 NGC 获取检测类 ONNX,在目标 GPU 上构建 `{model}_dynamic_b{MAX_BS}.engine` 并保留 trtexec_b1 与 MAX_BS 日志
- 为新检测头实现自定义边界框解析器,配置 nvinfer 后分别做单流与多流 DeepStream 运行并对比延迟
- 需要向评审方提交固定格式的 HTML/PDF 基准报告,且报告脚本只能读取约定路径下的 ds_s${N}_run 日志
- 在接入新模型前做 KITTI 帧数与检测率校验,不通过则停止后续引擎与流水线阶段
适合人员
- 负责把 HF/NGC 检测模型接到 Jetson 或 dGPU DeepStream 流水线、并要对齐 TRT 动态 batch 的边缘视觉算法工程师
- 需要为每个新检测模型产出可对比的 trtexec 与多流 DS 日志、并生成五图 HTML/PDF 报告的性能基准负责人
- 维护团队模型导入目录结构与日志命名契约、避免同事把 engine 或日志平铺到工作区的平台或 MLOps 工程师
- 首次在 DeepStream 上接 OBB/旋转框检测输出,需按文档零初始化 `NvDsInferObjectDetectionInfo` 避免倾斜框的推理集成开发者