基于YOLOV8+Pyqt5无人机航拍太阳能电池板检测系统

1.YOLOv8的基本原理

YOLOv8是一种前沿的目标检测技术,它基于先前YOLO版本在目标检测任务上的成功,进一步提升了性能和灵活性,在精度和速度方面都具有尖端性能。在之前YOLO 版本的基础上,YOLOv8 引入了新的功能和优化,使其成为广泛应用中各种物体检测任务的理想选择。主要的创新点包括一个新的骨干网络、一个新的 Ancher-Free 检测头和一个新的损失函数,可以在从 CPU 到 GPU 的各种硬件平台上运行。YOLO各版本性能对比:
在这里插入图片描述
每个模型的准确率如下:
在这里插入图片描述
开源网址:https://github.com/ultralytics/ultralytics

2.PyQt5简介

  1. PyQt5 是 Digia的一套 Qt5 应用框架与 python 的结合,同时支持 python2.x和 python3.x。这里使用的是Python 3.x。Qt库由 Riverbank Computing开发,是最强大的GUI库之一 。
  2. PyQt5 是由一系列 Python 模块组成。超过 620 个类,6000 函数和方法。能在诸如 Unix、Windows 和Mac OS 等主流操作系统上运行。
  3. PyQt5 有两种证书,GPL和 商业证书。

PyQt5 的官网链接:https://riverbankcomputing.com/news
当然也可以在 Python 这里查看教程:https://pythonspot.com/pyqt5/

2.1 window 平台安装:

PyQt5 有两种安装方式,一种是从官网下载源码安装,另外一种是使用 pip 安装。

#1、安装 PyQt5
pip install PyQt5 -i https://pypi.douban.com/simple
#2、安装 PyQt5-tools
pip install PyQt5-tools -i https://pypi.douban.com/simple

注:这里有个需要注意的地方,PyQt5 版本的不同,安装成功之后,PyQt5 相关文件夹以及目录也会存在一些差异。Mac平台或者其他平台自行百度

3. 数据集准备与训练

该数据集于2024年4月26日格林尼治时间上午8:56通过roboflow.com导出
Roboflow是一个端到端计算机视觉平台,可以帮助您
*在计算机视觉项目上与你的团队合作
*收集和组织图像
*理解和搜索非结构化图像数据
注释和创建数据集
*导出、训练和部署计算机视觉模型
随着时间的推移,使用主动学习来改进你的数据集
对于最先进的计算机视觉训练笔记本,您可以使用此数据集,请访问https://github.com/roboflow/notebooks
要查找超过10万个其他数据集和预训练模型,请访问https://universe.roboflow.com
该数据集包括5699张图像。
pv面板以YOLOv8面向对象检测格式注释。
对每张图像进行如下预处理:
未使用图像增强技术。
由Roboflow用户提供
许可:CC BY 4.0

在这里插入图片描述
在这里插入图片描述
图片数据的存放格式如下,在项目目录中新建datasets目录,同时将检测的图片分为训练集与验证集放入Data目录下。
在这里插入图片描述
同时我们需要新建一个data.yaml文件,用于存储训练数据的路径及模型需要进行检测的类别。YOLOv8在进行模型训练时,会读取该文件的信息,用于进行模型的训练与验证。data.yaml的具体内容如下:

#path: ../datasets/roboflowtrain: D:\Solar Panels\Solar Panels\Solar Panels\datasets\image_chips\train\images
val: D:\Solar Panels\Solar Panels\Solar Panels\datasets\image_chips\test\images
test: D:\Solar Panels\Solar Panels\Solar Panels\datasets\image_chips\train\images
# number of classes
nc: 1# Classes
names: ['panels' ]

注:train与val后面表示需要训练图片的路径,建议直接写自己文件的绝对路径。
数据准备完成后,通过调用train.py文件进行模型训练,epochs参数用于调整训练的轮数,batch参数用于调整训练的批次大小【根据内存大小调整,最小为1】,代码如下:

