香橙派AIpro开发板评测:部署yolov5模型实现图像和视频中物体的识别
OrangePi AIpro 作为业界首款基于昇腾深度研发的AI开发板,自发布以来就引起了我的极大关注。其配备的8/20TOPS澎湃算力,堪称目前开发板市场中的顶尖性能,实在令人垂涎三尺。如此强大的板子,当然要亲自体验一番。今天非常荣幸地拿到了一块OrangePi AIpro开发板,我迫不及待地选中了一款开源项目中模型进行部署,期待为大家带来一次精彩的体验。

一、香橙派AIpro介绍
1. 香橙派介绍
香橙派(Orange Pi)是一款开源的单板计算机,广泛应用于教育、嵌入式开发、物联网等领域。香橙派以其高性能和多样的功能模块,成为开发者和爱好者的理想选择。香橙派系列产品提供了丰富的接口和扩展能力,支持各种操作系统,如Android、Ubuntu、Debian等。
2. 香橙派AIpro开发版介绍
OrangePi AIpro 是2023.12月初,香橙派联合华为发布了基于昇腾的Orange Pi AIpro开发板,提供8/20TOPS澎湃算力,支持复杂的计算任务,适用于AI边缘计算、深度视觉学习、视频流AI分析等多个领域。作为业界首款基于昇腾深度研发的AI开发板,它搭载了高性能处理器和丰富的AI加速硬件,支持神经网络推理、图像识别等高计算需求的任务。
香橙派AIpro开发版正面:

香橙派AIpro开发版背面:

香橙派AIpro的主要特点包括:
| 特点 | 详细描述 |
|---|---|
| 昇腾AI技术路线 | 集成图形处理器,拥有8GB/16GB LPDDR4X内存。支持双4K高清输出,提供8/20 TOPS AI算力,支持复杂的计算任务,适用于AI边缘计算、深度视觉学习、视频流AI分析等。 |
| 丰富的接口 | 包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB、两个MIPI摄像头、一个MIPI屏等。支持SATA/NVMe SSD 、以太网等,方便连接各种外设。 |
| 操作系统支持 | 支持Ubuntu和openEuler操作系统,提供灵活的开发环境。 |
| 强大的AI加速模块 | 昇腾AI技术路线,集成图形处理器,拥有8GB/16GB LPDDR4X内存。支持双4K高清输出,提供8/20 TOPS AI算力,提升深度学习和推理任务的效率。 |
二、香橙派AIpro评测(测试部署YOLOv5模型)
1. Xshell连接香橙派
确保香橙派已正确连接到电源和网络,并开启电源。
使用显示器和键盘登录香橙派,默认登录名为 HwHiAiUser,密码为 Mind@123。
点击右上角WIFI标识,继续点击“查看连接信息”,获取其内网IP地址,我的为 192.168.0.103。

然后,在你的电脑上启动Xshell,输入刚刚查到的内网IP和账号密码,远程连接香橙派,这样我们就能够通过Xshell远程操作开发板,Xftp同理,后面我们也需要用到Xftp实现个人电脑和开发板的文件同步。
登录成功如图:

2. 安装Python环境
为了在香橙派上运行YOLOv5模型,首先需要安装Python和pip。使用以下命令更新软件包列表并安装Python 3和pip:
sudo apt update
sudo apt install python3 python3-pip -y
在本次测评中,我们提前安装了Python 3.9。你可以通过以下命令检查已安装的Python版本:
python3 --version
确保输出的版本号符合要求,例如:Python 3.9.x。
3. 安装YOLOv5
从GitHub上下载YOLOv5代码库。

通过Xftp或其他文件传输工具将其拷贝到香橙派上。

在香橙派终端中,进入YOLOv5目录并解压压缩包:
unzip yolov5-master.zip
cd yolov5-master

进入解压后的目录后,使用以下命令安装所需的Python依赖:
pip3 install -r requirements.txt

