随着AI人工智能不断发展,算力水平不断的提升,物联网的的应用场景越来越广,随着控制系统的规模、复杂度随之提升,各行各业对要求也越来越多样化,因此传统应用方案已不能满足要求,开放式、网络化成为物联网的发展方向。香橙派(Orange Pi)AI Pro开发板作为一款低成本、高性能、低功耗的嵌入式计算平台,被广泛应用在工业上的各个领域,为开发者提供了强大的硬件支持。


一、什么是香橙派(Orange Pi)?

香橙派,也称Orange Pi,是一款类似于树莓派(Raspberry Pi)的单板计算机,旨在为开发者和爱好者提供一个低成本、高性能、低功耗的嵌入式开发平台,与树莓派相比,香橙派在很多方面具有更高的性能和更多的扩展接口,但在社区和资源方面可能相对较小,不过,官方有大量的文档可以进行学习。

香橙派的应用场景广泛,包括但不限于家庭媒体中心、自动化控制、物联网、教育等领域。它通常用于DIY项目,如智能家居、机器人、游戏机等,也被用作学习和教学工具,帮助人们学习计算机科学和电子工程知识。

在这里插入图片描述

OrangePi AIpro(8-12T)采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,是一款集成了华为 Ascend 系列 AI 处理器的开发板,专为 AI 应用和边缘计算设计。集成图形处理器,支持8-12TOPS AI算力,满足大多数AI算法原型验证、推理应用开发的需求,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。

  • 澎湃算力:拥有8GB/16GB LPDDR4X
  • 丰富的嵌入式多媒体卡:可以外接32GB/64GB/128GB/256GB eMMC模块
  • 支持双4K高清输出
  • 丰富的接口:包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口
  • 丰富的操作系统支持:支持Ubuntu、openEuler操作系统

在这里插入图片描述

相关资料:

OrangePi AIpro(8-12T)官网
OrangePi AIpro(8-12T)官网 - 相关资料下载


二、“高富帅” - OrangePi AIpro开发板介绍:

收到官方提供了的开发板子,收到货之后非常开心,本来以为就是一块开发板,还温馨的配置了TF卡(32G)、电源和Type-c的数据线,拿到板子的第一印象就是板子很漂亮,作为颜控的我,非常喜欢这块开发板,可以看到之前买过一个树莓派开发板,简直就是天壤之别,以下是OrangePi AIpro开发板的拍照:

在这里插入图片描述

说明:电源Type-c线特别的长,可以随意大展拳脚。

1. 开发板主机组装:

由于需要查看IP地址(通过IP来远程访问),首次需要连接显示器,看了一下开发板子,是有HDMI接口可以支持的,只需要注备一根HDMI线用于开发板连接到显示器上,后续其实可以不用显示器,运行后使用SSH远程链接即可,话不多说,马上开始来把开发板组装起来。

2. 启动盘准备:

这里系统有2种,一种是Ubuntu,一种是openEuler操作系统

这里我使用比较熟悉的Ubuntu镜像来进行构建。

烧录后,开机,登录时需要输入密码:Mind@123

3. SSH远程连接:

因为之前Xshell之前暴露过安全漏洞,所以,使用mac自带的cmd来进行SSH连接到香橙派OrangePi AIpro开发板子上。

在这里插入图片描述


三、压力性能测试:

SysBench 是一个可以快速获取系统性能的测试套件。

在之前了解TDSQL-C的时候,了解过使用 sysbench 可以用来测试 CPU 性能,sysbench 是一个模块化的跨平台基准测试工具,常用于评估系统的各个组件(例如 CPU、内存、I/O 子系统等)的性能,正好可以来比对一下自己电脑与OrangePi AIpro开发板有什么差异性。

本机配置:

在这里插入图片描述


1. SysBench CPU 测试:

这里我使用 SysBench 来测试 CPU 与内存。

# 一个线程跑
sysbench --test=cpu run
# 四个线程跑
sysbench --test=cpu --num-threads=4 run
# 八个线程跑
sysbench --test=cpu --num-threads=8 run

在这里插入图片描述

这里可以看到本机ubuntu电脑与OrangePi AIpro开发板子8个线程压测的结果,可以看到每秒处理事务的个数比我主机略高,以下有详细的分析结果。


2. SysBench 内存测试:

sysbench --test=memory --memory-block-size=1K --memory-total-size=2G --memory-oper=read run
sysbench --test=memory --memory-block-size=1K --memory-total-size=2G --memory-oper=write run
sysbench --test=memory --memory-block-size=1K --memory-total-size=2G --memory-oper=read --num-threads=4 run
sysbench --test=memory --memory-block-size=1K --memory-total-size=2G --memory-oper=write --num-threads=4 run
sysbench --test=memory --memory-block-size=1M --memory-total-size=2G --memory-oper=write --num-threads=4 run

