【AI那些事】YOLO算法在香橙派AIpro上跑起来的初体验

一、本文概述

在之前推出的Yolo算法后,我在windows电脑上使用python语言运行将其跑通了,觉的这个识别算法很是有意思,就一直想着这个算法能不能跑在硬件的开发板上那就太好了。我就开始寻找市面上可行的开发板,一直期盼的事情真的会有结果,正所谓念念不忘,必有回想,找到了香橙派开发版,看到他能实现图片识别、语音识别、深度视觉学习等,这不就是我想要的么,不妨一试!

二、香橙派开发板开箱

开箱主要有开发板一块、已经安装好的散热器、TF卡、Type-c电源适配器、Type-c数据线

在这里插入图片描述

打开盒子的开发板,大小不大,还算小巧

在这里插入图片描述

三、香橙派AIpro开发版软硬件介绍

3.1、资料来源与途径

学习一个新的产品往往去产品官网产看官网的手册是最好的途径之一,官网的资料是一手的资料更加详细。

香橙派官网地址:http://www.orangepi.cn/

香橙派AIpro开发版资料地址:http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-AIpro.html

3.2、开发板介绍

3.2.1、硬件介绍

OrangePi AIpro(8-12T)采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,集成图形处理器,支持8-12TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。 Orange Pi AIpro引用了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口。

在这里插入图片描述

通过硬件介绍可知集成了图形处理器以及算力还算强劲,内存8GB是完全可够用了,在此板上跑通Yolo算法让我有了底气。

3.2.2、应用场景介绍

主要应用于AI教学实训,AI算法验证、智能小车、机械臂、边缘计算、无人机、人工智能、云计算、AR/VR、智能安防、智能家居、智能交通等AIOT各行各业中。

在这里插入图片描述

3.3、官方资料快速浏览

在官网中可查看资料

在这里插入图片描述

首先是查看开发板资源介绍来大概的了解能实现的大概功能

开发板正面:

在这里插入图片描述

开发板背面:

在这里插入图片描述

通过上面两图到的资源有:

* 两个美光的内存颗粒,单个4GB容量,两个一共8GB,位于散热器边缘;

* 两个HDMI接口,位于图中开发板下边缘和靠近左下角位置;

* 两个USB Type-A接口,位于以太网口旁边;

* 两个USB Type-C接口,其中靠边缘的是电源接口,靠近USB Type-A的是可以通信的;

* 一个3.5 mm耳机麦克风接口,位于两个HDMI接口中间;

* 一个散热器,散热器下方覆盖的是Ascend310芯片,型号Hi1910;

* eMMC接口,位于图中天线下方;

* BOOT0和BOOT1拨码开关,位于开发板右上角,和开发板上方中间位置;

* 一个FnLink的WiFi模组,里面封装的是RealTek的WiFi、蓝牙芯片RTL8211F;

* 一个千兆以太网口,位于图中开发板右下角;

* TF卡槽,位于图中开发板左上角;

* M.2 SSD接口,位于图中开发板左侧;

四、香橙派AIpro环境搭建

首先是镜像烧录,自带了TF卡中是有镜像的,也就不需要烧录镜像了,如果TF卡中没有镜像,那么就需要烧录镜像

4.1、TF卡镜像烧录步骤

在windows电脑上将linux镜像(此linux镜像就是官网的资料里Ubuntu或者openEuler镜像)烧录到卡中。

  1. 使用给提供的balenaEtcher工具,balenaEtcher工具下载地址:https://www.balena.io/etcher/
  2. 下载好之后,以管理员的方式进行打开。
  3. 将TF卡使用读卡器插电脑上,选择TF卡的盘符。(千万不要选错,不然就凉凉了)读卡器需要自备
  4. 点击Flash开始烧录
  5. 烧录成功后界面会提示Successful的字样
  6. 将TF卡拔出电脑。(先任务烂退出,再拔,不然容易对TF卡造成损伤)
  7. 将TF插入香橙派中。

在这里插入图片描述

4.2、启动

开发板支持从 TF 卡、eMMC 和 SSD(支持 NVMe SSD 和 SATA SSD)启动。 具体从哪个设备启动是由开发板背面的两个拨码(BOOT1 和 BOOT2)开关来控制的。

在这里插入图片描述

我们目前要使用TF卡启动。

所以背面的BOOT1和BOOT2要把拨码开关都打到右边。

在这里插入图片描述

这样就可以给板子进行上电了。我是这样连接的。

在这里插入图片描述

上电后风扇会转速很快这个不用慌,稍后稳定后风扇的噪声还是很小的,几乎听不到,大约等待30s左右就可以在显示屏上看到界面了。

在这里插入图片描述

通过鼠标和键盘输入密码

账号选择:HwHiAiUser

