news 2026/5/8 16:58:07

Orange Pi AI Pro 部署教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Orange Pi AI Pro 部署教程

1. 适用范围

本教程只针对deploy/目录,也就是项目的最终部署成果。其目标是在 Orange Pi AI Pro 开发板上完成以下事项:

  1. 安装依赖与准备运行环境。
  2. 配置 ONNX Runtime、视频源与模型路径。
  3. 构建并运行 C++ 推理程序。
  4. 启动 Web 仪表盘进行可视化展示。
  5. 在需要时切换到CANN EP使用 NPU。

2. 部署交付物说明

deploy/目录中的关键内容如下:

路径作用
deploy/models/version3.onnx板端分类模型
deploy/yolo11n-pose.onnx板端姿态模型
deploy/cpp_demo/板端 C++ 推理引擎
deploy/install_deps_orangepi.sh一键安装构建依赖与 ONNX Runtime
deploy/dashboard.pyFlask Web 仪表盘
deploy/stream_video.py可选视频流模拟器
deploy/artifacts/板端运行摘要与事件记录

3. 部署架构

4. 前置条件

4.1 硬件

  1. Orange Pi AI Pro 开发板。
  2. 稳定电源。
  3. 可用网络连接。
  4. 显示器、键盘、鼠标,或可用 SSH 登录方式。

4.2 软件

  1. Ubuntu 22.04 LTS aarch64。
  2. build-essentialcmakepkg-configlibopencv-dev
  3. ONNX Runtime aarch64 版本。
  4. 若使用 Web 面板,需安装python3-flask
  5. 若使用stream_video.py,建议安装python3-opencv

5. 上传部署目录

推荐把deploy/整个目录拷贝到开发板,例如:

scp-rdeploy orangepi@<board-ip>:~/Desktop/

上传完成后的推荐目录:

~/Desktop/deploy/

6. 安装依赖

进入部署目录后执行:

cd~/Desktop/deploychmod+x install_deps_orangepi.sh ./install_deps_orangepi.sh

该脚本会自动执行:

  1. apt-get update
  2. 安装build-essentialcmakepkg-configlibopencv-devwgettar
  3. 下载并解压onnxruntime-linux-aarch64-1.24.3

如果你计划使用面板或视频流模拟器,建议额外安装:

sudoapt-getinstall-ypython3-flask python3-opencv

7. 配置环境文件

7.1 复制模板

cd~/Desktop/deploy/cpp_demo/scriptscporangepi_aipro.env.example orangepi_aipro.env

7.2 修改关键变量

重点检查以下变量:

变量说明建议
ONNXRUNTIME_ROOTONNX Runtime 根目录指向实际解压路径
ONNXRUNTIME_INCLUDE_DIRONNX Runtime 头文件目录通常用默认拼接即可
ONNXRUNTIME_LIBRARYlibonnxruntime.so路径必须存在
VIDEO_PATH本地视频路径适用于文件模式
SOURCE_TYPEvideocamera根据输入源选择
CAMERA_INDEX摄像头索引或流地址支持整数和 HTTP / RTSP 地址
FEATURE_SOURCE特征来源推荐yolo-onnx
POSE_MODEL_PATH姿态模型路径指向../yolo11n-pose.onnx
MODEL_PATH分类模型路径指向../models/version3.onnx
ONNX_EP执行提供器建议先cpu,后cann
SUMMARY_JSON摘要输出路径建议保留

7.3 重要注意事项

  1. 模板文件默认写的是onnxruntime-linux-aarch64-1.23.2
  2. 安装脚本默认下载的是onnxruntime-linux-aarch64-1.24.3
  3. 因此你必须按实际解压目录修改ONNXRUNTIME_ROOT,不能直接照抄模板默认值。

一个更符合当前安装脚本结果的示例配置如下:

ONNXRUNTIME_ROOT=../../third_party/onnxruntime-linux-aarch64-1.24.3ONNXRUNTIME_INCLUDE_DIR=${ONNXRUNTIME_ROOT}/includeONNXRUNTIME_LIBRARY=${ONNXRUNTIME_ROOT}/lib/libonnxruntime.soBUILD_DIR=build-orangepi-onnxENABLE_ONNX=ONENABLE_MINDSPORE=OFFVIDEO_PATH=../fn.mp4MODEL_PATH=../models/version3.onnxPOSE_MODEL_PATH=../yolo11n-pose.onnxFEATURE_SOURCE=yolo-onnxONNX_EP=cpuONNX_DEVICE_ID=0SUMMARY_JSON=../artifacts/cpp_demo_onnx_orangepi_summary.jsonMAX_FRAMES=20LOG_EVERY=10

