香橙派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 图书管理系统小程序 功能介绍 用户 登录 注册 首页 图片轮播 图书信息推荐 图书详情 赞 踩 评论 收藏 系统公告 公告详情 用户信息修改 我的待还 图书归还 催还提醒 我的收藏管理 意见反馈 管理员 登录 个人中心…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...