Skip to main content

摘要

使用 LiteRT 运行时和 QNN 委托,在 Qualcomm® Dragonwing™ 设备的 NPU 上加速 AI 推理。本指南通过部署一个量化目标检测模型(YOLOX)来演示端到端工作流程,该模型处理视频输入并输出带有边界框标注的帧——可以保存到文件或流式传输到显示器。 您将学到:
  • 配置 Dragonwing 设备并部署 QIM SDK Docker 环境
  • 运行在 NPU 上加速的预构建目标检测应用
  • 理解应用代码,以便将其调整为适用于您自己的模型和用例

前提条件

在继续之前,请确保您具备以下条件:

步骤 1:配置设备

启用 Wi-Fi 和 SSH

设备需要互联网连接才能下载示例应用所需的产物。如果已配置 SSH 和 Wi-Fi,请跳过此步骤。 按照设置 SSH 连接在设备上启用 Wi-Fi 和 SSH。

启用摄像头支持(CamX)

如果您计划使用摄像头输入,请在平台上启用 CamX:
此步骤后设备将重启。请等待设备重新上线后再继续。

步骤 2:设置 Docker 环境

拉取 QIM SDK 容器镜像

在目标设备上,拉取最新的 QIM SDK Docker 镜像:

创建所需目录

创建用于存储产物、配置文件、模型和媒体的目录:

克隆 SDK 工具仓库

在您的主机上,克隆 QIM SDK Debian 仓库:

将配置文件复制到设备

将 CDI 和环境文件从主机传输到目标设备:
<hardware> 替换为目标设备对应的标识符(可在仓库中查看可用选项),将 <IP_ADDRESS> 替换为设备的 IP 地址。

例如,如果目标设备是 Qualcomm Dragonwing™ RB3 Gen 2,则将 <hardware> 替换为 qcs6490。

启动容器

在目标设备上启动 QIM SDK 容器:

以 root 身份访问容器

要验证您是否以 root 身份登录,请在容器内运行 whoami。输出应为 root

步骤 3:安装依赖项

在容器内(以 root 身份),安装 LiteRT 运行时和所需的软件包。

安装 Python 工具

创建虚拟环境并安装 Python 软件包

安装 GStreamer 和 GTK 依赖项

通过 Wayland 输出视频显示需要这些软件包:

步骤 4:下载应用和模型产物

仍在容器内,设置目标检测应用:

创建应用目录

下载应用脚本

下载模型、标签和示例视频

退出 root shell

您需要退出并以 qimsdk 用户身份重新进入容器才能运行该应用:

步骤 5:运行目标检测应用

以标准用户身份进入容器

激活 Python 环境

运行应用

运行应用并将输出保存为视频文件:
处理完成后,取回输出视频:
要将该文件复制到主机:

代码讲解:使用 OpenCV 和 LiteRT 进行目标检测

本节讲解 object_detection.py 应用。可将其作为参考,在 Qualcomm Dragonwing 设备上使用 LiteRT 构建自定义推理应用。
以下代码中的后处理是为来自 Qualcomm AI Hub 的目标检测模型设计的。 对于自定义模型,请更新后处理逻辑以匹配模型的输出格式和要求。

导入软件包

解析输出参数

配置模型参数

使用 QNN 委托加载模型

QNN 委托可在 NPU 上启用推理:

设置视频捕获和预处理

配置输出管道

在主循环中运行推理

读取每个视频帧、运行推理、应用 NMS 并绘制边界框:

清理资源


故障排除


后续步骤

  • 尝试不同的模型:将 YOLOX 模型替换为来自 Qualcomm AI Hub 的其他量化模型,用于图像分类、姿态估计或分割等任务。
  • 使用实时摄像头输入:通过将 VIDEO_IN 路径改为设备捕获源,修改应用以使用摄像头画面而非预录制的视频。
  • 调整检测参数:调整 CONF_THRESNMS_IOU_THRES,为您的用例优化检测精度。
  • 构建自定义应用:以代码讲解为模板,创建面向 Dragonwing NPU 的自有推理管道。