当前位置:   article > 正文

香橙派(Orange Pi)AIpro开发板与YOLOv5实践测试_yolov5的项目实践

yolov5的项目实践

随着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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

这里可以看到本机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
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

这里可以看到本机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地址
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

上面已经启动一个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
  • 1
  • 2
  • 3

项目使用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   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

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

在这里插入图片描述
在执行时候,发现这个模型完下不动,没办法,那也只能手动去下载这几个模型,再通过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 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/903250
推荐阅读
相关标签