当前位置: 首页 > news >正文

树莓派基础以及YOLOv8模型的应用

目录

所需应用下载链接:

树莓派家谱:

树莓派硬件:

树莓派操作系统类别与烧录:

        操作系统类别:

        系统烧录:

树莓派基础实操:

树莓派首次开机与关机:

  树莓派如何用网线与树莓派的连接:

利用无线网络连接:

VNC远程控制树莓派:

1.树莓派上面安装VNC服务器:

2.电脑上安装VNC查看器:

3.树莓派和笔记本进行连接:

树莓派设置静止ip地址:

 树莓派换源:

为什么要更换树莓派源:

树莓派与window之间的文件传输:

YOLOv8在树莓派上的应用:

YOLOv8网络结构与YOLOv5之间的对比:

C3与C2f的区别:

主干网络的区别:

解码头的区别:

yolov8的代码讲解:


感谢mmYOLO的图例

所需应用下载链接:

树莓派官网:

Raspberry Pi

树莓派与window之间传输数据软件:

两个都能很好使用

WinSCP软件下载:WinSCP :: Official Site :: Free SFTP and FTP client for Windows

MobaXterm:https://mobaxterm.mobatek.net/

远程控制树莓派:

VNC:Download VNC Viewer by RealVNC®

SD卡格式化工具(SDFormatter)

链接:https://pan.baidu.com/s/1RoAkkW8nNaOCGMrPIpCFvg

提取码:wujq

链接:https://pan.baidu.com/s/1KQLYxaxAPAaz-zB2eeoA5g

提取码:b54j

树莓派家谱:

树莓派硬件:

博主使用的是树莓派4代B版,搭载1.5GHz 64位四核Cortex-A72 CPU,内存可选1/2/4/8GB,支持蓝牙5.0、USB 3.0、双4K输出,供电为5V Type-C,其余配置与3代B+相近。​

摄像机模块排线:3.5mm圆孔耳机线的右边

视频输出接口:2个mini-HDMI

再右边是type-c的电源接口

40针GPIO连接器

支持POE供电:4个小针脚

sd卡插在树莓派的背面

树莓派操作系统类别与烧录:

        操作系统类别:

管理计算机硬件与软件资源的计算机的程序

eg:Win11系统、苹果系统、UNIX、Linux

UNIX:需要专业的硬件设备

Linux:规避了UNIX和苹果系统的缺点;通过命令行操作;用于服务器;安卓系统基于Linux开发而来

树莓派官方系统:Raspberry Pi OS

树莓派非官方系统:Ubuntu、LibreElec、RetroPie、TLXOS

        系统烧录:

SD卡、读卡器、系统(官网上找)

        SD卡格式化工具(SDFormatter)

链接:https://pan.baidu.com/s/1KQLYxaxAPAaz-zB2eeoA5g

提取码:b54j

链接:https://pan.baidu.com/s/1RoAkkW8nNaOCGMrPIpCFvg

提取码:wujq

准备32Gb的内存卡

首先要将内容卡格式化:

rasberrypi.org-Software-Raspberry Pi OS

直接下载:(16:16)

每天十分钟带你学会树莓派--入门篇-03系统烧录_哔哩哔哩_bilibili

官方系统烧录:(13:25)

每天十分钟带你学会树莓派--入门篇-03系统烧录_哔哩哔哩_bilibili

树莓派基础实操:

树莓派首次开机与关机:

电源:5V-3A

sd卡(tf卡):用于存储系统---建议8g以上

(+读卡器)

鼠标键盘:有线usb接口的(无线可能影响自检和驱动)

显示屏+HDMI线

接线注意事项:

1.连接显示器不显示:

(顺序相反屏幕会什么都不显示)

2.树莓派一直重启:

3.关机方式:

方法一:

左上角的黑色窗口(相当于windows里面的cmd)

sudo poweroff^C
关闭电源sudo shutdown -h now
立刻关机sudo shutdown -r now
立刻重启sudo shutdown -h +2
2分钟后关机

方法二:

  树莓派如何用网线与树莓派的连接:

1.连线:网线一端插树莓派上,一端插电脑上

2.共享:将电脑的网络共享给树莓派

3.查找:查找树莓派的IP地址

cmd窗口中:

arp -a

4.利用树莓派的IP地址连接树莓派

树莓派学习教程基础篇05:无显示屏键鼠等外设,一根网线远程连接树莓派,十分钟玩转系列之基础篇_哔哩哔哩_bilibili

利用无线网络连接:

树莓派网络配置信息

country=CN

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

network={

ssid=*无线网名字*

psk=*密码*

priority=10

}

无线网名字与密码都为电脑热点的名字、密码

将树莓派连接上笔记本的热点:(7:37)

远程桌面连接:(8:51)

树莓派中安装工具xrdp:(9:15)

sudo apt-get install xrdp

下载好安装工具,继续电脑远程桌面连接:(11:23)

每天十分钟带你学会树莓派--基础篇 06 RDP远程控制树莓派(无网线连接)_哔哩哔哩_bilibili

