香橙派AIpro基础功能使用指南

2024-05-29 09:44

本文主要是介绍香橙派AIpro基础功能使用指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 相关链接

●官网链接:OrangePi AIpro
●官方资料下载(用户手册/工具/github源码/原理图/机械图等):http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html
●官方镜像下载:
Ubuntuhttps://pan.baidu.com/s/1csbugZiKsuL_NHCOmyi1BA?pwd=ma6z
OpenEulerhttps://pan.baidu.com/s/1m932mWh82ShJnSaVuh1ipA?pwd=is63
●烧录工具 etcher
https://etcher.balena.io/
●华为昇腾社区相关:https://www.hiascend.com/forum/thread-0285140173361311056-1-1.html

img

2 简介

2.1 背景简介

2023.12月初,香橙派联合华为发布了基于昇腾的Orange Pi AIpro开发板,提供8/20TOPS澎湃算力,能覆盖生态开发板者的主流应用场景,让用户实践各种创新场景,并为其提供配套的软硬件。而价格更是极为亲民,8TOPS、8GB内存的创客价/预售价仅为799元,8TOPS、16GB内存的创客价/预售价仅为999元。

2.2 综合简介

img

作为业界首款基于昇腾深度研发的AI开发板,Orange Pi AIpro无论在外观上、性能上还是技术服务支持上都非常优秀。采用昇腾AI技术路线,集成图形处理器,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出,8/20 TOPS AI算力。
其丰富的接口更是赋予了Orange Pi AIpro强大的可拓展性。包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB、两个MIPI摄像头、一个MIPI屏等,预留电池接口。
在操作系统方面,Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。

2.3 板端说明

----------------------------------------------开箱图片-----------------------------------------

img

----------------------------------------------说明图片-----------------------------------------

img

img

3 常见AIOT综合对比:

3.1 综合对比

OrangePi AIPro / Nvidia Jetson Nano/ Nvidia Jetson NX2 / 树莓派 4B

功能类别香橙派 AI ProNvidia Jetson NanoNvidia Jetson Xavier NX树莓派 4B
CPU4核64位处理器 + AI处理器四核 ARM Cortex-A576核 ARM v8.2 64位CPU,6个Carmel ARM核心四核 ARM Cortex-A72 (64位)
GPU集成图形处理器128核 Maxwell384核 Volta GPU,48个张量核心Broadcom VideoCore VI
AI算力8 TOPS INT8472 GFLOPS (FP16) / 2TOPS(INT8)1.33 TFLOPs/ 21 TOPS (INT8)无(没有专用AI硬件)
内存8GB/16GB LPDDR4X4GB LPDDR48GB/16GB LPDDR4x2GB, 4GB 或 8GB LPDDR4
存储32MB SPI Flash,eMMC,NVMe/SATA SSD,TF卡槽microSD, eMMC (16GB),M.2 Key E 插槽16GB eMMC,NVMe SSDmicroSD
网络10/100/1000 Mbps 以太网10/100/1000 Mbps 以太网10/100/1000 Mbps 以太网10/100/1000 Mbps 以太网
无线Wi-Fi 5,BT4.2/BLEWi-Fi + BT(通过模块)Wi-Fi 5,BT5.0Wi-Fi 5,BT5.0
显示输出2x HDMI 2.0,1x MIPI DSIHDMI 2.02x HDMI 2.0,1x DP2x micro-HDMI
摄像头接口2x MIPI CSI1x MIPI CSI2x MIPI CSI2x MIPI CSI-2
USB端口2x USB 3.0,1x USB-C 3.0,1x Micro USB4x USB 3.04x USB 3.1,1x USB-C2x USB 3.0,2x USB 2.0
音频3.5mm耳机孔音频输入/输出,HDMI音频HDMI音频HDMI音频3.5mm耳机孔,HDMI音频
扩展接口40针 GPIO,UART,I2C,SPI,I2S,PWM40针 GPIO,I2C,I2S,SPI,UART40针 GPIO,UART,I2C,SPI40针 GPIO,UART,I2C,SPI,I2S,PWM
电源供应USB-C PD 20V(65W)5V 4A DC5V 4A DC5V 3A DC 通过 USB-C
尺寸107mm x 68mm100mm x 80mm87mm x 55mm85mm x 56mm
重量82g87g125g46g
支持操作系统Ubuntu, openEulerLinux(Ubuntu), L4TLinux(Ubuntu), L4T树莓派 OS,Ubuntu 等
AI功能配备AI处理器,提供8 TOPS INT8算力提供472 GFLOPS FP16算力提供21 TOPS算力无专用AI处理器,支持通过CPU/GPU运行AI任务
生态系统支持Orange Pi和华为生态系统,兼容树莓派配件Nvidia强大的Jetson生态系统支持属于Nvidia Jetson系列,享有先进的工具和框架拥有庞大的社区支持,广泛的软件和配件兼容
使用场景教育,机器人,无人机,AI驱动的IoT应用AI开发,计算机视觉,机器人,边缘AI应用高级机器人,自动化机器,边缘AI,智能基础设施教育,DIY项目,基础AI/ML任务,家居自动化
专家评估适用于需要高AI算力的专业或爱好者应用,性价比高适合入门级AI项目和强大的社区支持高性能AI任务的最佳选择,但成本较高用于通用IoT项目和教育目的,性价比高
价格大约 ¥800 - 1500大约 ¥650-¥700大约 ¥3000-¥5500大约 ¥350-¥700

