【香橙派 AIpro测评:探索高效图片分类项目实战】

前言

最近入手了一块香橙派 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天线,更是为使用增加便利性。在这里插入图片描述

初体验

启动开发板

  1. 将烧录好镜像的 TF 卡或者 eMMC 模块或者 SSD 插入开发板对应的插槽中。
  2. 开发板有两个 HDMI接口,用HDMI连接一个显示器。
  3. 开发板有 USB 接口,可以接上 USB 鼠标和键盘,来控制操作开发板。
  4. 此开发板有WIFI天线,就不需要额外连接网线了。
  5. 连通电源之后就可以开始启动了。

在这里插入图片描述

注意:启动的时候,风扇声音稍微大一点,无需惊慌是正常现象,待启动之后,风扇就恢复到基本是静音状态了。

在这里插入图片描述

调试开发板

登录系统
系统默认的用户名为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都值得每一位对技术充满热情的人深入了解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46492.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

案例 | 人大金仓助力山西政务服务核心业务系统实现全栈国产化升级改造

近日,人大金仓支撑山西涉企政策服务平台、政务服务热线联动平台、政务网、办件中心等近30个政务核心系统完成全栈国产化升级改造,推进全省通办、跨省通办、综合业务受理、智能审批、一件事一次办等业务的数字化办结进程,为我国数字政务服务提…

数据结构(Java):LinkedList集合Stack集合

1、集合类LinkedList 1.1 什么是LinkedList LinkedList的底层是一个双向链表的结构(故不支持随机访问): 在LinkedList中,定义了first和last,分别指向链表的首节点和尾结点。 每个节点中有一个成员用来存储数据&…

构建高效智能标准化仓库

在快节奏的现代商业环境中,仓库作为供应链的核心枢纽,其运营效率与管理水平直接影响着企业的整体竞争力。一个“高效智能标准化的仓库”,不仅是货物有序存储的空间,更是降本增效、提升客户满意度的关键所在。 在传统工厂管理模式下…

AI Agent 开发综合指南

本文介绍了 ReAct 模式以改进功能,并演示了如何从头开始创建 AI 代理。它涵盖了测试、调试和优化 AI 代理,以及工具、库、环境设置和实施。本教程为用户提供了创建有效 AI 代理所需的技能,无论他们是开发人员还是爱好者。 NSDT工具推荐&#…

【Linux】01.Linux 的常见指令

1. ls 指令 语法:ls [选项] [目录名或文件名] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息 常用选项: -a:列出当前目录下的所有文件,包含隐藏文件…

从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望

我在2021年底开始使用Polars和DuckDB。我立刻意识到这些库很快就会成为数据科学生态系统的核心。自那时起,这些库的受欢迎程度呈指数级增长。 在这篇文章中,我做出了一些关于未来几年数据科学领域的发展方向和原因的预测。 这篇文章旨在检验我的预测能力…

开始Linux之路

人生得一知己足矣,斯世当以同怀视之。——鲁迅 Linux操作系统简单操作指令 1、ls指令2、pwd命令3、cd指令4、mkdir指令(重要)5、whoami命令6、创建一个普通用户7、重新认识指令8、which指令9、alias命令10、touch指令11、rmdir指令 及 rm指令(重要)12、man指令(重要…

记录自己Ubuntu加Nvidia驱动从入门到入土的一天

前言 记录一下自己这波澜壮阔的一天,遇到了很多问题,解决了很多问题,但是还有很多问题,终于在晚上的零点彻底放弃,重启windows。 安装乌班图 1.安装虚拟机 我开始什么操作系统的基础都没有,网上随便搜了…

JDBC基础 -获取连接的方式、结果集、批处理、事务处理、连接池、Apache-DBUtils

文章目录 概述快速入门(增删改)获取数据库的五种方式方式一:获取Driver实现类对象方式二:反射方式三:使用DriverManager代替Driver方式四:Class.forName自动完成注册驱动(推荐)方式五:使用prope…

请你谈谈:BeanDefinition类作为Spring Bean的建模对象,与BeanFactoryPostProcessor之间的羁绊

那么,我们如何理解Spring Bean的建模对象呢?简而言之,它是指用于描述和配置Bean实例化过程的模型对象。有人可能会提出疑问,既然只需要Class(类)就可以实例化一个对象,Class作为类的元数据&…

springboot websocket 知识点汇总

以下是一个详细全面的 Spring Boot 使用 WebSocket 的知识点汇总 1. 配置 WebSocket 添加依赖 进入maven官网, 搜索spring-boot-starter-websocket,选择版本, 然后把依赖复制到pom.xml的dependencies标签中 配置 WebSocket 创建一个配置类 WebSocketConfig&…

mysql不初始化升级

1、下载mysql,下载地址:MySQL :: Download MySQL Community Server 2、解压下载好的mysql,修改配置文件的datadir指定目录为当前数据存储的目录 3、通过管理员cmd进入新版本mysql的bin目录, 然后执行命令安装mysql服务&#xff…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(七)-通过无人机实现无线接入的独立部署

引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…

JVM:垃圾回收器

文章目录 一、介绍二、年轻代-Serial垃圾回收器三、老年代-SerialOld垃圾回收器四、年轻代-ParNew垃圾回收器五、老年代-CMS(Concurrent Mark Sweep)垃圾回收器六、年轻代-Parllel Scavenge垃圾回收器七、Parallel Old垃圾回收器八、G1垃圾回收器 一、介…

仅在少数市场发售?三星Galaxy Z Fold 6 Slim折叠屏手机更轻更薄

在智能手机的创新之路上,三星一直是行业的领跑者之一。随着Galaxy Z Fold系列的不断进化,三星再次突破技术边界,推出了更为轻薄的Galaxy Z Fold 6 Slim。 这款新型折叠屏手机以其独特的设计和卓越的性能,为用户带来了全新的使用体…

护眼台灯真的护眼吗?要注意学生如何正确使用台灯!

孩子们面临着越来越多的视力挑战,在近视学生中,近10%为高度近视,且占比随年级升高而增长。幼儿园6岁儿童中有1.5%为高度近视,而高中阶段则达到了17.6%。青少年是国家的未来和希望,而他们的视力健康却面临着前所未有的挑…

一篇讲清楚怎么选算力租赁平台

选择算力租赁平台时,需要考虑多个因素以确保找到最适合自己需求的服务。以下是一些关键点,可以帮助您做出明智的选择: 明确需求:首先,确定您的项目需要哪种类型的计算资源,比如CPU、GPU或FPGA,以…

Cadence23学习笔记(二)

原理图设计界面中就可以直接新建PCB: 亲测:需要画完原理图,并且DRC通过之后才可以! 放置完元器件之后要规定元件的Footprint ,注意PCB封装名要和库文件中的名字对应: DRC按钮: 点击图标 N, 生成第一网表&…

车载音视频MediaPlayer优化方案

媒体播放现状 从手机到车载,在很多地方还是有很大的不同。针对多媒体的场景Android车机目前大部分结构大致结构如下图: 从以上图看出的问题: 各个音视频APP单独实现播控界面,播放链路不一致,使用的底层播放器和音频焦…

基于Spring Boot的高校后勤餐饮管理系统

1 项目介绍 1.1 研究背景 “互联网”时代的到来,既给高校后勤管理发展带来了机遇,也带来了更大的挑战。信息化应用已经开始普及,传统的高校后勤餐饮管理模式往往存在着效率低下、信息不透明、资源浪费等问题,已经难以满足现代高…