香橙派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 图书管理系统小程序 功能介绍 用户 登录 注册 首页 图片轮播 图书信息推荐 图书详情 赞 踩 评论 收藏 系统公告 公告详情 用户信息修改 我的待还 图书归还 催还提醒 我的收藏管理 意见反馈 管理员 登录 个人中心…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