tips: 以上内容 2024.05左右京东物价和网上资料汇总对比,如有差异以后面内容为准

综合比较硬件和性能,综合实力测评排序如下:

nvidia jetson nx2 > orange pi aipro > nvidia jetson nano > resperry pi

3.2 选型考虑

从专业选型和使用角度来选一个购买,要看具体需求和使用情况(以下观点个人经验之谈,纯属瞎聊,大佬勿喷)。
1)如果是大型算法(>=2080ti以上算力需求)并且使用pytorch平替想要很快业务迁移、没有国产化需求、经费充裕的话,我觉得nx2是最优选,其实很多人形机器人或者扫地机器人也是选择的nx2;
2)如果有一些应用部署经验(对于国产框架做过适配例如瑞芯微的rknn3399系列、华为的mindspore或者CANN用过,常见算法op要看一下是否支持)、经费性价比较高、有国产化需求的,我觉得还是选择OrangePi AIPro,这个性价比还是非常高的,而且昇腾社区在国内还是挺活跃的。
3)我觉的json nano 这个就是纯属熟悉和入门AIot级别比较好的内容了、社区和github上项目很多,另外也推荐国内瑞芯微的rk3399系列(贵一些)他还有 AI算力棒 18系列吧,可以玩一下做一些项目。
4)树莓派的话,我觉得搭个小网站,做一些简单板端外围扩展应用,学习一些cpu加速方法例如openvino,性价比很高。给刚入门小白玩玩是挺好的,或者真正大佬把大点模型量化到cpu可跑也是NB。但是现在感觉4b好像贵了好多,现在好像500+了,要省钱可以买老版本的。

4 基础使用

4.1 连接配置和远程连接

(1)使用hdmi连接显示屏和香橙派hdmi接口
注意:开发板有两个 HDMI 接口, 目前只有 HDMI0 支持显示 Linux 系统的桌面,
HDMI1 还需等软件更新。 如果想显示 Linux 系统的桌面, 请将开发板的 HDMI0 接
口连接到 HDMI 显示器。

img

(2)开发板上电开机后, 需要等待一段时间, HDMI 显示器才会显示 Linux 系统的
登录界面, 登录界面如下图所示

img

Linux 桌面系统的默认登录用户为 HwHiAiUser, 登录密码为 Mind@123。 目
前没有打开 root 用户登录的通道。
Linux 系统默认登录账号和密码

账号密码
rootMind@123
HwHiAiUserMind@123

(3)连网,设置静态ip,
右上角网络连接,输入现有网络账号密码,正常连网。
因为希望每次重启之后,可以直接使用其他软件直接远程访问固定地址、摆脱每次都需要连接显示器的困恼、跨平台使用,可以考虑设置静态ip。

  1. 如果要设置网口的静态 IP 地址, 请先将网线插入开发板, 如果需要设置 WIFI
    的静态 IP 地址, 请先连接好 WIFI, 然后再开始设置静态 IP 地址。
  2. 然后通过 nmcli con show 命令可以查看网络设备的名字, 如下所示:
    a. orangepi 为 WIFI 网络接口的名字(名字不一定相同) 。
    b. Wired connection 1 为以太网接口的名字。

