哈喽,大家好!我是点灯master很荣幸受到官方邀请对OrangePi AIpro板卡进行测评,下面我先说一下关于国内外AI开发板的差异,再介绍对香橙派AIpro开发板的使用体验。
在平时的学习和工作中,我接触过瑞芯微、全志、昇腾、英伟达等系列的开发板。就事实而言国外的开发板通常具有先进的处理器、GPU和辅助器件,还具有完善的技术支持和开发生态。相比之下国内的AI开发板更侧重于价格性价比和大众化应用。
为了打破这种局面,国内厂商需要实现技术创新与自主研发,构建全面生态系统,优化用户体验。OrangePi AIpro是香橙派联合华为精心打造,采用昇腾AI技术路线,支持8TOPS AI算力,在Orange Pi论坛、昇腾社区有数百个代码参考样例。其强大的生态和性能轻松驾驭各种场景的应用:如智能家居、边缘计算、工业控制、机器臂、无人机、智能监控等。
硬件介绍
测评的OrangePi AIpro板卡配置如下:主板,8G,电源,散热组件,32GB存储卡。
各位可以根据需要选择外存设备,我这里选择的是M.2接口NVME固态硬盘,选用时注意确认硬盘是否为2280规格。
测评板卡简单的硬件规格表如下所示,可去官方查询更多信息。硬件规格表
硬件 | 参数 |
---|---|
主板 | 4核心64位+AI处理器 |
内存、外存 | 8G运行内存 256G外存 |
AI算力 | 8TOPS |
网络 | 1000Mbps以太网口 WiFi 5 双频 |
显示 | 2xHDMI2.0 4K@60FPS |
电源 | Type-C 标准65W |
废话不多说,直接上图。
顶层视图(左):风扇、按键、MIPI接口、WIFI+蓝牙、40Pin引脚
顶层视图(右):电源接口、2x HDMI接口、音频接口、2xUSB3.0、以太网收发器
底层视图:背面主要是选择启动方式的BOOT1、2拨动开关,还有SD卡槽,emmc接口,M.2接口。
32G的外存勉强能用,不过谁让我手上有一块新买的256G固态呢。(炫耀一下。哈哈哈~)
上电后进入系统桌面,标准的logo: “Orange Pi”……
详细的硬件组成如下图所示:
软件设计
为了更好的体验,官方给我们提供了9个python编写的AI应用样例。分别是目标检测、文字识别、目标分类、图像曝光增强、卡通图像生成、蛋白质分类评估、细胞图像分割、人像分割与背景替换以及语音识别。官方提供的镜像中已经安装好conda、pytorch等环境,方便我们自行根据需要进行开发。
YOLOv5实现数字识别
YOLOv5是一个智能系统,就像是一个超级眼睛,能够快速而准确地识别图像中的物体。它的全称是"You Only Look Once",意思是你只需要看一次图像,就能知道图像里有哪些物体,它们在哪里以及它们是什么。相比于人眼,YOLOv5的速度更快、准确度更高。你可以想象一下,当你给它一张图片时,它会在几乎立即的时间内告诉你图片里有什么东西,而且不会漏掉任何一个物体。而且,YOLOv5还可以学习新的物体,就像是一个聪明的学生,通过不断地练习和学习,变得越来越聪明。总的来说,YOLOv5就像是一双能够迅速而准确地识别物体的超级眼睛,它可以帮助计算机在图像中找到并理解各种物体。
使用yolov5实现数字识别之前先安装好需要用到的环境,这里我是使用python实现数字识别,所以很多第三方包使用pip工具即可完成安装。如果是使用c++来实现的话需要检测opencv和编译器的版本是否正确,往往很多人容易卡在第一步。万事开头难,我这里建议先使用python的方式来部署数字识别代码。
top1: 下载yolov5:
首先我们需要从GitHub仓库中获取yolov5源码,源码中有训练、测试、评估等脚本。
克隆地址:
git clone https://github.com/ultralytics/yolov5.git #下载速度较慢,建议通过镜像网站上下载或者科网。
top2: 安装依赖:
下载好源码之后安装yolov5需要的第三方工具包,在yolov5文件夹下的requirements.txt就已经列出需要的yolov5工作环境。
cd yolov5
pip3 install -r requirements.txt
top3: 下载预训练模型:
安装好环境之后先做一个测试,判断下载下来的yolov5源码和环境是否能正常使用。yolov5官方给我们提供有预训练模型,有小、中、大和极大版本,每个模型需要的硬件条件和精度效果都不一样。这里我选择使用yolov5s.pt作为演示。
预训练模型如图所示:
top4: 环境测试:
环境测试过程我使用detect.py脚本实现,--source用来指定输入源(这里以图片为例),--weights用来指定权重文件(选择yolov5s.pt模型),--conf-thres用来指定权重大小。
在yolov5目录下运行下面命令测试模型:
python detect.py --source ./data/images/bus.jpg --weights ../weights/yolov5s.pt --conf-thres 0.3
python detect.py --source ./data/images/zidane.jpg --weights ../weights/yolov5s.pt --conf-thres 0.3
top5: 数字识别:
我在预训练模型的基础上配合自己采集的数据集,训练一个真正适合数字识别的模型。训练过程我这里就不再多说,如果大家感兴趣可以移步到CSDN博客上查找我的文章即可。
下面开始介绍数字检测的程序:
- 先导入opencv、numpy、pytorch包。
# 添加相应的模块
import cv2
import numpy as np
import torch
- 完成初始化:指定yolov5源码路径,指定权重文件路径,指定权重大小。
# 初始化
model = torch.hub.load('./yolo', 'custom', path='./weights/best.pt', source='local')
# 设置置信度
model.conf = 0.4
- 读取图片,并由bgr转成rgb格式。
# 读取图像
img = cv2.imread("img.jpg")
# bgr 转 rgb
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
- 推理:将图片img_rgb作为输入传入模型中,返回的结果经过处理转换为numpy数组格式。
# 推理
results = model(img_rgb)
results_np = results.pandas().xyxy[0].to_numpy()
- 遍历results_np数组,其实就是遍历检测到的数量,画上矩形框并绘制文字。
# 绘制边框和文字
for box in results_np:
l, t, r, b = box[:4].astype("int")
num = box[5]+1
# 绘制矩形框
cv2.rectangle(img, (l, t), (r, b), (0, 255, 0), 5)
# 绘制文字
cv2.putText(img, str(num), (l, t),
cv2.FONT_HERSHEY_SIMPLEX, 2.0, (0, 0, 255), 5)
- 将目标检测的结果保存到本地。
# 保存图片
cv2.imwrite("output.jpg", img)
效果如下图所示:
总结:
在硬件上风扇一上电较大声,进系统后进入自动调速模式,整体的工作温度在40~50之间。天线的放置问题比较麻烦,若没有盒子只能平躺放置。还有40Pin引脚没有丝印,每次确认都要查看手册。而且风扇占位太大,没有空间安装外接拓展板。(提个建议:是否可以设计一款亚力克外壳,方便散热的同时解决了天线的放置问题,还可以打上外设接口的丝印,价格方面又亲民。)
在软件上官方给我们预安装了很多工具,也提供了AI例程。部署数字识别模型对视频流进行检测,达到20fps。模型有很大的优化空间,若充分利用AI处理器和GPU,帧率方面还能提高。
更多推荐
所有评论(0)