VNC远程控制树莓派:

每天十分钟带你学会树莓派 基础篇07 树莓派VNC连接,配置树莓派的静态IP地址_哔哩哔哩_bilibili

1.树莓派上面安装VNC服务器:

(4:04)

每天十分钟带你学会树莓派 基础篇07 树莓派VNC连接,配置树莓派的静态IP地址_哔哩哔哩_bilibili

法一:桌面模式

法二:命令行模式

sudo raspi-config

2.电脑上安装VNC查看器:

(7:09)

每天十分钟带你学会树莓派 基础篇07 树莓派VNC连接,配置树莓派的静态IP地址_哔哩哔哩_bilibili

 vnc官网:RealVNC® - Remote access software for desktop and mobile | RealVNC

3.树莓派和笔记本进行连接:

运行树莓派的VNC,命令行:

vncserver

树莓派设置静止ip地址:

每天十分钟带你学会树莓派 基础篇07 树莓派VNC连接,配置树莓派的静态IP地址_哔哩哔哩_bilibili

1.查找默认网关:(12:25)

cmd:

ipconfig

默认网关不一定为最后一行

2.分配给树莓派的ip地址:(12:40)

3.修改树莓派的DHCP配置文件:(13:40)

树莓派的终端窗口:

sudo nano /ect/dhcpcd.conf

打开的文件末尾添加上配置信息:

interface wlan0static ip_address=你的ip地址 /24static routers=你的默认网关static domain_name_servers=你的默认网关

这里的无线网关是因为老师使用的笔记本连接的是wifi

粘贴完成后按

ctrl+s 写入

ctrl+x 退出

重启树莓派

 树莓派换源:

Raspberry Pi OS 中国软件源 | 树莓派实验室

视频教学:全网最全、最详细树莓派换源?!是的,没有之一!(附笔记文本)_哔哩哔哩_bilibili

树莓派系统有三种版本,每个版本的源又分为32位与64位,需要根据自己树莓派的实际情况进行换源操作

stretch

buster

bullseye

getconf LONG_BIT #查看树莓派系统多少位  32/64

cat /etc/os-release #查看系统版本

uname -a #查看系统构架   armxxx   

一定要注意自己树莓派是什么系统以及版本

为什么要更换树莓派源:

更换软件源(package repository)的本质,是把 apt 系统解析到的 base-URL 从官方默认的 http://archive.raspberrypi.org 与 http://raspbian.raspberrypi.org 替换为地理位置更近、网络质量更优、同步延迟更低的镜像站。此举可通过缩短 RTT、增大可用带宽、降低丢包率,显著减少 TCP 握手与 TLS 协商时间,并提高 HTTP/2 多路复用的效率,从而使软件包索引(InRelease、Packages.xz)与二进制文件(.deb)的下载时间从分钟量级降至秒量级。实测表明,在 100 Mbit/s 教育网出口下,官方源平均 RTT≈280 ms、带宽≈1.2 MB/s,切换至清华大学 TUNA 镜像后 RTT≈8 ms、带宽可跑满 11 MB/s,速度提升接近一个数量级。
此外,镜像站通常对上游仓库做 hourly 级 rsync 同步,延迟控制在 1 h 以内,与官方源保持版本一致性;同时提供多架构(armhf/arm64)与多分支(main/contrib/non-free/rpi)完整快照,可在本地软件包版本冻结、回退或构建私有 fork 时提供确定性来源

列如博主使用的系统:

1、编辑 /etc/apt/sources.list 文件(软件源)sudo chmod 777 /etc/apt/sources.list
sudo nano /etc/apt/sources.list2、源代码前面都加一个 # 用来注销源代码,bookworm 系统用以下内容取代:
deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates main contrib non-free-firmware

然后 Ctrl+x 退出,接着 y 保存,再按一次ctrl退出。

树莓派与window之间的文件传输:

通过在window上训练的模型转移到树莓派上,实现树莓派yolov8的应用

视频教学:

如何实现树莓派与Windows之间传输文件?_哔哩哔哩_bilibili

【终端】全能终端神器MobaXterm_哔哩哔哩_bilibili

WinSCP软件下载:WinSCP :: Official Site :: Free SFTP and FTP client for Windows

MobaXterm:https://mobaxterm.mobatek.net/

YOLOv8在树莓派上的应用:

网络结构的一些基础概念在这片文章有所提及:https://blog.csdn.net/Klusfsc/article/details/144015984?spm=1011.2415.3001.5331

YOLOv8网络结构与YOLOv5之间的对比:

模型训练都是在window上训练的,树莓派的算力不足以跑模型训练

YOLOv8的网络结构:

YOLOv5的网络结构:

        YOLOv8的Head部分从原先的耦合头变成了解耦头结构,简化了模型结构并提高了推理速度。
        YOLOv8在LOSS计算方面采用了TaskAlignedAssigner正样本分配策略,并引入了Distribution Focal Loss,确保了检测结果的准确性和鲁棒性。

        YOLOv8的Backbone类似于YOLOv5的Backbone,不同点是将C3换成了C2F,以及将第一个Convolution层设置为kernel size等于3,stride为2(YOLOv5的Kernel Size为6,padding为2)。