#coding:utf-8
from ultralytics import YOLO# 加载模型
model = YOLO("yolov8n.pt")  # 加载预训练模型
# Use the model
if __name__ == '__main__':# Use the modelresults = model.train(data='D:\Solar Panels\Solar Panels\Solar Panels\datasets\image_chips\data.yaml', epochs=250, batch=4)  # 训练模型

4.训练结果评估

在深度学习中,我们通常用损失函数下降的曲线来观察模型训练的情况。YOLOv8在训练时主要包含三个方面的损失:定位损失(box_loss)、分类损失(cls_loss)和动态特征损失(dfl_loss),在训练结束后,可以在runs/目录下找到训练过程及结果文件,如下所示:
在这里插入图片描述

4.1 各损失函数作用说明

  • 定位损失box_loss:预测框与标定框之间的误差(GIoU),越小定位得越准;
  • 分类损失cls_loss:计算锚框与对应的标定分类是否正确,越小分类得越准;
  • 动态特征损失(dfl_loss):DFLLoss是一种用于回归预测框与目标框之间距离的损失函数。在计算损失时,目标框需要缩放到特征图尺度,即除以相应的stride,并与预测的边界框计算Ciou Loss,同时与预测的anchors中心点到各边的距离计算回归DFLLoss。这个过程是YOLOv8训练流程中的一部分,通过计算DFLLoss可以更准确地调整预测框的位置,提高目标检测的准确性。

本文训练结果如下:
在这里插入图片描述
常用PR曲线来体现精确率和召回率的关系,本文训练结果的PR曲线如下。mAP表示Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值。mAP@.5:表示阈值大于0.5的平均mAP,可以看到本文模型目标检测的mAP@0.5值为0.987,结果还是不错的。
在这里插入图片描述

5.界面展示

在这里插入图片描述

  • 支持图片、视频及摄像头进行检测,同时支持图片的批量检测
  • 界面可实时显示目标位置、目标总数、置信度、用时等信息;
  • 支持图片或者视频的检测结果保存;

6.检测结果显示

在这里插入图片描述

7.结束语

以上便是博主开发的基于YOLOV8+Pyqt5无人机航拍太阳能电池板检测系统的部分内容,由于博主能力有限,难免有疏漏之处,希望小伙伴能批评指正。关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!

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

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

相关文章

字符串函数、内存函数——补充

目录 前言 1、strchr函数 1-1 函数介绍 1-1-1 函数功能 1-1-2 函数原型 1-1-3 函数参数 1-1-4 所属库 1-1-5 函数返回值 1-2 函数简单使用 1-3 函数使用场景 1-4 函数的使用总结 1-4-1 注意事项 2、strrchr函数 2-1 函数介绍 2-1-1 函数功能 2-1-2 函数原型 2…

【18】JAVASE-IO专题【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇 Lecture:波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。…

时间序列分析-无模型

本节内容介绍了无模型的时间序列分析方法,包括时间序列作趋势图、逐年分解、时间序列分解、直方图、ACF与PACF图,主要是作图。 首先导入数据和对应的库: import pandas as pd import numpy as np import matplotlib.pyplot as plt import se…

与Apollo共创生态:让汽车更聪明,让出行更简单

目录 前言Apollo X 企业解决方案Studio X 企业协同开发工具链Apollo开放平台携手伙伴共创生态Apollo开发平台生态共创计划 前言 百度2013年开始布局自动驾驶,2017年推出全球首个自动驾驶开放平台Apollo。目前百度Apollo已经在自动驾驶、智能汽车、智能地图等领域拥有…

Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步

1. Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步 文章目录 1. Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步每博一文案1.1 什么是 Bean 的生命周期1.2 Bean 的生命周期 …

Flask 3 保姆级教程(一):快速上手

一、创建项目 PyCharm 中新建项目 创建完成后会出现这么个项目 以下是代码解析: # 导入了 Flask 类 from flask import Flask# 创建了一个 Flask web 应用的实例,并将其赋值给变量 app # __name__ 是一个特殊的 Python 变量,它表示当前模块…

第49期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

变电站自动化控制系统应用案例分析

变电站自动化控制系统介绍 变电站自动化控制系统用于大中型企业变电站项目,这类企业变压器多,日耗电量大。把多个变压器集中到一个电器平台上,集中管理分析,优化厂区用电管理,从而达到集中控制、集中分析、集中管理的…