8. 先做环境自检

在正式运行前,建议先执行:

cd~/Desktop/deploy/cpp_demobashscripts/check_cann_env.sh scripts/orangepi_aipro.env

该脚本会检查:

  1. libonnxruntime.so是否存在。
  2. npu-smi是否可用。
  3. Ascend / CANN 相关环境变量。
  4. 当前 ONNX Runtime 是否真的导出CANN EP所需符号。

如果脚本提示当前库没有CANN EP符号,则必须先更换为带 CANN 执行提供器的 ONNX Runtime,再把ONNX_EP切到cann

9. 推荐运行顺序

9.1 阶段一:CPU 冒烟测试

先验证“工程能编译、模型能加载、参数能跑通”:

cd~/Desktop/deploy/cpp_demoONNX_EP=cpuFEATURE_SOURCE=syntheticMAX_FRAMES=20bashscripts/orangepi_build_and_run.sh--envscripts/orangepi_aipro.env

该模式不依赖真实姿态提取,适合快速排除编译和运行时错误。

9.2 阶段二:完整 ONNX 链路测试

切回真实姿态模型与分类模型:

cd~/Desktop/deploy/cpp_demoONNX_EP=cpuFEATURE_SOURCE=yolo-onnxMAX_FRAMES=0OUTPUT_VIDEO=../artifacts/result.mp4EVENT_LOG=../artifacts/incidents.jsonbashscripts/orangepi_build_and_run.sh--envscripts/orangepi_aipro.env

该模式会:

  1. 编译fight_detection_demo
  2. 加载姿态 ONNX 与分类 ONNX
  3. 处理输入视频或视频流
  4. 生成事件日志与摘要文件

9.3 阶段三:切换到 CANN EP / NPU

只有在你已经确认当前 ONNX Runtime 带有CANN EP时,才建议执行:

cd~/Desktop/deploy/cpp_demoONNX_EP=cannONNX_DEVICE_ID=0MAX_FRAMES=0bashscripts/orangepi_build_and_run.sh--envscripts/orangepi_aipro.env

若运行时报错提示SessionOptionsAppendExecutionProvider_CANN相关问题,说明当前 ONNX Runtime 仍不是 CANN 版本。

10. 输入源配置方式

10.1 本地视频文件

SOURCE_TYPE=videoVIDEO_PATH=../fn.mp4

10.2 USB 摄像头

SOURCE_TYPE=cameraCAMERA_INDEX=0

10.3 HTTP / RTSP 视频流

该工程支持把CAMERA_INDEX当作流地址使用,例如:

SOURCE_TYPE=cameraCAMERA_INDEX=http://<board-ip>:5555/video_feed

这是因为当前openCapture逻辑会优先判断CAMERA_INDEX是否为纯数字;若不是纯数字,则按网络流地址处理。

11. 启动 Web 仪表盘

在新的终端中执行:

cd~/Desktop/deploy python3 dashboard.py

浏览器访问:

http://<board-ip>:5000

仪表盘读取的关键文件为:

  • /dev/shm/preview.jpg
  • /dev/shm/status.json

因此只有在 C++ 推理引擎运行后,仪表盘才会展示实时结果。

11.1 让仪表盘显示事件视频列表

dashboard.py默认从~/Desktop/deploy/cpp_demo/artifacts枚举event_*.mp4。如果你希望列表正常显示,推荐把事件日志路径显式设置到该目录,例如:

cd~/Desktop/deploy/cpp_demoONNX_EP=cpuFEATURE_SOURCE=yolo-onnxEVENT_LOG=../cpp_demo/artifacts/incidents.jsonbashscripts/orangepi_build_and_run.sh--envscripts/orangepi_aipro.env

这样生成的event_*.mp4会与仪表盘扫描目录保持一致。

12. 可选:启动视频流模拟器

如果你没有外部摄像头,但想模拟一个 HTTP 视频流,可执行:

cd~/Desktop/deploy python3 stream_video.py

默认服务地址:

http://<board-ip>:5555/video_feed

随后把环境文件中的输入源改为:

SOURCE_TYPE=cameraCAMERA_INDEX=http://<board-ip>:5555/video_feed

13. 运行结果与验收方式

13.1 重点产物

文件说明
deploy/artifacts/cpp_demo_onnx_orangepi_summary.json板端 ONNX 路线摘要
deploy/artifacts/cpp_demo_npu_summary.json板端 NPU 演示摘要
deploy/artifacts/incidents.json事件日志
deploy/artifacts/incidents_npu.jsonNPU 演示事件日志
deploy/artifacts/result.mp4输出视频
deploy/cpp_demo/artifacts/event_*.mp4事件片段视频