img

  1. 然后输入下面的命令, 其中:
    a. "Wired connection 1" 表示设置以太网口的静态 IP 地址, 如果需要设置
    range Pi WIFI 的静态 IP 地址, 请修改为 WIFI 网络接口对应的名字( 通过 nmcli
    con show 命令可以获取到) 。
    b. ipv4.addresses 后面是要设置的静态 IP 地址, 可以修改为自己想要设置的值。
    c. ipv4.gateway 表示网关的地址。
    (base) HwHiAiUser@orangepiaipro:~$ sudo nmcli con mod "Wired connection 1" \
    ipv4.addresses "192.168.1.110" \
    ipv4.gateway "192.168.1.1" \
    ipv4.dns "8.8.8.8" \
    ipv4.method "manual"
    
  2. 然后重启 Linux 系统。
    (base) HwHiAiUser@orangepiaipro:~$ sudo reboot
  3. 然后重新进入 Linux 系统使用 ip addr show eth0 命令就可以看到 IP 地址已经设
    置为想要的值了。
    (base) HwHiAiUser@orangepiaipro:~$ ip addr show eth0

(4)远程访问
如果是在同一个wifi内, 推荐使用
●moboxterm (终端操作)

img

●nomachine (需要有画面、看一些实际效果展示)
官网:https://downloads.nomachine.com/download/?id=118&distro=ARM
查看一下配置

img

注意:下载arm版本的!而且是arm8

img

Click on Download and save the DEB file.
Install the package by using the graphical package manager provided by your Linux distribution or from command line by running:$ sudo dpkg -i nomachine_8.11.3_3_arm64.deb

在windows电脑上可以看到:

img

改成对应的固定ip地址

img

img

其他问题:
a. Nomachine远程黑屏通用处理方法: https://blog.csdn.net/Bing_Lee/article/details/136997628
b. 防止休眠方法:
(base) HwHiAiUser@orangepiaipro:~/Software$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

img

如果是希望远程访问,可以使用
●向日葵或者 teamviewer
(如果和树莓派类似的话,应该可以使用Linux arm64麒麟版本)

下载地址:https://sunlogin.oray.com/product/localization
安装:
(base) HwHiAiUser@orangepiaipro:~/Software$ sudo dpkg -i ./SunloginClient_11.0.1.44968_kylin_arm.deb

img

打开左上角,internet ->sunlogin client可以看到安装的向日葵

img

在自己电脑上,打开香橙派记录下对应的device id /passcode,理论上可以从远程直接连接

●另外也推荐一种常用的vscode ssh remote连接板端的方法
可以参考这个链接:
https://www.cnblogs.com/Lavender-edgar/p/17923473.html

4.2 基础工具安装和配置

4.2.1 vscode

下载链接:https://code.visualstudio.com/download#

img

(base) HwHiAiUser@orangepiaipro:~/Software$ sudo dpkg -i code_1.89.1-1715058876_arm64.deb

terminal中输入code可以召唤vscode

img

安装一些常用vscode常用插件

img

4.3 基础演示内容

官方在镜像中预装了 Jupyter Lab 软件。 Jupyter Lab 软件是一个基于 web 的交
互式开发环境, 集成了代码编辑器、 终端、 文件管理器等功能, 使得开发者可以在
一个界面中完成各种任务。 并且我们在镜像中也预置了一些可以在 Jupyter Lab 软
件中运行的 AI 应用样例。 这些样例都是使用 Python 编写的, 并调用了 Python 版
本的 AscendCL 编程接口。 本章节介绍如何登录 jupyter lab 并在 jupyter lab 中运行
这些预置的 AI 应用样例。

img

4.3.1 jupyter lab

●使用方案1: jupyter notebook 网页打开

  1. 首先登录 Linux 系统桌面, 然后打开终端, 再切换到保存 AI 应用样例的目录下。
    (base) HwHiAiUser@orangepiaipro:~$ cd samples/notebooks/

  2. 在当前目录下有 9 个文件夹和 1 个 shell 文件, 分别对应 9 个 AI 应用样例和
    Jupyter Lab 启动脚本 start_notebook.sh。
    (base) HwHiAiUser@orangepiaipro:~/samples/notebooks$ ls 01-yolov5 06-human_protein_map_classification 02-ocr 07-Unet++ 03-resnet 08-portrait_pictures 04-image-HDR-enhance 09-speech-recognition 05-cartoonGAN_picture start_notebook.sh

3)然后执行 start_notebook.sh 脚本启动 Jupyter Lab。
(base) HwHiAiUser@orangepiaipro:~/samples/notebooks$ ./start_notebook.sh

  1. 在执行该脚本后, 终端会出现如下打印信息, 在打印信息中会有登录 Jupyter
    Lab 的网址链接。

img

  1. 然后打开火狐浏览器。
  2. 再在浏览器中输入上面看到的网址链接, 就可以登录 Jupyter Lab 软件了。
  3. 登录 Jupyter Lab 后的界面如下所示, 左侧文件管理器中是 9 个 AI 应用样例和
    Jupyter Lab 启动脚本。