密码为:Mind@123

登录上之后,进入命令行模式。

4.3、联网

通过输入命令查看当前周边环境的wifi

```

nmcli d wifi list

```

在这里插入图片描述

我的是苹果手机,打开热点,热点名称并没有在此列表中,不能连接苹果手机的热点不是很友好。被迫无奈只能取出电话卡放在了安卓手机上打开热点让香橙派连接。

当查找到对应的网址时,使用下面命令行就可以实现联网了,下面命令行中有我的WIFI名称和密码不可照搬,要更换成自己的账号和密码

```

sudo nmcli d wifi connect XS-MIFI-03C5 password 12345678

```

其中XS-MIFI-03C5为wifi名称要替换成自己的

12345678为密码也要替换成自己的。

那么说为什么是这个呢,可以查看使用说明,即可一目了然。

```

nmcli d -h

```

在这里插入图片描述

查看一下IP,命令是

```

nmcli

```

在这里插入图片描述

我的IP为192.168.1.102,后面使用SSH登录时会用到,可以也先记一下。

这时连上网了,就可以ping一下验证一下网络是否ok.

那就ping一下香橙派的官网吧。

在这里插入图片描述

发现提示如下选项代表没有成功。原因是ping命令在运行中采用了ICMP协议,需要发送ICMP报文。 但是只有root用户才能建立ICMP报文。也就是说目前我们权限不够,升级为root权限即可。

升级root权限命令

```

su

```

这样再ping就OK了。

在这里插入图片描述

现在我们是使用键盘和鼠标都接在了香橙派上,当然还有一种方式登录方式是使用SSH。

使用软件MobaXterm进行登录。

在这里插入图片描述

这里会让再次输入香橙派的密码,密码为Mind@123,输入密码时无任何反应,继续进行即可直到输入完成回车即可。

登录成功。

在这里插入图片描述

这样就可以通过在自己电脑上通过wifi控香橙派了。

五、YOLO算法

5.1、 目标检测算法介绍

‌YOLO算法,全称‌You Only Look Once,是一种实时目标检测算法,以其快速的处理速度和简洁的网络结构著称。该算法通过一次前向传播即可完成对图像中多个目标的检测,包括物体的位置和类别信息。YOLO的核心思想是将目标检测任务转换为一个回归问题,通过一个单一的神经网络同时预测边界框的位置和类别概率。YOLO算法的优势在于其处理速度快,能够实时处理视频流,适用于需要快速响应的场景如自动驾驶汽车的视觉系统中。此外,YOLO算法的统一输出格式使得系统设计更为简洁,便于部署到嵌入式设备中。YOLO算法的发展经历了多个版本,从最初的YOLOv1到最新的YOLOv8,每个版本都在提高检测精度和速度上进行优化。例如,YOLOv4引入了‌CutMix和马赛克数据增强方法,提高了模型对小物体的检测能力。

5.2、算法概念介绍

本次实验我们用的是YOLOv5,主要的算法如下:

* 主干网络:基于CSPNet(Cross Stage Partial Network)设计,如CSPDarknet53,用于提取图像特征。

* 颈部网络:如PANet(Path Aggregation Network),用于进一步融合不同层次的特征信息。

* 检测头:用于生成最终的检测结果,包括目标的边界框和类别概率。

* 多尺度训练:通过在不同尺寸的图像上进行训练,提高模型对不同尺度目标的检测能力。

* 数据增强:采用多种数据增强技术,如Mosaic数据增强,增加训练数据的多样性和鲁棒性。

* 网络混合精度训练:支持混合精度训练,可以在保证精度的同时提高训练速度。

* 自适应锚框:根据训练数据自动调整锚框尺寸,提高边界框的预测精度。

YOLOv5的性能评估:

* 平均精度(mAP):用于多类别目标检测的评估指标,计算每个类别的精度并取平均值。

* 召回率(Recall):模型正确预测的正类别目标数量与总正类别目标数量的比率。

* F1分数:精度和召回率的调和平均值,用于综合评估模型性能。

* 精度(Precision):模型正确预测的正类别目标数量与总预测正类别目标数量的比率。

F1-Confidence Curve就是F1-Score随着Confience逐渐增高而变化的曲线。是性能评估的重要方法之一。

在这里插入图片描述

通过途中看出表现还算良好。

5.3、在香橙派下载Yolov5

安装命令如下

```

git clone https://github.com/ultralytics/yolov5

```

当因网络问题下载失败时,需要设置一下代理。

可参考下面的代码方便设置代理。将以下代码保存为 ~/.proxy.sh 文件,文件内容根据自己实际需要修改。

```

#!/bin/bash

HOST=192.168.3.6 # 代理服务IP

PORT=7890 # 代理服务端口

export http_proxy=http:// H O S T : HOST: HOST:PORT

export https_proxy=http:// H O S T : HOST: HOST:PORT

```