在这里插入图片描述

这里可以看到本机ubuntu电脑与OrangePi AIpro开发板子1M的读写压测的结果,可以看到基本上每秒处理事务的个数大致相同,但是总时间我主机的时间略低,以下有详细的分析结果。

在这里插入图片描述

  • 从CPU测试可以发现,在1个线程、4个线程、8个线程的测试中,OrangePi AIpro开发板确实比我们本地主机偏高。
  • 从内存测试中看来,其实每秒处理事务的个数都是差不多的,只不过,本机用的总时间略为减少一半。

因为手里没有树莓派的硬件,在网上搜了一下一些测试,可参考这个文章树莓派 4 评测与基准测试,我们可以发现对比我们的指标,OrangePi AIpro开发板性能有几十倍的提升不少。


四、本机Demo体验:

可以看到这个镜像环境中,默认生成了一些Demo实例,可以快速来体验一下,可以一共包含8个Demo,本人实际一个一个体验了一下,速度基本上很快,是一款集成了华为 Ascend 系列 AI 处理器的开发板。

  • 每个Demo都有详细的说明文档
  • 不需要安装什么依赖,直接系统自带
  • Jupyter Notebook可视化操作,不需要在脚本中执行
# 显示当前文件夹,里面有一个文件夹是“samples”,里面包含了自带的demo
(base) HwHiAiUser@orangepiaipro:~$ ls
Ascend  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  aicpu_kernels  aicpu_package_install.info  samples
# 进入“samples”目录
(base) HwHiAiUser@orangepiaipro:~$ cd samples/
# 显示“samples”目录下所有文件,start_notebook.sh表示可执行的文件
(base) HwHiAiUser@orangepiaipro:~/samples$ ls
01-SSD  02-CNNCTC  03-ResNet50  04-HDR  05-CycleGAN  06-Shufflenet  07-FCN  08-Pix2Pix  start_notebook.sh
# 启动一个web服务来访问
(base) HwHiAiUser@orangepiaipro:~/samples$.start_notebook.sh ip地址

上面已经启动一个web服务,可以直接在浏览器中打开。

在这里插入图片描述

Jupyter Notebook 是一个在浏览器中使用的交互式的笔记本,可以实现将代码、文字完美结合起来,它的受众群体大多数是一些从事数据科学领域相关(机器学习、数据分析等)的人员。

Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。

OrangePi AIpro开发板

以上为在本人在浏览器直接使用jupyter来体验的过程,可以看到最后图片是秒生成的,OrangePi AIpro开发板专为 AI 应用和边缘计算设计,集成图形处理器。


五、yolov5项目实际体验:

YOLOv5继承了YOLO系列算法的核心思想,即将目标检测任务视为一个回归问题,通过卷积神经网络直接预测目标的边界框和类别概率。该算法以其高速和高精度的特点,在实时目标检测任务中表现出色。


1. 项目介绍:

YOLOv5 是一种目标检测算法,属于 You Only Look Once (YOLO) 系列算法的一个版本。它是由 Ultralytics 公司开发的,基于 PyTorch 框架实现,YOLOv5 算法的主要特点包括:

  • 快速性:YOLOv5 采用了一种端到端的目标检测方法,可以在不同的硬件平台上实现实时检测。
  • 高精度:通过使用多种技术,如数据增强、多尺度训练、深度可分离卷积等,YOLOv5 可以在保证速度的同时提供较高的检测精度。
  • 易于训练:YOLOv5 的训练过程相对简单,只需要少量的代码和数据,就可以实现对新数据集的训练。
  • 灵活性:YOLOv5 支持多种不同的目标检测任务,例如图像分类、目标检测、实例分割等。
  • 模型压缩:YOLOv5 提供了多种模型压缩方法,如剪枝、量化等,使得模型可以在资源有限的设备上运行。
  • YOLOv5 在计算机视觉领域得到了广泛的应用,特别是在实时目标检测任务中。它的优异性能和易于使用性使得它成为了许多研究人员和工程师的首选算法之一。

YOLOv5的代码实现基于PyTorch深度学习框架,提供了训练和推理的功能。YOLOv5提供了多种模型大小供选择,如yolov5s、yolov5m、yolov5l和yolov5x等,并提供了预训练的模型和开源代码,方便开发者进行模型的训练和应用。


2. 项目运行:

首先在 GitHub 上找到 Yolov 5 v5.0 版本的开源项目源码下载到本地。

YOLOv5 开源代码项目下载地址:https://github.com/ultralytics/yolov5

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

