QAI AppBuilder
Quick AI Application Builder (QAI AppBuilder) 可帮助开发者轻松使用基于 Qualcomm® AI Runtime SDK 在搭载 Qualcomm® Hexagon™ Processor (NPU) 的 Qualcomm® SoC 平台上部署 AI 模型和设计 AI 应用。 它将模型部署 API 封装成一组简化的接口,用于将模型加载到 NPU 并执行推理。QAI AppBuilder 大大降低了开发者部署模型的复杂性并且提供多个 demo 让开发者参考设计自己的 AI 应用。
支持 Python API / C++ API

QAI-APPBUILDER 架构
支持设备
| 设备 | SoC |
|---|---|
| Dragon Q6A | QCS6490 |
| Dragon Q8B | SC8280XP |
| Fogwise® AIRbox Q900 | QCS9075 |
安装方法
可 使用 wheel 包安装 或 源码编译 进行安装
克隆仓库
git clone -b radxa-dev https://github.com/ZIFENG278/ai-engine-direct-helper.git && cd ai-engine-direct-helper
使用 wheel 包安装
创建虚拟环境
安装 python 库前需要创建虚拟环境进行环境隔
sudo apt install python3-venv
python3 -m venv .venv
source .venv/bin/activate
pip3 install https://github.com/ZIFENG278/ai-engine-direct-helper/releases/download/radxa-dev-2.38.0/qai_appbuilder-2.38.0-cp312-cp312-linux_aarch64.whl
源码编译
git submodule update --init --recursive
下载 QAIRT SDK
请根据 下载 QAIRT SDK 压缩包 下载 QAIRT SDK 并解压
配置 QAIRT 环境变量
- QCS6490
- QCS9075
- SC8280XP
export PRODUCT_SOC=6490 DSP_ARCH=68
export PRODUCT_SOC=9075 DSP_ARCH=73
export PRODUCT_SOC=8280 DSP_ARCH=68
cd qairt/2.42.0.251225
source bin/envsetup.sh
export ADSP_LIBRARY_PATH=$QNN_SDK_ROOT/lib/hexagon-v${DSP_ARCH}/unsigned
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QNN_SDK_ROOT/lib/aarch64-oe-linux-gcc11.2
编译 qai_appbuilder
创建虚拟环境
安装 python 库前需要创建虚拟环境进行环境隔
sudo apt install python3-venv python3-dev cmake gcc g++
python3 -m venv .venv
source .venv/bin/activate
编译 qai_appbuilder wheel
pip3 install setuptools
cd ai-engine-direct-helper
python3 setup.py bdist_wheel
编译完成会在 dist 目录下生成一个 `qai_appbuilder-2.38.0-cp312-cp312-linux_aarch64.whl
` 文件
安装 qai_appbuilder
安装 qai_appbuilder wheel
cd dist
pip3 install ./qai_appbuilder-2.38.0-cp312-cp312-linux_aarch64.whl
创建 QAIRT SDK LIB 软链接
请在 ai-engine-direct-helper/samples/python 下创建 qai_libs 软链接,用于链接 QAIRT SDK 里的 lib 目录
- qcom-qairt
- QAIRT-SDK
如果没有下载完整的 QAIRT_SDK 可以安装 qcom-qairt 后进行软链接
qcom-qairt 是一个体积缩小版的 QAIRT-SDK,仅安装所需的文件
- QCS6490
- QCS9075
- SC8280XP
sudo apt install qcom-qnn-sdk-v68 qcom-genie-sdk-v68
sudo apt install qcom-qnn-sdk-v73 qcom-genie-sdk-v73
sudo apt install qcom-qnn-sdk-v68 qcom-genie-sdk-v68
ln -s /usr/lib/aarch64-linux-gnu samples/python/qai_libs
如果用户已经下载了完整版本的 QAIRT-SDK, 可以链接 QAIRT-SDK 下的 lib/aarch64-oe-linux-gcc11.2/
ln -s qairt/2.42.0.251225/lib/aarch64-oe-linux-gcc11.2/ samples/python/qai_libs
创建 ADSP 环境变量
- qcom-qairt
- QAIRT-SDK
如果安装 qcom-qairt 包的用户,可以使用以下命令创建 ADSP_LIBRARY_PATH 环境变量
export ADSP_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu
如果安装了完整的 QAIRT-SDK 的用户,可以使用以下命令创建 ADSP_LIBRARY_PATH 环境变量
- QCS6490
- QCS9075
- SC8280XP
export PRODUCT_SOC=6490 DSP_ARCH=68
export PRODUCT_SOC=9075 DSP_ARCH=73
export PRODUCT_SOC=8280 DSP_ARCH=68
cd qairt/2.42.0.251225
export ADSP_LIBRARY_PATH=$(pwd)/lib/hexagon-v${DSP_ARCH}/unsigned
应用例子
- QCS6490
- SC8280XP
- QCS9075
QCS6490 Demos 运行示例可参考 Demos 示例
cd ai-engine-direct-helper/samples/linux/python
-
目标识别
模型 运行方法 convnext_base python3 convnext_base/convnext_base.pyconvnext_tiny python3 convnext_tiny/convnext_tiny.pyefficientnet_b0 python3 efficientnet_b0/efficientnet_b0.pyefficientnet_b4 python3 efficientnet_b4/efficientnet_b4.pyefficientnet_v2_s python3 efficientnet_v2_s/efficientnet_v2_s.pygooglenet python3 googlenet/googlenet.pyinception_v3 python3 inception_v3/inception_v3.pylevit python3 levit/levit.pyregnet python3 regnet/regnet.pyshufflenet_v2 python3 shufflenet_v2/shufflenet_v2.pysqueezenet1_1 python3 squeezenet1_1/squeezenet1_1.pyvit python3 vit/vit.pywideresnet50 python3 wideresnet50/wideresnet50.py -
图像分割
模型 运行方法 fcn_resnet50 python3 fcn_resnet50/fcn_resnet50.py -
目标检测
模型 运行方法 yolov8_det python3 yolov8_det/yolov8_det.py -
图像超分辨率
模型 运行方法 quicksrnetmedium python3 quicksrnetmedium/quicksrnetmedium.pyreal_esrgan_general_x4v3 python3 real_esrgan_general_x4v3/real_esrgan_general_x4v3.pyreal_esrgan_x4plus python3 real_esrgan_x4plus/real_esrgan_x4plus.pysesr_m5 python3 sesr_m5/sesr_m5.pyxlsr python3 xlsr/xlsr.py
SC8280XP Demos 运行示例可参考 Demos 示例
cd ai-engine-direct-helper/samples/linux/python
-
目标识别
模型 运行方法 convnext_base python3 convnext_base/convnext_base.pyconvnext_tiny python3 convnext_tiny/convnext_tiny.pyefficientnet_b0 python3 efficientnet_b0/efficientnet_b0.pyefficientnet_b4 python3 efficientnet_b4/efficientnet_b4.pyefficientnet_v2_s python3 efficientnet_v2_s/efficientnet_v2_s.pygooglenet python3 googlenet/googlenet.pyinception_v3 python3 inception_v3/inception_v3.pylevit python3 levit/levit.pyregnet python3 regnet/regnet.pyshufflenet_v2 python3 shufflenet_v2/shufflenet_v2.pysqueezenet1_1 python3 squeezenet1_1/squeezenet1_1.pyvit python3 vit/vit.pywideresnet50 python3 wideresnet50/wideresnet50.py -
图像分割
模型 运行方法 fcn_resnet50 python3 fcn_resnet50/fcn_resnet50.py -
目标检测
模型 运行方法 yolov8_det python3 yolov8_det/yolov8_det.py -
图像超分辨率
模型 运行方法 quicksrnetmedium python3 quicksrnetmedium/quicksrnetmedium.pyreal_esrgan_general_x4v3 python3 real_esrgan_general_x4v3/real_esrgan_general_x4v3.pyreal_esrgan_x4plus python3 real_esrgan_x4plus/real_esrgan_x4plus.pysesr_m5 python3 sesr_m5/sesr_m5.pyxlsr python3 xlsr/xlsr.py
QCS9075 Demos 运行示例可参考 Demos 示例
cd ai-engine-direct-helper/samples/python
-
图像生成 / 图像修复
模型 运行方法 stable_diffusion_v2_1 python3 stable_diffusion_v2_1/stable_diffusion_v2_1.py --prompt "the prompt string ..."stable_diffusion_v1_5 python3 stable_diffusion_v1_5/stable_diffusion_v1_5.py --prompt "the prompt string ..."lama_dilated python3 lama_dilated/lama_dilated.pyaotgan python3 aotgan/aotgan.py -
图像超分辨率
模型 运行方法 real_esrgan_x4plus python3 real_esrgan_x4plus/real_esrgan_x4plus.pyreal_esrgan_general_x4v3 python3 real_esrgan_general_x4v3/real_esrgan_general_x4v3.pyquicksrnetmedium python3 quicksrnetmedium/quicksrnetmedium.py -
图像识别
模型 运行方法 inception_v3 python3 inception_v3/inception_v3.pybeit python3 beit/beit.pygooglenet python3 googlenet/googlenet.py -
姿态识别
模型 运行方法 openpose python3 openpose/openpose.pymediapipe_hand python3 mediapipe_hand/mediapipe_hand.py -
图像分割 / 深度估计
模型 运行方法 unet_segmentation python3 unet_segmentation/unet_segmentation.pydepth_anything python3 depth_anything/depth_anything.py -
目标检测
模型 运行方法 yolov8_det python3 yolov8_det/yolov8_det.py -
三维建模
模型 运行方法 facemap_3dmm python3 facemap_3dmm/facemap_3dmm.pyface_attrib_net python3 face_attrib_net/face_attrib_net.py -
音频模型
模型 运行方法 yamnet python3 yamnet/yamnet.pywhisper_base_en python3 whisper_base_en/whisper_base_en.pywhisper_tiny_en python3 whisper_tiny_en/whisper_tiny_en.py -
文本 / 多模态嵌入
模型 运行方法 nomic_embed_text python3 nomic_embed_text/nomic_embed_text.pyopenai_clip python3 openai_clip/openai_clip.py --text "mountain" -
三维动作识别
模型 运行方法 resnet_3d python3 resnet_3d/resnet_3d.py -
OCR(文字识别)
模型 运行方法 easy_ocr python3 easy_ocr/easy_ocr.py