编写完代码后,运行一下命令

```

source ~/.proxy.sh

```

5.4、Python环境安装

香橙派中自带了Python3环境,如果没带需要自行安装

5.5、见证奇迹泡一下试试

运行如下代码

```

python detect.py --source ./data/images/car.jpg

```

在这个过程中需要安装一个依赖包等跑完就好,不用理会。

这个图片是我在抖音上截取的一个发生车祸的截图,然后对其进行识别。

我们可以data/image/car.jpg中查看图片。

在这里插入图片描述

可以看到对车和人进行了识别检测,检测结果的概率用小数来表示准确性。

再试一张。

在这里插入图片描述

实验成功,还算不错。

六、体验与总结

从开箱到搭建完成,整体体验下来,有几个点感觉非常不错,就是环境搭建的过程很顺利,用户文档写的很友好,主要是这个是我首次在开发板上跑通Yolo,还是很有意义的。

6.1、优点:

  1. 板子有WIFI和以太网,有网络后续就可以拓展一下,将识别的结果做一些处理呈现到上位机或者云端的这样的一个上下联动的应用场景。
  2. 性能高,能够满足基本的算法识别要求。
  3. 噪音非常小,是我见到的噪音最小的板子了。

6.2、缺点:

  1. 不支持连接苹果手机的热点。
  2. 技术支持途径不易方便查找。
  3. 资料编写的内容是详细的,但是不易阅读,建议改成网页的格式。
  4. 没有电源开关,只能拔充电器感觉多少有点暴力,有的时候并不是特别想拔充电器。

最后祝香橙派越来越好,越来越完善!

七、参考链接

* 香橙派AIPro产品介绍页面:http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-AIpro.html

* 香橙派AIPro资料下载页面:http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html

* 香橙派AIPro Ubuntu镜像:https://pan.baidu.com/s/1csbugZiKsuL_NHCOmyi1BA?pwd=ma6z

* 香橙派AIPro 用户手册: https://pan.baidu.com/s/1clOIklNzsHSigsrZzeWWMA?pwd=va56

* yolov5开源仓库地址:https://link.csdn.net/?target=https%3A%2F%2Fgithub.com%2Fultralytics%2Fyolov5

pi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html

* 香橙派AIPro Ubuntu镜像:https://pan.baidu.com/s/1csbugZiKsuL_NHCOmyi1BA?pwd=ma6z

* 香橙派AIPro 用户手册: https://pan.baidu.com/s/1clOIklNzsHSigsrZzeWWMA?pwd=va56

* yolov5开源仓库地址:https://link.csdn.net/?target=https%3A%2F%2Fgithub.com%2Fultralytics%2Fyolov5

* MobaXterm终端工具官网:https://mobaxterm.mobatek.net/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/48566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学术研究、研究热点、最新前沿】如何跟踪最新的论文

1.跟踪arxiv 使用https://www.arxivdaily.com/接收每天的推送。 2.跟踪热点文章的引用 使用semantic scholar。 3.跟踪某个学术大佬或者主题 3.1 使用web of science。 3.2 使用文献鸟 4.跟踪某个期刊

迭代学习笔记

一、迭代学习定义和分类 1、直观理解 迭代学习一般应用于重复性的场景。比如控制一个单自由度的小车以特定的速度曲线移动到指定位置,整个时间是10s,控制频率是0.01,那么整个控制序列就会有1000个点。这1000个点在10s内依次发出&#xff0c…

小白快速入门量化交易的自学路径

今年已然过去一半了,年初立的flag都实现了吗? 据我多年来的观察,很多小白萌新开始学习量化,特别是年初的时候立下“宏图大志”,但有相当一部分最终没能"上岸",从入门到放弃,从然后到没…

抽象java入门1.5.2

前言: 坑留下来是为了补的 正片: 一、面向对象特性 二、面向对象编程详细展开 这些没有加粗的方法究竟来源哪? 在上一期的提示中,我们说了这些方法来源于面向对象编程的一个特性 验证: 第一步:我们先…

代码随想录算法训练营第23天|39. 组合总和、40.组合总和II、131.分割回文串

打卡Day23 1.39. 组合总和2.40.组合总和II3.131.分割回文串 1.39. 组合总和 题目链接:39. 组合总和 文档讲解: 代码随想录 这道题和昨天做的组合之和由两个区别:被选的元素没有数量限制,同时被选的元素可以无限重复,…

JavaScript:节流与防抖

目录 一、前言 二、节流(Throttle) 1、定义 2、使用场景 3、实现原理 4、代码示例 5、封装节流函数 三、防抖(Debounce) 1、定义 2、使用场景 3、实现原理 4、代码示例 5、封装防抖函数 四、异同点总结 一、前言 …