项目使用git clone下载yolov5的项目,老是会失败,提示“fatal:early EOF”,下载了好几次也不行,无赖只能在本机电脑下载完,再通过FTP上传到开发板子上。

在这里插入图片描述
试了好多次也不行,只能先把项目下载到本地,再通过FTP软件传到开发板子上。

在这里插入图片描述
使用FTP软件将本地的"yolov5-master.zip"文件上传到开发板子上,再通过unzip进行解压缩,再通过pip install安装项目所需要我依赖文件,这里有一个技巧,安装时需要加上清华源,没加的时候,下载太慢了。

(yolov5) HwHiAiUser@orangepiaipro:~$ cd project/
(yolov5) HwHiAiUser@orangepiaipro:~/project$ ls
yolov5-master.zip
(yolov5) HwHiAiUser@orangepiaipro:~/project$ unzip yolov5-master.zip 
Archive:  yolov5-master.zip
12be49963c1695e83dea059f2ab90750e5da5ca4
   creating: yolov5-master/
  inflating: yolov5-master/.dockerignore  
  inflating: yolov5-master/.gitattributes  
   creating: yolov5-master/.github/
   ...
  inflating: yolov5-master/utils/triton.py  
  inflating: yolov5-master/val.py 
(yolov5) HwHiAiUser@orangepiaipro:~/project$ cd yolov5-master
(yolov5) HwHiAiUser@orangepiaipro:~/project/yolov5-master$ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple   

在这里插入图片描述

# 运行分割预测脚本
python segment/predict.py --weights yolov5m-seg.pt --data data/images/doupo.jpg

在这里插入图片描述
在执行时候,发现这个模型完下不动,没办法,那也只能手动去下载这几个模型,再通过FTP上传到项目了。

在这里插入图片描述

(yolov5) HwHiAiUser@orangepiaipro:~/project/yolov5-master$ python segment/predict.py --weights yolov5m-seg.pt --data data/images/doupo.jpg 
segment/predict: weights=['yolov5m-seg.pt'], source=data/images, data=data/images/doupo.jpg, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs/predict-seg, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False, vid_stride=1, retina_masks=False
YOLOv5 🚀 2024-7-16 Python-3.9.19 torch-2.3.1 CPU

Fusing layers... 
YOLOv5m-seg summary: 301 layers, 21971597 parameters, 0 gradients, 70.8 GFLOPs
image 1/3 /home/HwHiAiUser/project/yolov5-master/data/images/bus.jpg: 640x480 4 persons, 1 bus, 1726.8ms
image 2/3 /home/HwHiAiUser/project/yolov5-master/data/images/doupo.jpg: 640x448 4 persons, 1600.0ms
image 3/3 /home/HwHiAiUser/project/yolov5-master/data/images/zidane.jpg: 384x640 2 persons, 1 tie, 1336.3ms
Speed: 1.2ms pre-process, 1554.4ms inference, 2.6ms NMS per image at shape (1, 3, 640, 640)
Results saved to runs/predict-seg/exp3

以下为运行完成后,可以在文件夹中runs/predict-seg/exp3中查看,以下为检测之后的效果运行后的图片,目标检测运行结果及保存路径。
在这里插入图片描述

python detect.py --source data/2.mp4

指定视频读取的路径,直接运行会将目标视频按照每一帧进行处理,然后保存,若想在处理每一帧后及时在窗口显示目标检测结果,可将 ‘–view-img’ 参数,这个不能在ssh中使用,需要使用开发板上外接HDMI的开发板子上运行,不然,会报错(摸索了好久),经过10几分钟后,就可以跑完了。

在这里插入图片描述
在这里插入图片描述
以下是上传到B站,下面显示为实时播放目标检测画面,运行完成后的效果,因为本人喜欢看动漫,所以,选择了这个视屏。

2


使用的旧摄像头坏了,不能使用,无赖只能使用IP摄像头替换一下,以下为方法。

4. 把手机变成IP摄像头:

为了使网络摄像机能够接入互联网,我们需要配置端口转发。端口转发允许您可以在远程通过转发网络摄像机连接到的网络端口而对该网络摄像机进行访问。转发的过程中,首先需要需要访问您网络中的路由器,然后,配置路由器使其能够转发网络摄像机所使用的端口。

"IP摄像头"利用双向音频的无线ip,你只需要你的手机上输入ip,可以使用电脑上的浏览器查看,它支持基于运动检测的自动录像,支持RTSP,RTMP等协议的回放。

在这里插入图片描述
IP摄像头安装地址:

