简介
高通于今年推出了高通跃龙,在边缘提供前沿的AI性能和超低延迟,为可扩展的工业创新带来新的可能性。研华已在各种规格尺寸的嵌入式方案中采用跃龙技术,包括由高通跃龙 QCS6490处理器支持的嵌入式模块、单板电脑和AI摄像头解决方案。研华QCS6490解决方案将先进的硬件集成与研华Edge AI SDK的强大功能相结合,不仅优化了性能,还通过集成和测试高通AI软件和SOP以确保无缝兼容性。这种强大的协同作用简化了开发并加快了部署,为创新的边缘AI应用铺平了道路。接下来,我们将带您了解由高通QCS6490支持的AOM-2721 OSM开发套件的快速启动AI开发过程,演示您如何快速利用其功能来推动各行业的变革性解决方案。
准备
硬件
1.AOM-2721开发套件,采用高通跃龙QCS6490,预装Windows 11 IoT企业版操作系统。
- 高通8核Kryo CPU,主频高达2.7GHz
- Hexagon Tensor处理器,具备12 TOPS AI能力
- Adreno VPU 633,4K30编码/4K60解码H.264/265
- Adreno GPU 643、OpenGL ES3.2 / OpenCL 2.0
- 板载8 GB LPDDR5 内存,8533MT/s
- 板载128 GB UFS + 128 GB eMMC 存储器
- 特色I/O接口:1 x MIPI-DSI / eDP 1920x1080 @60 Hz和1 x DP 1920x1080 @60Hz、2 x 4-Lan MIPI-CSI、1 x USB 3.2 Gen1、2 x PCIe Gen3 x1、1 x PCIe Gen3 x2、1 x GbE
2.一台x86开发机,配备16 GB内存和350 GB存储器
3.一台全高清HDMI显示器和一条HDMI电缆
4.一套USB鼠标和键盘
软件
1.用于x86开发机的Ubuntu 20.04或22.04
2.用于x86开发机的Docker引擎
3.用于AOM-2721的研华Edge AI SDK/推理工具包(下载;安装教程)
本文主要涉及两个主题和详细方法:
1.如何在 AOM-2721 上启用 AI 运行时
- 编译 Yocto OS 镜像(通过开发机)
- 安装 Yocto OS(通过 Windows 主机)
- 在 AOM- 2721 上设置 AI 运行时
2.如何使用研华 Edge AI SDK 中的无代码工具快速评估 AI 性能
- 在 AOM-2721 上启动 Edge AI SDK/Inference Kit
- 启动视觉人工智能检测物体
- 监测工作量和运行基准
3.如何使用AI开发实际应用的工作流程示例:
- 使用高通AI Hub云服务
- 在AOM-2721上部署高通AI Hub模型以执行AI任务
- 在AOM-2721上集成开源YOLO模型以执行AI任务
如何在AOM-2721上设置AI运行时
1.编译Yocto OS镜像(通过开发机)
AOM-2721 的目标操作系统:
- Yocto Version: 4.0.18
- Kernel Version: 6.6.28
- Meta Build ID: QCM6490.LE.1.0-00218-STD.PROD-1
编译时对开发机的要求:
- OS: Ubuntu 20.04 或 22.04
- RAM: 16 GB以上
- Storage: 需350 GB
现在,我们将一步步进行。首先安装构建工具,然后下载研华定制的BSP,获取基本的Yocto OS 镜像,最后编译所需的定制Yocto OS镜像。
首先,使用预编译的docker镜像,其中包含必要的工具链。
要提取docker映像,请执行以下命令:
$ sudo docker pull advrisc/u20.04-qcslbv2:latest
然后,在开发机器上运行docker镜像:
$ mkdir -p /home/bsp/myLinux
$ sudo docker run --privileged -it --name qclinux -v /home/bsp/myLinux:/home/adv/BSP:rw advrisc/u20.04-qcslbv2 /bin/bash
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
下载研华定制 BSP:
【注意】请提前联系研华获取 ADV_GIT_TOKEN。
$ cd /home/adv/BSP
$ git config --global credential.helper 'store --file ~/.my-credentials'
$ echo "https://AIM-Linux:${ADV_GIT_TOKEN}@dev.azure.com" > ~/.my-credentials
(以下是如何获取最新 BSP 的示例)。
$ repo init -u https://dev.azure.com/AIM-Linux/risc_qcs_linux_le_1.1/_git/manifest -b main -m adv-6.6.28-QLI.1.1-Ver.1.1_robotics-product-sdk-1.1.xml
$ repo sync -c -j${YOUR_CPU_CORE_NUM}
下载的BSP将包括以下文件:
下载高通构建的基本Yocto OS镜像。(下载连接,需外网)
-文件大小约为 30 GB。
-MD5 校验和为 02a2d44d728cd8cabf4a9c25752f0606。
解压下载文件:
【注意】请提前联系研华获取密码。
$ cd /home/adv/BSP
$ openssl des3 -d -k ${PASSWORD} -salt -pbkdf2 -in downloads.qcs6490.le.1.1.r00041.0.tar.gz -out downloads.qcs6490.le.1.1.r00041.0.decrypt.tar.gz
$ tar -zxvf downloads.qcs6490.le.1.1.r00041.0.decrypt.tar.gz
接下来,通过给定的脚本设置环境变量:
$ source scripts/env.sh
最后,执行以下脚本来构建所有可用的映像:
$ scripts/build_release.sh -all
//Output ufs images: build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcm6490/qcom-robotics-full-image
//Output emmc images: build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcm6490/qcom-robotics-full-image-emmc
[附加信息]设置交叉编译器,为 AOM-2721 创建可执行代码
下载交叉编译器 SDK。(下载连接,需外网)
-文件大小约为 4 GB。
-MD5 校验和为 f4184521f8d2c71a8a2953ac1b143242。
执行安装。
$ cd build-qcom-robotics-ros2-humble/tmp-glibc/deploy/sdk
$ sudo ./qcom-robotics-ros2-humble-x86_64-qcom-robotics-full-image-armv8-2a-qcm6490-toolchain-1.0.sh
输入新的目录路径,或按Enter键使用默认路径。出现"Proceed [Y/n]?",输入Y确认继续。
当看到以下信息时,就说明交叉编译器已成功安装:
执行以下命令完成交叉编译器的设置:
$ source ${TOOLCHAIN}/environment-setup-armv8-2a-qcom-linux
2.在AOM-2721上安装Yocto操作系统(通过 Windows 主机)
在Windows主机上使用高通PCAT将Yocto OS安装到AOM-2721。
以下是安装Yocto OS的步骤:
- 通过Micro USB (EDL)端口将 Windows 主机连接到 AOM-2721。
- 进入强制恢复模式:将SW2设置为1-on。
- 闪存EMMC:将SW1设置为1-off,2-on。
- 闪存UFS:将SW1设置为1-on,2-on。
详情请参阅链接。
3.在 AOM-2721上设置AI运行时
然后,需要在AOM-2721上设置AI执行QIRP环境,具体步骤如下:
$ source /opt/qcom/qirp-sdk/qirp-setup.sh
至此,AI运行时已在AOM-2721上成功设置。接下来,我们将介绍如何使用QCS6490在AOM-2721上运行人工智能应用示例。
利用研华边缘AI SDK快速评估AI能力
【注意】请确保已提前安装研华Edge AI SDK/推理工具包,如上文 "准备|软件 "部分所述。
1.启动边缘AI SDK/推理工具包
步骤 1. 启动终端: 打开一个新的终端窗口。
步骤 2. 执行应用脚本: 在终端中运行以下命令:
/opt/Advantech/EdgeAISuite/MainAPP/QCS6490/app.sh
2.启动视觉人工智能AI检测物体
步骤 1. 导航至 "快速启动(Vision)": 访问 "快速入门(Vision)"页面,如下图所示。
步骤 2. 选择应用程序: 从可用的应用程序中选择一个
步骤 3. 要关闭人工智能推理应用程序,请确保图形用户界面实用程序显示在屏幕顶部。
步骤 4. 按 "Esc "键关闭或退出应用程序。
3.监控工作量和运行基准
提供可视化折线图,用于实时监控数据。
它能迅速评估DSP计算性能,提供性能指标值。
-
AI应用案例
1.使用高通AI Hub云服务
本案例说明了如何使用高通云服务AI Hub评估QCS6490的AI计算性能。
Qualcomm® AI Hub旨在简化将视觉、音频和语音应用的AI模型部署到边缘终端的过程。您可以在几分钟内优化、验证并在托管的高通平台终端上部署自己的AI模型。
首先,登录高通AI Hub网站,选择目标芯片组--QCS6490。然后,AI Hub 将列出所有支持的 AI 模型和应用。
https://aihub.qualcomm.com/iot/models?domain=Computer+Vision&useCase=Object+Detection&chipsets=qualcomm-qcs6490-proxy
然后,选择所需的AI模型。(例如,YOLOv8用于物体检测)
https://aihub.qualcomm.com/iot/models/yolov8_det?domain=Computer+Vision&useCase=Object+Detection&chipsets=qualcomm-qcs6490-proxy
在这里,您可以找到有关模型及其在 QCS6490 上的推理性能的详细信息。
2.部署高通AI Hub模型
您还可以从 AI Hub 下载人工智能模型,并通过 QCS6490 将其部署到 AOM-2721 上。
例如,下面是 AOM-2721 上的一个物体检测应用程序:
- OS/Kernel: LE QIRP1.1 Yocto-4.0 / 6.6.28
- BSP: qcs6490aom2721a1
- AI 模型: YOLOv8-Detection
- 输入: 视频或USB摄像头接入
- AI 加速器: DSP
AOM-2721提供所需的AI推理框架:
组件 | 版本 | 描述 |
SNPE | v2.20.0.240223 | 用于执行深度神经网络的高通骁龙软件加速运行时。 |
GStreamer | 1.20.7 | 用于构建音频/视频流等媒体处理组件图形的库。 |
用于连接高通 AI 中枢的主机如下:
配置 | 描述 | 备注 |
CPU | 10th to 13th Gen Intel® | x86_64 |
OS | Ubuntu 22.04 | Python 3.10 is required |
首先,请在以下网址注册或登录高通AI Hub:
https://app.aihub.qualcomm.com/
然后,保存 "设置 - 帐户 "页面上的 token_value。
接下来,安装AI Hub工具。
$ sudo apt install git
$ sudo apt install python3-pip -y
$ sudo pip install qai-hub
导出 AI Hub 模型。
$ qai-hub configure --api_token token_value
$ pip install "qai-hub-models[yolov8-det]"
$ python3 -m qai_hub_models.models.yolov8_det.export --quantize w8a8
找到 tflite 推理模型。
$ build/yolov8_det/yolov8_det.tflite
$ mv yolov8_det.tflite yolov8_det_quantized.tflite
下载YOLO所需的标签文件。
$ git clone https://github.com/ADVANTECH-Corp/EdgeAI_Workflow.git
$ EdgeAI_Workflow\ai_system\qualcomm\aom-2721\labels\coco_labels.txt
最后,将tflite推理模型及其标签文件从主机复制到AOM-2721,并通过GStreamer管道启动AI应用程序。
输入 | 指令 | 备注 |
USB camera | export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1 source /opt/qcom/qirp-sdk/qirp-setup.sh gst-launch-1.0 -e v4l2src device="/dev/video2" ! queue ! tee name=split split. ! queue ! qtivcomposer name=mixer sink_1::dimensions="<640,480>" sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=false width=1280 height=720 split. ! queue ! qtivtransform ! video/x-raw (memory:GBM),format=NV12,width=640,height=480 ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=yolov8_det_quantized.tflite ! queue ! qtimlvdetection threshold=10.0 results=10 module=yolov8 labels=coco_labels.txt constants="YOLOv8,q-offsets=<20.0, 0.0, 0.0>,q-scales=<3.1391797, 0.0037510, 1.0>;" ! video/x-raw,format=BGRA,width=640,height=360 ! queue ! mixer. | Run on DSP |
Video file | export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1 source /opt/qcom/qirp-sdk/qirp-setup.sh gst-launch-1.0 -e filesrc location="ObjectDetection.mp4" ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! queue ! tee name=split split. ! queue ! qtivcomposer name=mixer sink_1::dimensions="<640,480>" sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=false width=1280 height=720 split. ! queue ! qtivtransform ! video/x-raw(memory:GBM),format=NV12,width=640,height=480 ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=yolov8_det_quantized.tflite ! queue ! qtimlvdetection threshold=31.0 results=5 module=yolov8 labels=coco_labels.txt constants="YOLOv8,q-offsets=<20.0, 0.0, 0.0>,q-scales=<3.1391797,0.0037510, 1.0>;" ! video/x-raw,format=BGRA,width=640,height=360 ! queue ! mixer. | Run on DSP |
3.整合开源YOLO模型
本案列演示了如何在配备QCS6490的AOM-2721上使用开源YOLO模型开发物体检测功能。
- OS/Kernel: LE QIRP1.1 Yocto-4.0 / 6.6.28
- BSP: qcs6490aom2721a1
- AI 模型: YOLOv5
- 输入: 视频或USB摄像头输入
- AI 加速器: DSP
AOM-2721提供所需的AI推理框架:
组件 | 版本 | 描述 |
SNPE | v2.20.0.240223 | 用于执行深度神经网络的高通骁龙软件加速运行时。 |
GStreamer | 1.20.7 | 用于构建音频/视频流等媒体处理组件图形的库。 |
这里列出了用于开发的机器:
配置 | 描述 | 备注 |
CPU | 10th to 13th Gen Intel | x86_64 |
OS | Ubuntu 20.04 | Python 3.8 is required |
SDK -SNPE | * Execute an arbitrary deep neural network * Execute the network on the Snapdragon CPU, the Adreno GPU, or the Hexagon DSP. * Debug the network execution on x86 Ubuntu Linux. * Convert PyTorch, TFLite, ONNX, and TensorFlow models to a Qualcomm® Neural Processing SDK Deep Learning Container (DLC) file. * Quantize DLC files to 8- or 16-bit fixed point to run on the Hexagon DSP. * Debug and analyze the performance of the network with Qualcomm® Neural Processing SDK tools. * Integrate a network into applications and other code via C++ or Java. |
如有需要,请按照以下步骤在开发计算机上安装 SNPE。
- 注册高通帐户:https://myaccount.qualcomm.com/signup
- 下载并安装高通软件包管理器 3:https://qpm.qualcomm.com/#/main/tools/details/QPM3
- 下载并安装高通AI Engine Direct SDK:https://qpm.qualcomm.com/#/main/tools/details/qualcomm_ai_engine_direct
- 下载并安装高通神经处理SDK:https://qpm.qualcomm.com/#/main/tools/details/qualcomm_neural_processing_sdk
- 安装ML框架:
$ pip install onnx==1.11.0
$ pip install tensorflow==2.10.1
$ pip install torch==1.13.1
接下来,在开发机器上按照以下步骤获取开源预训练AI模型,然后针对AOM-2721 (QCS6490) 进行优化和转换。
1.从以下网址下载yolov5n.pt模型 https://github.com/ultralytics/yolov5.
2.转换模型(pt -> onnx):
$ git clone https://github.com/ultralytics/yolov5
$ cd yolov5
$ pip install -r requirements.txt
$ python export.py --weights yolov5n.pt --include onnx
3.优化模型(ONNX -> DLC):下载指南。(参考文件链接)
然后,按照指南中的步骤1至6完成模型优化。
4.获取YOLO所需的标签文件:
$ git clone https://github.com/ADVANTECH-Corp/EdgeAI_Workflow.git
$ EdgeAI_Workflow\ai_system\qualcomm\aom-2721\labels\yolov5.labels
最后,将优化模型 (DLC) 及其标签文件复制到AOM-2721上。然后,通过GStreamer 管道启动AI应用程序。
输入 | 指令 | 备注 |
USB camera | export XDG_RUNTIME_DIR=/dev/socket/weston export WAYLAND_DISPLAY=wayland-1 source /opt/qcom/qirp-sdk/qirp-setup.sh gst-launch-1.0 -e qtivcomposer name=mixer sink_1::dimensions="<1920,1080>" ! queue ! waylandsink sync=true fullscreen=false x=10 y=10 width=1280 height=720 v4l2src device="/dev/video0" ! tee name=t ! queue ! mixer. t. ! queue ! qtimlvconverter mean="<0.0, 0.0, 0.0>" sigma="<0.003921, 0.003921, 0.003921>" ! queue ! qtimlsnpe delegate=dsp model="yolov5n-quant.dlc" layers="< Conv_266, Conv_232, Conv_198 >" ! queue ! qtimlvdetection threshold=51.0 results=10 module=yolov5 labels="yolov5.labels" ! video/x-raw,width=480,height=270 ! queue ! mixer. | Run on DSP |
Video file | export XDG_RUNTIME_DIR=/dev/socket/weston export WAYLAND_DISPLAY=wayland-1 source /opt/qcom/qirp-sdk/qirp-setup.sh gst-launch-1.0 -e qtivcomposer name=mixer sink_1::dimensions="<1920,1080>" ! queue ! waylandsink sync=true fullscreen=false x=10 y=10 width=1280 height=720 filesrc location="file.mp4" ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! queue ! tee name=t ! queue ! mixer. t. ! queue ! qtimlvconverter mean="<0.0, 0.0, 0.0>" sigma="<0.003921, 0.003921, 0.003921>" ! queue ! qtimlsnpe delegate=dsp model="yolov5n-quant.dlc" layers="< Conv_266, Conv_232, Conv_198 >" ! queue ! qtimlvdetection threshold=51.0 results=10 module=yolov5 labels="yolov5.labels" ! video/x-raw,width=480,height=270 ! queue ! mixer. | Run on DSP |
下面是一个执行示例。
结论
本文展示了采用高通QCS6490平台的研华AOM-2721如何推进边缘AI开发。它涵盖了如何编译BSP、设置AI运行时和部署可视化AI应用程序--所有这些都在一个简化的流程中完成。我们与高通紧密合作优化了AI计算工作流程,加速部署。
通过集成研华Edge AI SDK,AOM-2721可提供即插即用的推理环境。用户可以跳过耗时的初始系统设置,以最小的工作量快速执行人工智能性能评估。这大大降低了开发开销,加快了早期测试。
我们通过简单易懂的快速入门指南和专门的技术咨询服务提供一站式支持。这种全面的方法降低了入门门槛,加快了开发进度。
从本质上讲,研华的QCS6490解决方案通过集成Edge AI SDK,实现了更快、更具成本效益的创新,让您更轻松地将Edge AI概念变为现实。通过简化从开发到部署各个阶段的解决方案,迎接智能、高效、安全的人工智能部署的未来。
了解更多信息可访问:
- AOM-2721 Quick Start Guide (QSG)
- 研华Edge AI SDK