Adobe Premiere Pro(Pr)安装包软件下载

一、简介 Adobe Premiere Pro(简称Pr)是由Adobe公司开发的一款功能强大的视频编辑软件。它支持多平台使用,包括Windows和Mac系统,并且拥有良好的兼容性和高效的性能。Premiere Pro不仅提供了视频剪辑、特效添加、音频处理等基本功…

《从C/C++到Java入门指南》- 9.字符和字符串

字符和字符串 字符类型 Java 中一个字符保存一个Unicode字符,所以一个中文和一个英文字母都占用两个字节。 // 计算1 .. 100 public class Hello {public static void main(String[] args) {char a A;char b 中;System.out.println(a);System.out.println(b)…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 二进制游戏(200分)- 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

Transformer之Vision Transformer结构解读

论文地址 代码地址 写在前面 什么是Transformer呢?就是把符号向量化为Token, 再和位置编码求和或者做阿达玛积,最后送入一定层数的Attention Block构成的Encoder和Decoder,就完成了Transformer的基础功能。 那么,把上…

idea2019版本创建JavaWeb项目并配置Tomcat步骤

一、创建JavaWeb项目 1.新建项目File->New->Project 2. 选择JavaWeb应用在New Project窗口中选择Java后勾选Java EE中的Web Application后点击next即可 3.设置项目名称后点击finish即可 4.至此项目创建完成,检查文件是否齐全,开始配置Tomcat 二、…

IDEA工具中Java语言写小工具遇到的问题

一:读取excel时遇到 org/apache/poi/ss/usermodel/WorkbookProvider 解决办法: 在pom.xml中把poi的引文包放在最前面即可(目前就算放在最后面也不报错了,不知道为啥) 二:本地maven打包时,没有…

base SAS programing学习笔记(read raw files2)

使用COLUMN input和FORMATTED input读入固定位置的外部文件;如下图所示, 1.COLUMN input (按列数读入外部文件数据) 使用column input 不需要按从左到右的顺序读取外部文件的数值,可以是任意读取,也可以重…

STM32F103定时器中断详解

目录 目录 目录 前言 一.什么是定时器 1.1 STM32F103定时器概述 1.2基本定时器 1.2通用定时器 1.3高级定时器 1.4 三种定时器区别 基本定时器(Basic Timer) 通用定时器(General-Purpose Timer) 高级定时器(Advanced Ti…

ubuntu2204配置anacondacuda4090nvidia驱动

背景 某个机房的几台机器前段时间通过dnat暴露至公网后被入侵挖矿,为避免一些安全隐患将这几台机器执行重装系统操作; 这里主要记录配置nvidia驱动及cuda&anaconda。 步骤 大概分为几个步骤 禁用nouveau配置grub显示菜单install nvidia-driveri…

基于Python+Django,开发的一个在线教育系统

一、项目简介 使用Python的web框架Django进行开发的一个在线教育系统! 二、所需要的环境与组件 Python3.6 Django1.11.7 Pymysql Mysql pure_pagination DjangoUeditor captcha xadmin crispy_forms 三、安装 1. 下载项目后进入项目目录cd Online-educ…

配置RIPv2的认证

目录 一、配置IP地址、默认网关、启用端口 1. 路由器R1 2. 路由器R2 3. 路由器R3 4. Server1 5. Server2 二、搭建RIPv2网络 1. R1配置RIPv2 2. R2配置RIPv2 3. Server1 ping Server2 4. Server2 ping Server1 三、模拟网络攻击,为R3配置RIPv2 四、在R…

Linux:Linux权限

目录 1. Linux权限的概念 2. Linux权限管理 2.1 文件访问者的分类 2.2 文件类型和访问权限 2.2.1 文件类型 2.2.2 基本权限 2.3 文件权限值的表示方法 2.4 文件访问权限的相关设置方法 2.4.1 chmod 2.4.2 chown 2.4.3 chgrp 2.4.4 umask 3. file指令 4. Linux目…

base SAS programming学习笔记13(Array)

1.Array array-name{dimension} <elements> array-name&#xff1a;向量名称 dimension&#xff1a;向量长度&#xff0c;默认为1&#xff1b; elements:列出变量名&#xff0c;变量名要么全是数值变量或者全是字符变量 array-name和variable不能相同&#xff1b;也不能和…

C++面试题之判断一个变量是不是指针

对于变量其实对应的就是内存&#xff0c;而内存并没有表明一定是什么数据类型&#xff0c;所以判断变量是否是一个指针其实是一个参数类型匹配问题&#xff0c;在C中支持函数的重载&#xff0c;那么不同的函数因为参数的不同从而匹配不同函数调用过程。 编译器在进行函数匹配调…