C3与C2f的区别:

主干网络的区别:

C3有个残差的链接在左侧

(chat)

分组卷积(Group Convolution)

分组卷积是一种特殊的卷积操作,它将输入通道分割成多个组,每个组单独进行卷积操作,最后将结果合并。这种做法减少了不同通道之间的信息交互,可以有效降低计算复杂度。例如,在PyTorch中,可以通过设置groups参数来实现分组卷积,如nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding, groups=in_channel)。

深度可分离卷积(Depthwise Separable Convolution)

深度可分离卷积是一种更为极端的分组卷积形式,其中每个组的通道数为1。它由两部分组成:深度卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolution)。深度卷积只对每个通道进行卷积操作,而逐点卷积则通过1x1卷积来调整输出通道数。这种方法显著减少了参数量和计算量,是轻量化模型设计中常用的技巧。

瓶颈结构(Bottleneck)

瓶颈结构是一种在深度卷积层前后添加1x1卷积层的策略,旨在减少卷积层的输入和输出维度,从而降低计算复杂度。通常,瓶颈结构包括一个1x1卷积来减少通道数,接着是一个较大的卷积核(如3x3)来提取特征,最后再通过一个1x1卷积恢复到原始通道数。这种结构在ResNet和Inception等网络中广泛应用。

Split 操作

在神经网络中,Split 操作用于将一个输入张量分割成多个输出张量。在ncnn框架中,Split 操作是一个无参数无权重的操作,其输出张量的数量和形状由输入张量的维度和分割参数决定。例如,split(x, 2)将输入张量x分割成两个等大小的输出张量。

Concat 操作

Concat 操作与Split相反,它将多个输入张量沿特定维度连接成一个输出张量。在ncnn中,Concat操作也是一个无参数无权重的操作,它根据输入张量的形状和连接参数来决定输出张量的维度。例如,concat([x1, x2])将两个输入张量x1和x2沿通道维度连接起来。

Partial Convolution(PConv)

Partial Convolution是一种新的卷积技术,旨在减少冗余计算和内存访问,特别是在处理部分掩码图像时。PConv通过将输入张量分割成处理区域和未处理区域,只对处理区域进行卷积操作,从而提高了效率。这种技术在某些神经网络中被用于加速推理。

简而言之:

C2f 用“劈叉-并行-串接”代替 C3 的“整块-串行”,同样深度却更少参数、更快推理、更好梯度回传

解码头的区别:

yolov5从主干特征提取网络送入到卷积层,

boundingbox:边界框  4个数值表示

object:  置信度   1个数值表示

cls:类别 有几类就有几个数值

相比之下yolov8

边界框回归用的是clou损失函数

置信度与分类:二进制交叉熵的一个损失函数

yolov8的代码讲解:

本文不赘述代码内容,有需求可以参考下面的视频

https://www.bilibili.com/video/BV1Ms421u7VH/?spm_id_from=333.337.search-card.all.click&vd_source=e150fe027448aa29e27528beba4d0950

yolov5的代码讲解:https://blog.csdn.net/Klusfsc/article/details/144015984?spm=1011.2124.3001.6209

http://www.dtcms.com/a/475208.html

相关文章:

  • ueditor for wordpress太原百度seo排名软件
  • 网站左边logo图标怎么做网站开发需求分析怎么写
  • llm模型训练防遗忘与同义词训练理解
  • 晒豆网站建设新泰网页设计
  • ssh 密钥怎么配置不同网站用不同密钥,对应不同Git仓库以及帐号
  • 网站建设网站设计哪家专业企业管理系统的构成
  • Razor VB 逻辑:深入理解与最佳实践
  • 怎样做易支付网站网页组件
  • 绥化网站建设兼职python 创建wordpress
  • 陕西交通建设集团蓝商公司网站seo咨询
  • 带偏置的三级运放仪表放大电路与仿真
  • 深度学习优化算法深入分析:从 SGD 到 LAMB
  • 建外贸营销型网站WordPress的light
  • 案例较少如何做设计公司网站视频网站开发费用
  • Shiro
  • 【2025PC端多模态大模型部署推荐】
  • [数据集][xlsx]电力变压器油色谱数据集介绍
  • 基于LoRa的果园智能灌溉无线控制系统的设计(论文+源码)
  • 网站自助服务建设策划佛山电脑培训班哪里有
  • 网站的统计代码是什么意思交互设计要学什么
  • 视频网站怎么做服务器网页代码怎么写
  • 站点可用性监测实验
  • 教育一对一直播网站建设有做火币网这种网站的吗
  • JVM字节码与类的加载(二):类加载器
  • 两轮自平衡车原理详解与代码实现
  • 手机网站开源系统wordpress 商务主题
  • 网站建设体会心得wordpress文章图片本地化
  • 长春市做网站的公司比较好的网页制作公司
  • 网站推广营销策略erp系统有哪些软件
  • 深圳网站官网建设wordpress如何建栏目