13.2 仓库内现有样例结果

场景产物文件结果
开发板视频文件模式deploy/artifacts/cpp_demo_onnx_orangepi_summary.json1221 帧,60 次事件,约 1.39 FPS
开发板 NPU 流模式deploy/artifacts/cpp_demo_npu_summary.json3235 帧,9 次事件,约 11.38 FPS

这些结果主要用于说明工程链路已经打通。实际部署阈值、误报率与输入源质量仍需结合现场环境做进一步标定。

14. 常见问题

14.1 找不到 ONNX Runtime 头文件或动态库

请优先检查:

  1. ONNXRUNTIME_ROOT是否写对。
  2. ONNXRUNTIME_INCLUDE_DIRONNXRUNTIME_LIBRARY是否和实际解压目录匹配。
  3. 模板中的版本号是否已经根据安装结果改成1.24.3或你的实际版本。

14.2onnx-ep=cann启动失败

最常见原因是当前 ONNX Runtime 是 CPU 版。先执行check_cann_env.sh,确认是否真的存在CANN EP导出符号。

14.3 仪表盘打开但没有图像

请检查:

  1. C++ 推理程序是否正在运行。
  2. /dev/shm/preview.jpg/dev/shm/status.json是否被持续更新。
  3. 浏览器访问的是否是开发板实际 IP。

14.4 视频流无法连接

若使用http://rtsp://rtmp://地址,请优先在板端通过其他工具验证该流确实可访问,再检查CAMERA_INDEX配置。

14.5 输出视频编码失败

如果输出视频时报 GStreamer 或编码错误,请检查输出文件扩展名是否正确,必要时安装常见编解码插件。

14.6 检测结果误报较多

优先从以下参数入手:

  1. THRESHOLD
  2. SMOOTH_K
  3. 输入视频质量与拍摄视角
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 16:58:05

APA第7版格式终极解决方案:告别手动排版的学术写作新体验

APA第7版格式终极解决方案&#xff1a;告别手动排版的学术写作新体验 【免费下载链接】APA-7th-Edition Microsoft Word XSD for generating APA 7th edition references 项目地址: https://gitcode.com/gh_mirrors/ap/APA-7th-Edition 你是否曾因APA格式要求而深夜修改…

作者头像 李华
网站建设 2026/5/8 16:56:57

从64K内存的Casio SF-7500看嵌入式数据压缩与老设备修复实践

1. 项目缘起&#xff1a;在杂物间邂逅一台“古董iPad”前阵子在公司一个堆满杂物的房间里翻找东西&#xff0c;原本只是想找几根还能用的线缆和电话机。就在一堆布满灰尘的纸箱和旧设备中间&#xff0c;一个印着“CASIO SF-7500”字样的盒子抓住了我的眼球。盒子上显示的日期是…

作者头像 李华
网站建设 2026/5/8 16:56:35

4 月刊|GPM 2.0 核心玩家守护功能上线

核心玩家是游戏长线运营的核心底盘 —— 他们活跃社区、带动口碑、稳定贡献营收&#xff0c;同时对卡顿、掉帧、发热、闪退等性能异常高度敏感。一次不起眼的体验波动&#xff0c;都可能持续消耗好感&#xff0c;最终导致流失。 在与大量游戏厂商的合作中我们发现&#xff1a;…

作者头像 李华
网站建设 2026/5/8 16:55:47

SLNet:轻量级3D点云识别技术解析与应用

1. SLNet&#xff1a;重新定义轻量级3D点云识别的技术边界在自动驾驶和增强现实等实时性要求极高的场景中&#xff0c;3D点云识别技术正面临着一个关键矛盾&#xff1a;日益复杂的模型结构与边缘设备有限计算资源之间的冲突。传统解决方案如PointNet和DGCNN虽然性能出色&#x…

作者头像 李华
网站建设 2026/5/8 16:55:46

CERN开放硬件仓库:开源硬件协作模式与工程实践指南

1. 从“白兔”到开源硬件的革命&#xff1a;CERN OHR的诞生与理念作为一名在电子设计领域摸爬滚打了十几年的工程师&#xff0c;我经历过从闭门造车到拥抱开源社区的整个转变过程。早期&#xff0c;一个硬件项目的设计文件、原理图、PCB布局&#xff0c;甚至是调试心得&#xf…

作者头像 李华