VOS系统录音文件REC转MP3,REC录音转WAV与WAV转MP3具体项目中实现方式,以及占用空间变化!

前面讲解了VOS3000系统的录音REC转MP3的安装步骤,不清楚的,可以移步这里查看:http://t.csdnimg.cn/OXNT9 或者 点击这里查看安装步骤,下面继续讲下他们的使用方法,以及实际项目中的运用,首先我们需要明确我…

Android中的屏幕刷新机制(动画视频形象说明机制)

一,刷新率和帧率,60hz和60fps的区别 在Android系统中,刷新率和帧率是两个不同的概念,它们各自在显示过程中扮演着不同的角色。以下是对它们的详细解释: 刷新率,单位是Hz,是指屏幕在一秒内刷新…

STK与matlab交互 Astrogator模块(13)

一、背景介绍 在本文介绍一个场景,五颗蓝方卫星和一颗红方卫星,在两个小时之内,使用神经网络等人工智能算法,实现一个轨道追踪的问题,其中接口输入是六颗卫星在J2000坐标系下的坐标,接口输出是该六颗卫星沿…

windows下安装onlyoffice

文章目录 1、 安装ErLang2、 安装rabbitmq3、 安装postgresql4、 安装onlyoffice(社区版) 1、 安装ErLang 下载地址:https://erlang.org/download/otp_win64_24.2.exe opt_wind64_24.2.exe 直接运行,一步一步安装 2、 安装rabbitmq 下载地址&#xf…

.NET C# ORM 瀚高数据库

SqlSugar ORM SqlSugar 是一款 老牌 .NET开源ORM框架,由果糖大数据科技团队维护和更新 ,开箱即用最易上手的ORM 优点 :【生态丰富】【高性能】【超简单】 【功能全面】 【多库兼容】【适合产品】 【SqlSugar视频教程】 支持 &#xff1a…

linux部署java1.8(java17)

两种方式: 方式一 1.输入查找命令: yum -y list java*2.输入安装命令: yum install -y java-1.8.0-openjdk.x86_643.测试是否已经安装: java -version方式二: 点击链接进入官网:https://www.oracle.com/…

H3C无线AP管理命令

先上链接 01-AP管理命令-新华三集团-H3C display wlan ap all

redis安装配置

简单启动一个redis容器 拉取redis镜像:(更多版本看https://hub.docker.com/_/redis/tags) sudo docker pull redis:7.2.4简单启动一个redis服务 ,–requirepass 指定密码 123456 sudo docker run -d \ --name redis \ --restartalways \ -p 6379:6379…

Java 如何避免代码中大量的 if else 判断

文章目录 Java 如何避免代码中大量的 if else 判断解决方案1.策略模式2.工厂模式3.策略模式 工厂模式4.提前 return(适用于分支逻辑很简单的 if else)5.枚举 Java 如何避免代码中大量的 if else 判断 在代码中经常会出现 if else 判断,如下…

当众演讲技巧的方法有哪些(3篇)

当众演讲技巧的方法有哪些(3篇) 当众演讲技巧的方法有很多,下面我将分三篇来详细阐述其中的一些关键技巧: **篇:准备与开场技巧 充分准备:提前规划演讲内容,明确主题和目标,准备详…

【蓝桥杯C++A组省三 | 一场勇敢的征途与致19岁的信】

随着4.13西大四楼考场的倒计时结束… 就这样蓝桥杯落幕了 省三的名次既满足又不甘心,但又确乎说得上是19岁途中的又一枚勋章 从去年得知,纠结是否要报名、到寒假开始战战兢兢地准备、陆续开始创作博客,记录好题和成长……感谢你们的关注&…

APT预警攻击平台截获Nday

APT预警攻击平台截获Nday 2024年4月26日 设备漏洞【漏洞利用】H3C Magic R100任意代码执行漏洞(CVE-2022-34598) 0000 : 0010 : 0020 : 0030 : 0040 : 0050 : 0060 : 0070 :6F 72…