前言
最近入手了一块香橙派 AIpro开发板,在使用中被它的强大深深震撼,有感而发写下这篇文章。
本文旨在深入探讨OrangePi AIpro的各项性能,从硬件配置、软件兼容性到实际应用案例,全方位解析这款设备如何在开源社区中脱颖而出,以及它如何为AI爱好者和专业开发者开启一扇通往深度学习和边缘计算的大门。无论是对于初学者还是经验丰富的工程师,OrangePi AIpro都提供了一个理想的起点,去探索人工智能的广阔世界。
我们将从开箱体验开始,逐步深入至其核心特性,包括处理器性能、内存规格、I/O接口丰富度,以及集成的AI加速模块。此外,我们还会关注其生态系统,如操作系统支持、开发工具链、社区资源和第三方库的可用性。
认识香橙派 AIpro
一、硬件规格
处理器: 采用昇腾AI技术路线,配备4核64位处理器+AI处理器,集成图形处理器,支持高达8-12TOPS的AI算力。
内存: 提供8GB或16GB LPDDR4X内存选项,内存速率高达3200Mbps,确保数据的快速读写和处理能力。
存储: 支持外接32GB/64GB/128GB/256GB eMMC模块,同时提供SPI FLASH、SATA/NVME SSD(M.2接口2280)等多种存储选项,满足不同应用场景的需求。
供电: 采用Type-C PD 20V IN接口,标准65W的供电能力,确保设备的稳定运行。
二、接口与扩展性
视频输出: 支持双4K高清输出,包括两个HDMI接口和一个MIPI屏接口,满足高清晰度显示需求。
数据传输: 配备千兆网口、两个USB3.0接口、一个USB Type-C 3.0接口,以及TF插槽和M.2插槽(支持SATA/NVMe SSD 2280),提供丰富的数据传输和扩展能力。
其他接口: 还包括GPIO接口、Micro USB(串口打印调试功能)、两个MIPI摄像头接口等,预留电池接口,方便用户根据需求进行定制和扩展。
三、操作系统与应用
操作系统: 支持Ubuntu和openEuler两种流行的操作系统,为用户提供更多的选择和灵活性。
应用场景: 广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖AIoT各个行业。
开发支持: 提供丰富的开发资源和文档,包括详细的用户手册、硬件原理图、官方工具以及Linux开源代码等,方便用户进行开发和部署。
体验香橙派 AIpro
在深入探索智能计算领域的征程中,我毅然决然地购置了一块香橙派 AIpro开发板,旨在通过亲手实践,更系统地掌握其卓越性能与广泛应用潜力。
初印象
板子到手拆箱之后,可以清楚的看到板子体积并不大,重量也很轻,这对于我们日常携带非常方便。
并且配有电源线、电源适配器、散热风扇和TF卡等,确保开发者能够快速上手并进行开发,不需为找各种配件而烦恼。另外还配有蓝牙、WIFI天线,更是为使用增加便利性。
初体验
启动开发板
- 将烧录好镜像的 TF 卡或者 eMMC 模块或者 SSD 插入开发板对应的插槽中。
- 开发板有两个 HDMI接口,用HDMI连接一个显示器。
- 开发板有 USB 接口,可以接上 USB 鼠标和键盘,来控制操作开发板。
- 此开发板有WIFI天线,就不需要额外连接网线了。
- 连通电源之后就可以开始启动了。
注意:启动的时候,风扇声音稍微大一点,无需惊慌是正常现象,待启动之后,风扇就恢复到基本是静音状态了。
调试开发板
登录系统
系统默认的用户名为HwHiAiUser,默认登录密码为Mind@123。
登录进入系统之后,可以通过nmcli命令为开发板连接WIFI。
扫描周围的WIFI热点:(扫描成功可以看到周围的热点名称)
(base) HwHiAiUser@orangepiaipro:~$ nmcli dev wifi
然后使用nmcli连接扫描到的WIFI热点:
wifi_name 需要换成想连接的 WIFI 热点的名字。
wifi_passwd 需要换成想连接的 WIFI
(base) HwHiAiUser@orangepiaipro:~$ sudo nmcli dev wifi connect wifi_name password wifi_passwd
除此之外还可以通过桌面版镜像连接,操作比较简单,这里就不过多介绍。
查看开发板ip
通过ifconfig
命令查看到开发板的ip。
远程操作开发板
开发板支持SSH远程登录, 在 Windows 下可以使用 MobaXterm 远程登录开发板,首先新建一个 ssh 会话。要在Session中设置SSH连接以访问开发板,需打开Session设置,选择SSH模式,输入开发板的IP地址作为远程主机,并指定Linux系统的用户名(如root或HwHiAiUser),最后确认设置即可建立连接。
测试音频
官方在系统中提供了一段音频,可以进行测试。(开发板需要连接耳机)
(base) root@orangepiaipro:~# cd /opt/opi_test/audio
(base) root@orangepiaipro:/opt/opi_test/audio# ls
capture.sh play.sh qzgy_48k_16_mono_30s.pcm sample_audio
然后使用下的命令就可以播放测试音频到耳机了。
(base) root@orangepiaipro:/opt/opi_test/audio# ./sample_audio play 2 qzgy_48k_16_mono_30s.pcm
紧接着就会有一段美妙的音乐从耳机中传出,在音乐播放完毕之后,通过Ctrl+C中断。
文字识别样例
通过/home/HwHiAiUser/samples/
目录下,ls查看当前目录下的文件,共有8个文件和1个shell文件。
(base) HwHiAiUser@orangepiaipro:~/samples$ ls
01-SSD 02-CNNCTC 03-ResNet50 04-HDR 05-CycleGAN 06-Shufflenet 07-FCN 0
8-Pix2Pix start_notebook.s
然后执行 start_notebook.sh 脚本启动 Jupyter Lab.
(base) HwHiAiUser@orangepiaipro:~/samples$ ./start_notebook.sh
通过浏览器进入这个网站就可以登录 Jupyter Lab 软件了。
运行一下02-CNNCTC下的文字识别样例,其中 main_cnnctc.ipynb 是在 Jupyter Lab 中运行该样例的文件,双击打开 main_cnnctc.ipynb,单击»按钮可以运行此样例,然后在弹出的对话框中再单击 Restart 按钮,等待执行结果即可。
整个执行过程只需要1秒多钟,速度还是非常快的,在整个操作流程中也是很顺畅,体验感非常好。
推理应用:图片分类
样例下载
# 登录开发板,HwHiAiUser用户命令行中执行以下命令下载源码仓。
cd /home
git clone https://gitee.com/ascend/EdgeAndRobotics.git
下载完成之后可以看到home目录下,多了一个EdgeAndRobotics文件夹。
切换到样例目录下,查看有哪些内容。
cd EdgeAndRobotics/Samples/ResnetPicture
设备环境变量
设置DDK_PATH环境变量:
export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest
将DDK_PATH环境变量设置为/usr/local/Ascend/ascend-toolkit/latest。这个路径通常指向昇腾AI处理器的开发工具包(DDK)的最新版本安装目录。DDK包含了编译和运行基于昇腾AI处理器的应用程序所需的编译器、库文件、头文件等。
设置NPU_HOST_LIB环境变量:
export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
使用DDK_PATH(即DDK的路径)来构造NPU_HOST_LIB环境变量的值,将其设置为$DDK_PATH/runtime/lib64/stub。这个路径通常指向DDK中用于NPU(神经网络处理器)的宿主端(Host)库文件的stub目录。Stub库文件通常用于模拟或代理NPU的某些功能,特别是在没有物理NPU设备的情况下进行开发和测试时。
获取PyTorch框架的ResNet50模型(.onnx),并转换为昇腾AI处理器能识别的模型(.om)。
cd model
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50.onnx
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50_DVPP/aipp.cfg
atc --model=resnet50.onnx --framework=5 --output=resnet50 --input_shape="actual_input_1:1,3,224,224" --soc_version=Ascend310B4 --insert_op_conf=aipp.cfg
下载 ONNX 模型文件:使用 wget 命令从华为云对象存储(OBS)下载 ResNet50 的 ONNX 模型文件。
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50.onnx
下载 AIPP 配置文件:这个文件包含了模型输入数据的预处理参数。
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50_DVPP/aipp.cfg
使用 ATC 工具转换模型:将 ONNX 模型转换为 Ascend 310 AI 处理器可以运行的格式。
atc --model=resnet50.onnx --framework=5 --output=resnet50 --input_shape="actual_input_1:1,3,224,224" --soc_version=Ascend310B4 --insert_op_conf=aipp.cfg
这里有几个关键参数需要注意:
–model:ResNet-50网络的模型文件的路径。
–framework:原始框架类型。5表示ONNX。
–output:resnet50.om模型文件的路径。请注意,记录保存该om模型文件的路径,后续开发应用时需要使用。
–input_shape:模型输入数据的shape。
–soc_version:昇腾AI处理器的版本。
在转换模型中可能遇到的问题:
1.PermissionError: [Errno 13] Permission denied: ‘/home/EdgeAndRobotics/Samples/ResnetPicture/model/kernel_meta_temp_6486615612126595467’
解决方式:这个问题是权限不足导致的,切换到root账户就可以了。su root
然后输入密码切换账户
2./usr/local/Ascend/ascend-toolkit/latest/bin/atc: line 17: 3583 Killed P K G P A T H / b i n / a t c . b i n " {PKG_PATH}/bin/atc.bin " PKGPATH/bin/atc.bin"@"
sh-5.1# Process ForkServerPoolWorker-7:
Traceback (most recent call last):
BrokenPipeError: [Errno 32] Broken pipe
解决方式:这个问题可能是内存不足导致的。当设备内存小于8G时,可设置如下两个环境变量减少atc模型转换过程中使用的进程数,减小内存占用。export TE_PARALLEL_COMPILER=1 export MAX_COMPILE_CORE_NUMBER=1
然后再重新转换即可。
下载测试图片
从以下链接获取该样例的测试图片dog1_1024_683.jpg,放在data目录下。
cd ../data
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg
编译样例源码
cd ../scripts
bash sample_build.sh
执行样例
执行以下脚本运行样例:
bash sample_run.sh
执行成功后,在屏幕上的关键提示信息示例如下,提示信息中的top1-5表示图片置信度的前5种类别、index表示类别标识、value表示该分类的最大置信度,class表示所属类别。
[INFO] top 1: index[162] value[0.905034] class[beagle]
[INFO] top 2: index[161] value[0.092053] class[bassetbasset hound]
[INFO] top 3: index[166] value[0.000738] class[Walker houndWalker foxhound]
[INFO] top 4: index[167] value[0.000509] class[English foxhound]
[INFO] top 5: index[163] value[0.000076] class[bloodhound sleuthhound]
在运行整个模型的过程中,香橙派展现出了出色的稳定性和性能表现。尽管模型运行可能涉及复杂的数据处理和计算任务,但香橙派的内存使用情况却表现出令人满意的稳定性,变化相对较小。这充分证明了香橙派在处理此类任务时具备高效的内存管理机制和充足的资源调配能力,使得系统能够平稳运行而不会出现因内存不足导致的性能瓶颈或崩溃现象。这种优秀的表现不仅体现了香橙派硬件设计的合理性,也彰显了其在嵌入式系统、边缘计算等领域中的强大潜力。
总结
性能强劲,满足多种AI需求
香橙派AI Pro搭载的处理器和GPU组合令人印象深刻。其强大的计算能力让我能够轻松运行复杂的深度学习模型和图像识别任务,即使在处理高清视频流时也能保持流畅无卡顿。这种性能上的优势,使得香橙派AI Pro成为了我进行AI项目开发和原型制作的理想选择。
易于上手,开发环境友好
对于初学者来说,香橙派AI Pro的易用性是一大亮点。官方提供了详尽的入门指南和开发文档,帮助我快速上手并熟悉开发环境。同时,社区的支持也非常活跃,遇到问题时总能迅速找到解决方案或得到热心人的帮助。此外,香橙派AI Pro还支持多种操作系统和开发工具链,使得我可以根据自己的需求选择合适的开发环境。
推荐学习资源:
香橙派AIpro学习资源一站式导航
扩展性强,适应多种应用场景
香橙派AI Pro的扩展性同样令人称赞。它提供了丰富的接口和扩展槽位,可以轻松连接各种传感器、摄像头和执行器等外设。这种设计不仅提高了开发板的灵活性,还让我能够轻松地将AI技术应用到不同的场景中,如智能家居、安防监控、智能机器人等领域。
在这个科技日新月异的时代,开源硬件平台正逐渐成为创新与学习的热土。在众多开源硬件中,OrangePi AIpro以其独特的定位和强大的功能,吸引着无数开发者的目光。它不仅是一个功能全面的单板计算机,更是一个集成了人工智能加速能力的创新平台,为开发者提供了无限可能。
让我们一起踏上这段学习之旅,揭开OrangePi AIpro更多的神秘面纱,探索它如何在开源硬件的海洋中引领潮流,成为连接创意与技术的桥梁。无论是对于教育、科研还是商业应用,OrangePi AIpro都值得每一位对技术充满热情的人深入了解。