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 环境

设置并运行容器

请参阅 IMSDK Docker Setup,在设备上设置并运行 IMSDK docker。

以 root 身份访问容器

设置容器后,请按照 root access 以 root 身份访问 docker 容器,以安装 python 和其他附加软件包。
要验证您是否以 root 身份登录,请在容器内运行 whoami。输出应为 root。

步骤 3:安装依赖项

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

创建虚拟环境并安装 Python 包

安装 GStreamer 和 GTK 依赖项

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

步骤 4:下载应用和模型工件

仍在容器内(以 root 身份),设置目标检测应用:

创建应用目录

下载应用脚本

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

退出 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_THRES 和 NMS_IOU_THRES,针对您的用例优化检测准确性。
  • 构建自定义应用:将代码讲解用作模板,创建面向 Dragonwing NPU 的您自己的推理管线。