摘要
使用 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 的您自己的推理管线。