通过上面的设置,我们可以得到一个局域网可以访问的地址,在url上面输入http://lo.199.48.54:8081(注意端口号),就可以进行访问,同时需要输入用户名和密码,都是admin。
在这里插入图片描述
在输入用户名和密码后,可以登录到web网页中显示一个摄像头,这里要注意一下有些延迟,并且噪音特点大,提供了连接手机实时检测的。

在这里插入图片描述

  • –view-img:用于在电脑上实时显示目标检测画面。
  • –source:用于接入手机上的局域网地址。
python detect.py --source http://admin:admin@后面紧接局域网地址
如:
python detect.py --source http://admin:admin@IP地址:端口

以下为展示一下最终连接手机实时目标检测的效果,这里需要注意一下,主动退出脚本录不上,需要在手机上终止才能录到本地:

在这里插入图片描述

admin


六、CPU与内存占比分析:

为了进一步了解板子的CPU与内存的实时变化率,我写了个以下的脚本,每隔5秒记录一下时间,从板子开机到板子最后结束所记录的变化情况,

#!/bin/bash

# 输出文件
OUTPUT_FILE="usage.txt"

# 记录头部信息
echo "时间,CPU占用率,内存占用率" >> $OUTPUT_FILE

# 记录间隔时间(秒)
SLEEP_TIME=5

# 循环记录数据
while true; do
    # 获取当前时间
    CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')

    # 使用top获取CPU和内存占用率
    CPU_USAGE=$(top -b -n 1 | grep "Cpu(s)" | awk '{print $2 + $4}')
    MEM_USAGE=$(top -b -n 1 | grep "Mem" | awk '{print $4}')

    # 将数据追加到输出文件
    echo "$CURRENT_TIME,$CPU_USAGE,$MEM_USAGE" >> $OUTPUT_FILE

    # 等待一段时间
    sleep $SLEEP_TIME
done
~

把记录的值通过以下脚本得到需要的数值,以便于放到echarts中去显示:

const arr = a.split('\n').filter(item => item != 'total,').map(item => item.split(' ')[1])

let cpu = []
let mem = []

arr.map(item => {
  const data = item && item.split(',')
  console.log(data)
  if (data && (data.length  === 3)) {、
    cpu.push(tempCpu)
    mem.push(data[2])
  }
})

console.log(cpu)
console.log(mem)

请添加图片描述
上面是CPU的变化图,可以看到整个过程中,最高也没有超过60%,完全可以跑更大更消耗性的AI项目。
请添加图片描述
可以看到从开机到结束体验,内存都是很平稳的,基本上没有发生波动。


总结:

1. 硬件方面:

  • 外观:OrangePi AIpro开发板外观非常漂亮,颜值比较高,比以前接触的树莓派要好多了。
  • 风扇:风扇散热效果真不错,只有在开机的前10几秒会响,开机后,一直运行过程中,保持平稳,没有说突然呼呼的响
  • 温度方面:在关机后,手摸了一下温度也不是很烫,主板和风扇都在正常的范围之内,只不过,TF卡稍微热一点
  • 接口方面:支持很多场景的外接设备,唯一一点的是USB比较少,不过,也可以外接USB扩展坞来解决
  • 电源插口非常紧,拔了很久才拔下来,这样在部署到物联网的机器上,也是比较稳定,不至于摇晃导致电源掉电
  • HDMI接口,插靠近type-c电源线这个,不行,但是插到另外一个就可以
  • 支持Wifi和网线接口,不过,这里需要注意Wifi最好是同一种类型,当时主机连的是2.4G,而物联网的设备都是5G,所以,这里需要注意,在物联网的设备上,最好是5G的
  • 个人考虑一下TF卡,如果在生产应用上,最好外接多种容量的eMMC模块,可能更稳定一点,因为有些模型很大,可以推荐这种方式外接,提高容量。

2. 软件方面:

  • 默认的镜像支持很多AI的应用,集成了Jupyter Notebook,可以快速入门了解AI的应用
  • 基本上常用的软件都是支持的,但是建议推荐搞一个比较基础的镜像,因为大多数公司场景还是有aplink镜像的需求
  • 性能非常好,采用了昇腾AI技术路线,配备了4核64位处理器+AI处理器,并集成了图形处理器,在从AI应用从头到尾,安装软件,训练模型,部署模型,CPU的值都没有超过60%,而且内存非常的稳定,没有波动变化
  • 操作系统支持Ubuntu、openEuler,可以根据用户自己的需求进行开发和部署

3. 社区支持:

  • 官方的文档非常丰富,基本上都有,而且非常的详细

香橙派 AIpro 小巧便携,易于使用。它可以应用于多个领域,如智能家居、物联网、人工智能和教育等。同时,它也是开发者和 DIY 爱好者的理想选择,他们可以在上面进行各种实验和项目开发。

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