这些依赖包括PyTorch、OpenCV等YOLOv5运行所需的库。
4. 使用预训练模型识别图片
为了测试YOLOv5模型的效果,我们将使用预训练模型识别一张公交车场景的示例图片。运行以下命令:
python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg

此命令将加载预训练的YOLOv5模型,并在指定的图片上进行目标检测。识别结果将保存在runs/predict目录下,你可以查看输出的图片文件。
这里我们比较以下识别前后的公交车场景的示例图片:
识别前:

识别后:

通过对比识别结果和原始图片,你会发现YOLOv5模型在识别效率和精度方面表现非常出色。无论是公交车的轮廓还是细节,模型都能够准确地识别并标注出来,显示了其强大的图像处理能力。
5. 选择最优模型
在测试了YOLOv5预训练模型后,你可能希望选择一个最优模型来满足特定的需求。YOLOv5提供了多个不同的模型变种(如YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x),这些模型在性能和精度上各有侧重。你可以根据需要选择最适合的模型。
首先,下载其他模型的权重文件:
wget https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt
wget https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5m.pt
wget https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5l.pt
wget https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5x.pt
然后,分别使用不同的模型权重进行测试,比较它们的性能和精度。例如,使用YOLOv5s模型:
python detect.py --weights yolov5s.pt --img 640 --conf 0.25 --source data/images/bus.jpg
你可以通过比较不同模型在同一图片上的检测结果,选择性能和精度最符合你需求的模型。记录下检测时间和精度数据,帮助你做出最优选择。
6. 连接摄像头调试
为了进一步验证YOLOv5模型的性能,可以连接摄像头进行实时视频流的检测。首先,确保香橙派支持并正确连接摄像头。你可以使用USB摄像头或MIPI摄像头接口。

安装摄像头依赖:
sudo apt install v4l-utils -y
检查摄像头连接:
使用以下命令检查摄像头是否已连接:
v4l2-ctl --list-devices
运行实时检测:
使用YOLOv5模型对实时视频流进行检测。假设摄像头设备路径为/dev/video0,运行以下命令:
python detect.py --weights yolov5m.pt --img 640 --conf 0.25 --source 0
这里,--source 0 指定了摄像头设备为默认的/dev/video0,需要根据实际情况更改设备路径。
效果如下:

通过这些步骤,你可以在香橙派上成功部署并调试YOLOv5模型,实现实时视频流的目标检测。结合摄像头的实际使用情况和模型的检测结果,可以进一步优化模型参数和系统性能,以满足具体应用场景的需求。
三、使用感受及产品评价
1. 使用感受
在使用香橙派AIpro进行YOLOv5模型的测试部署过程中,香橙派AIpro的表现非常出色。通过Xshell远程连接香橙派,操作简便,响应迅速。Python环境的安装和YOLOv5的部署过程也十分顺利,依赖安装快捷,模型运行稳定,识别结果准确。
香橙派AIpro的强大硬件配置在处理复杂计算任务时表现尤为突出,特别是其AI加速模块,在深度学习任务中提供了显著的性能提升。此外,香橙派AIpro提供了丰富的学习资料和开发资源,包括详细的用户指南、案例教程和产品文档,为开发者提供了全方位的支持,使其能够更快地上手并实现各种AI应用。
整体使用体验非常流畅,产品质量优秀,是开发和学习AI技术的理想平台。无论是教育用途还是专业开发,香橙派AIpro都能满足用户的需求,值得推荐。
2. 产品评价
经过评测,我认为香橙派AIpro是一款非常不错的产品,从几个评价维度出发,我为大家列出了如下总结。
| 评价维度 | 详细描述 |
|---|---|
| 硬件性能 | 香橙派AIpro配备8/20TOPS算力,在同类产品中处于领先地位。无论是进行深度学习模型的训练还是推理,AI加速模块都能显著提升性能,确保任务高效完成。 |
| 软件支持 | 支持Ubuntu和openEuler操作系统,为开发者提供了灵活的开发环境。丰富的学习资源,包括用户指南、案例教程和产品文档,使开发者能够轻松上手,快速实现AI应用的开发和部署。 |
| 扩展性 | 香橙派AIpro具有出色的扩展性。丰富的接口配置,如双HDMI输出、USB3.0、Type-C电源接口、M.2插槽等,满足各种外设连接需求。无论是连接显示器、摄像头,还是扩展存储,香橙派AIpro都能提供良好的支持。 |
| 性价比 | 考虑到其强大的性能和丰富的功能,香橙派AIpro的价格非常具有竞争力。对于教育用途和专业开发者来说,这是一款性价比极高的AI开发板,能够在预算内实现高效的AI开发和应用。 |
| 用户体验 | 总体来说,香橙派AIpro的用户体验非常出色。无论是硬件性能、软件支持,还是扩展性和性价比,都表现得非常优异。特别是在部署和运行YOLOv5等深度学习模型时,操作简便、运行稳定,显示出其强大的计算能力和稳定性。 |
香橙派AIpro是一款高性能、高可靠性的开发板,适合各种人工智能和深度学习应用场景。其丰富的学习资源和强大的硬件配置使其成为AI开发者和爱好者的不二之选。
相关文章:
香橙派AIpro开发板评测:部署yolov5模型实现图像和视频中物体的识别
OrangePi AIpro 作为业界首款基于昇腾深度研发的AI开发板,自发布以来就引起了我的极大关注。其配备的8/20TOPS澎湃算力,堪称目前开发板市场中的顶尖性能,实在令人垂涎三尺。如此强大的板子,当然要亲自体验一番。今天非常荣幸地拿到…...
MongoDB教程(二):mongoDB引用shell
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MongoD…...
A133 Android10 root修改
1.前言 客户应用需求root相关的权限,我们需要修改系统的权限才可以满足客户需求 2.修改方法 frameworks层:注释掉 diff --git a/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp b/frameworks/base/core/jni/com_android_internal_os_…...
实验场:在几分钟内使用 Bedrock Anthropic Models 和 Elasticsearch 进行 RAG 实验
作者:来自 Elastic Joe McElroy, Aditya Tripathi 我们最近发布了 Elasticsearch Playground,这是一个新的低代码界面,开发人员可以通过 A/B 测试 LLM、调整提示(prompt)和分块数据来迭代和构建生产 RAG 应用程序。今天…...
代理详解之静态代理、动态代理、SpringAOP实现
1、代理介绍 代理是指一个对象A通过持有另一个对象B,可以具有B同样的行为的模式。为了对外开放协议,B往往实现了一个接口,A也会去实现接口。但是B是“真正”实现类,A则比较“虚”,他借用了B的方法去实现接口的方法。A…...
Laravel - laravel-websockets 开发详解
1.我laravel-websockets 的开发环境 Laravel 9.0Laravel WebSockets (最新版)Laravel Vite 2. 安装服务器端包 beyondcode/laravel-websockets 运行以下命令安装laravel-websockets composer require beyondcode/laravel-websockets 安装完后&#…...
vue3 学习笔记04 -- axios的使用及封装
vue3 学习笔记04 – axios的使用及封装 安装 Axios 和 TypeScript 类型定义 npm install axios npm install -D types/axios创建一个 Axios 实例并封装成一个可复用的模块,这样可以在整个应用中轻松地进行 API 请求管理。 在 src 目录下创建一个 services 文件夹&…...
键盘快捷键设置录入
效果图: 代码: import React, {useContext, useEffect, useRef} from react import {message} from "antd"; import lodash from "lodash"; import {StateContext} from ../../index.tsx import {useUpdateEffect} from "ahoo…...
刷题Day49|647. 回文子串、516.最长回文子序列
647. 回文子串 647. 回文子串 - 力扣(LeetCode) 思路:递推公式的含义是[i, j]内的子串是否为回文子串(bolean[][])。一共两种情况:s[i] s[j],i和j相差1以外就得判断中间包含的的字符串是否为回文了&…...
关于transformers库验证时不进入compute_metrics方法的一些坑
生成式任务输入就是标签 transformers在进入compute_metrics前会有一个判断,源码如下: # 版本 transformers4.41.2 # 在trainer.py 的 3842 行 # Metrics! if (self.compute_metrics is not Noneand all_preds is not Noneand all_labels is not Nonea…...
苹果提出RLAIF:轻量级语言模型编写代码
获取本文论文原文PDF,请在公众号【AI论文解读】留言:论文解读 代码生成一直是一个充满挑战的领域。随着大型语言模型(LLM)的出现,我们见证了在自然语言理解和生成方面的显著进步。然而,当涉及到代码生成&a…...
[leetcode] shortest-subarray-with-sum-at-least-k 和至少为 K 的最短子数组
. - 力扣(LeetCode) class Solution { public:int shortestSubarray(vector<int>& nums, int k) {int n nums.size();vector<long> preSumArr(n 1);for (int i 0; i < n; i) {preSumArr[i 1] preSumArr[i] nums[i];}int res n…...
专业140+总分420+天津大学815信号与系统考研经验天大电子信息与通信工程,真题,大纲,参考书。
顺利上岸天津大学,专业课815信号与系统140,总分420,总结一些自己的复习经历,希望对于报考天大的同学有些许帮助,少走弯路,顺利上岸。专业课: 815信号与系统:指定教材吴大正…...
前端如何取消接口调用
🧑💻 写在开头 点赞 收藏 学会🤣🤣🤣 1. xmlHttpRequest是如何取消请求的? 实例化的XMLHttpRequest对象上也有abort方法 const xhr new XMLHttpRequest(); xhr.addEventListener(load, function(e)…...
k8s 容器环境下的镜像如何转换为docker 使用
在无法连接registry 的环境中,想要把 crictl 中的镜像给docker 使用,应该怎么处理? 其实容器镜像是通用的,crictl 和ctr 以及docker 镜像是可以互相使用的,因为docker 在1.10版本之后遵从了OCI。所以crictl 环境下的镜…...
FreeRTOS 队列
队列是一种任务到任务、任务到中断、中断到任务数据交流的一种机制。在队列中可以存 储数量有限、大小固定的多个数据,队列中的每一个数据叫做队列项目,队列能够存储队列项 目的最大数量称为队列的长度,在创建队列的时候,就需要指…...
如何识别图片文字转化为文本?5个软件帮助你快速提取图片文字
如何识别图片文字转化为文本?5个软件帮助你快速提取图片文字 将图片中的文字提取为文本是一项非常有用的技能,特别是当你需要处理大量扫描文档、截图或其他图片时。以下是五款能够帮助你快速提取图片文字的软件: 迅捷文字识别 这是一款非…...
Flink SQL kafka连接器
版本说明 Flink和kafka的版本号有一定的匹配关系,操作成功的版本: Flink1.17.1kafka_2.12-3.3.1 添加kafka连接器依赖 将flink-sql-connector-kafka-1.17.1.jar上传到flink的lib目录下 下载flink-sql-connector-kafka连接器jar包 https://mvnreposi…...
glm-4 联网搜索 api 测试
今天测试了一下 glm-4 的联网搜索 web_search tool 调用,发现了 web_search 的网页检索返回结果中几个比较诡异的事情,特此记录: 有些检索结果没有 icon、link、media 字段,但从内容上看确实是联网搜索出来的结果,不知…...
Java毕业设计 基于SSM vue图书管理系统小程序 微信小程序
Java毕业设计 基于SSM vue图书管理系统小程序 微信小程序 SSM 图书管理系统小程序 功能介绍 用户 登录 注册 首页 图片轮播 图书信息推荐 图书详情 赞 踩 评论 收藏 系统公告 公告详情 用户信息修改 我的待还 图书归还 催还提醒 我的收藏管理 意见反馈 管理员 登录 个人中心…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
