香橙派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 图书管理系统小程序 功能介绍 用户 登录 注册 首页 图片轮播 图书信息推荐 图书详情 赞 踩 评论 收藏 系统公告 公告详情 用户信息修改 我的待还 图书归还 催还提醒 我的收藏管理 意见反馈 管理员 登录 个人中心…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...