img

●使用方案2: vscode
可以使用4.2.1 vscode直接在里面运行jupyter notebook
就是在右上角选择kernel选择base

img

4.3.2 图像分类

ResNet 是最经典的视觉分类网络之一, 在这个样例中我们选取了 ResNet50,
也是 ResNet 最常用的变体。 在样例中已经包含转换后的 om 模型和测试图片, 可
以按照以下流程在 Jupyter Lab 中运行该样例。

逐步运行main.ipynb,最终显示对于dog的识别结果

img

4.3.3 目标检测

YOLOv5 是一种单阶段目标检测器算法, 在这个样例中, 官方选取了YOLOv5s, 它是 YOLOv5 系列中较为轻量的网络模型, 适合在边缘设备部署, 进行实时目标检测。 在样例中已经包含转换后的 om 模型和测试视频、 图片, 可以按照以下流程在 Jupyter Lab 中运行该样例。

在“01-yolov5”目录下有运行该示例的所有资源, 其中 mian.ipynb 是在 Jupyter Lab 中运行
该样例的文件, 双击打开 main.ipynb, 在右侧窗口中会显示 main.ipynb 文件中的内容。

在该目录下有运行该示例的所有资源, 其中 mian.ipynb 是在 Jupyter Lab 中运行该样例的文件, 双击打开 main.ipynb, 在右侧窗口中会显示 main.ipynb 文件中的内容。
在 main.ipynb 文件中 infer_mode 的值可赋值为 image、 video 和 camera, 分别对应对图片、 视频、 USB 摄像头中的内容进行目标检测, 默认值为 video。
我们使用vscode逐条运行,打开smi显示npu使用情况,可以看到最高的时候AICOERE使用到了29%.

感觉能够使用yolov5s整体跑下来,能支持的op已经不少了,可以把训练任务搞一下,然后再看看怎么.pth ->om,就可以整体做一下应用了。但是这个视频播放时候还是比较卡顿fps >15的话,会流畅很多。我个人觉得可以考虑多线程分阶段处理和使用mot跟踪+检测方法,有较大优化空间。

img

4.3.4 其他

还有不少第三方的其他案例内容可以参考:
●基于香橙派部署Tiny-Llama大语言模型
https://gitee.com/wan-zutao/tiny-llama-manual-reset
●【OrangePi AIPro/Kunpeng Pro主频提升啦,加量不加价!】
https://www.bilibili.com/video/BV1VE421G74B/?share_source=copy_web&vd_source=5bf8b5dcc1c9a6f7644fd6bd3437ead3
●orangepi_aipro小修补含yolov7多线程案例
https://www.hiascend.com/forum/thread-0222149764649866023-1-1.html
●香橙派AIpro外设接口样例大全(附源码):
https://www.hiascend.com/forum/thread-0239145098860634139-1-1.html
●「YOLO-V8」 香橙派AIpro 上量化(int8/fp16)和部署 yolov8 目标检测模型(1):
https://www.hiascend.com/forum/thread-0225143546118034040-1-1.html

后续有时间可以继续深入做一下,大有可为。

ref

购买链接:

  • 淘宝店铺:https://item.taobao.com/item.htm?spm=a21dvs.23580594.0.0.52de3d0dSuCWxb&ft=t&id=754769404362%E3%80%81https://item.taobao.com/item.htm?spm=a21dvs.23580594.0.0.621e3d0dsM3DgP&ft=t&id=754767816159
  • 京东店铺:https://item.jd.com/10092318175356.html
    ●「AI pro 全面对比 RK3588」NPU 暂时领先,但仍远逊于NVIDIA
    https://www.hiascend.com/app-forum/topic-detail/0281143834564881056
    ●jetson nano: https://developer.nvidia.com/embedded/learn/jetson-nano-2gb-devkit-user-guide
    ●nx2 用户手册: https://developer.nvidia.com/embedded/downloads
    ●树莓派:https://developer.nvidia.com/embedded/learn/jetson-nano-2gb-devkit-user-guide
    orangepi 向日葵参考 https://www.bilibili.com/read/cv17908907/
    https://zhuanlan.zhihu.com/p/680785338
    ●AI pro 全面对比 RK3588」NPU 暂时领先,但仍远逊于NVIDIA
    https://www.hiascend.com/app-forum/topic-detail/0281143834564881056

这篇关于香橙派AIpro基础功能使用指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1013318

相关文章

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显