基于YOLOV8+Pyqt5光伏太阳能电池板目标检测系统

在这里插入图片描述

1、YOLOV8算法

YOLOv8 是当前效果较好的目标检测 算法,它的核心网络来源于 DarkNet-53,该网络初次在 YOLOv3[11] 中被引入,并深受 ResNet[12] 的影响。DarkNet-53 使用了残差机制,并连续添加了卷积模块来加强其功能性。 这 53 层的构造使其在性能上与 ResNet-152 相当, 但其处理速度加快了一倍。基于 DarkNet-53 ,YOLOv8 做了进一步的调整, 融入了 C2f 组件,从而进一步加强了性能并减少了模型的大小。
本 文 选 用 轻 量 级 的 YOLOv8n 。 YOLOv8n 是从 YOLOv8 算法派生的轻量级 参数结构。它包括骨干网、颈网和预测输出 头。骨干网络利用卷积操作从 RGB 图像中 提取各种尺度的特征。同时, 颈部网络的作 用是合并骨干网络提取的特征。特征金字塔 结构(特征金字塔网络,FPN[13])通常被实 现以将低级特征聚合成高级表示。头部层负 责预测目标类别,并利用三组不同大小的检测检测器来选择和检测图像内容。

2、数据集

高质量太阳能光伏电池板可见光图像数据集,标签包含鸟粪,清洁,脏污,电气损坏,物理损坏,积雪覆盖六类。用于目标检测,缺陷检测,异物检测。
训练集有大量数据增强图片,包含14478张图片,14478个yolo格式的标签。
nc: 6
names: [‘bird-drop’, ‘clean’, ‘dusty’, ‘electrical-damage’, ‘physical-damage’, ‘snow-covered’]
已分为测试集训练集验证集,可直接训练。

软件开发环境:python3.9
系统界面开发:pyqt5---------项目文件说明---------环境配置步骤【共两步】:
【注意:软件存放路径最好不要有中文。】---------【第一步:安装python3.9】---------
方法一【推荐】:
先安装ananconda软件,官网地址:https://www.anaconda.com/download
安装完成后,在conda命令窗口,使用命令"conda create -n py39 python=3.9"创建3.9的虚拟环境
然后激活虚拟环境“conda activate py39”,然后再进行第二步依赖库的安装。
方法二:
直接在python官网下载pyhon3.9的exe文件,安装即可。---------【第二步:安装软件所需的依赖库】---------
(注意:输入命令前,命令行需先进入项目目录的路径下,不然会提示找不到文件)
方法一:【推荐】
直接运行installPackages.py一键安装第三方库的脚本。命令为:python installPackages.py
方法二: 运行下方命令
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple---------【运行程序】---------
按照以上两步环境配置完成后,直接运行MainProgram.py文件即可打开程序。
命令为:python MainProgram.py---------【模型训练】---------
将文件【datasets//data.yaml】中train,val数据集的绝对路径改为自己项目数据集的绝对路径
train: E:\MyCVProgram\FireSmokeDetection\datasets\train
val: E:\MyCVProgram\FireSmokeDetection\datasets\valid
test: E:\MyCVProgram\FireSmokeDetection\datasets\test然后运行train.py文件即可开始进行模型训练,训练结果会默认保存在runs目录中。

3、训练效果展示

在这里插入图片描述

4、训练结果评估

在深度学习中,我们通常用损失函数下降的曲线来观察模型训练的情况。YOLOv8在训练时主要包含三个方面的损失:定位损失(box_loss)、分类损失(cls_loss)和动态特征损失(dfl_loss),在训练结束后,可以在runs/目录下找到训练过程及结果文件,如下所示:
在这里插入图片描述
各损失函数作用说明:定位损失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.87以上,平均值为0.89,结果还是很不错的。
在这里插入图片描述

5、软件基本界面如下图所示

在这里插入图片描述

6、结束语

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

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

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

相关文章

VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以…

稀碎从零算法笔记Day35-LeetCode:字典序的第K小数字

要考虑完结《稀碎从零》系列了哈哈哈 这道题和【LC.42 接雨水】,我愿称之为【笔试界的颜良&文丑】 题型:字典树、前缀获取、数组、树的先序遍历 链接:440. 字典序的第K小数字 - 力扣(LeetCode) 来源&#xff1…

(文章复现)考虑分布式电源不确定性的配电网鲁棒动态重构

参考文献: [1]徐俊俊,吴在军,周力,等.考虑分布式电源不确定性的配电网鲁棒动态重构[J].中国电机工程学报,2018,38(16):4715-47254976. 1.摘要 间歇性分布式电源并网使得配电网网络重构过程需要考虑更多的不确定因素。在利用仿射数对分布式电源出力的不确定性进行合…

鸿蒙HarmonyOS应用开发之HID DDK开发指导

场景介绍 HID DDK(HID Driver Develop Kit)是为开发者提供的HID设备驱动程序开发套件,支持开发者基于用户态,在应用层开发HID设备驱动。提供了一系列主机侧访问设备的接口,包括创建设备、向设备发送事件、销毁设备。 …

负载均衡策略和技术的基本指南

什么是负载均衡器? 负载均衡器将传入的网络流量分布到多个服务器上,以确保没有单个服务器承受过多的负载。通过有效地传播请求,它们提高了应用程序的容量和可靠性。 下面是一些使用负载均衡器的常见场景: 高并发流量:当应用程序面临大量用户请求时,负载均衡器可以将流量分…

【4】单链表(有虚拟头节点)

【4】单链表(有虚拟头节点) 1、虚拟头节点2、构造方法3、node(int index) 返回索引位置的节点4、添加5、删除6、ArrayList 复杂度分析(1) 复杂度分析(2) 数组的随机访问(3) 动态数组 add(E element) 复杂度分析(4) 动态数组的缩容(5) 复杂度震荡 7、单链…

七、函数的使用方法

函数的调用 nameinput()#输入参数并赋值name print(name)#d打印name 格式:返回值函数名(参数) def get_sum(n):#形式参数计算累加和:param n::return: sumsum0for i in range(1,n1):sumiprint…

9.Python类与对象

1 面向对象 类和对象都是面向对象中的重要概念。面向对象是一种编程思想, 即按照真实世界的思维方式构建软件系统。 例如,在真实世界的校园里有学生和老师,学生有学号、姓名、所 在班级等属性(数据),还有…

【苹果MAC】苹果电脑 LOGI罗技鼠标设置左右切换全屏页面快捷键

首先键盘设置->键盘快捷键 调度中心 设置 f1 f2 为移动一个空间(就可以快捷移动了) 想要鼠标直接控制,就需要下载官方驱动,来设置按键快捷键,触发 F1 F2 安装 LOGI OPTIONS Logi Options 是一款功能强大且便于使用…

前端虚拟滚动列表 vue虚拟列表

前端虚拟滚动列表 在大型的企业级项目中经常要渲染大量的数据,这种长列表是一个很普遍的场景,当列表内容越来越多就会导致页面滑动卡顿、白屏、数据渲染较慢的问题;大数据量列表性能优化,减少真实dom的渲染 看图:绿色…

设计模式之工厂方法模式精讲

工厂方法模式又叫虚拟构造函数(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建性工作推迟到子类中。 工厂模式可以分为简单工厂…

第六十三回 呼延灼月夜赚关胜 宋公明雪天擒索超-大模型BERT、ERNIE、GPT和GLM的前世今生

神行太保戴宗报信,关胜人马直奔梁上泊,请宋江早早收兵,解梁山之难。宋江派了花荣到飞虎峪左边埋伏,林冲到右边埋伏,再叫呼延灼带着凌振,在离城十里附近布置了火炮,然后才令大军撤退。 李成闻达…

Kubernetes(K8s)技术解析

1. K8s简介 Kubernetes(简称K8s)是一个开源的容器编排平台,旨在简化容器化应用程序的部署、扩展和管理。为开发者和运维人员提供了丰富的功能和灵活的解决方案,帮助他们更轻松地构建、部署和管理云原生应用程序。以下是关于Kubern…

Oracle 低代码平台 Apex 最新版本 23.2 安装过程

趁春节快结束前,安装了一把APEX ,到目前为此,APEX最新版本为23.2,23.2和21版本有一些变化,只是用于验证,我 是使用的单独模式,没有安装TOMAT,下面列一下安装过程: 1.环境…

云服务器8核32G配置报价大全,腾讯云、阿里云和京东云

8核32G云服务器租用优惠价格表,云服务器吧yunfuwuqiba.com整理阿里云8核32G服务器、腾讯云8核32G和京东云8C32G云主机配置报价,腾讯云和京东云是轻量应用服务器,阿里云是云服务器ECS: 阿里云8核32G服务器 阿里云8核32G服务器价格…

阿里云通用算力型u1云服务器配置性能评测及价格参考

阿里云服务器u1是通用算力型云服务器,CPU采用2.5 GHz主频的Intel(R) Xeon(R) Platinum处理器,ECS通用算力型u1云服务器不适用于游戏和高频交易等需要极致性能的应用场景及对业务性能一致性有强诉求的应用场景(比如业务HA场景主备机需要性能一致)&#xf…

Kafka入门到实战-第五弹

Kafka入门到实战 Kafka常见操作官网地址Kafka概述Kafka的基础操作更新计划 Kafka常见操作 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://kafka.apache.org/Kafka概述 Apache Kafka 是一个开源的分布式事件流平台&…

Unity 使用TrailRenderer制作拖尾效果

使用TrailRenderer实现拖尾效果,具体操作步骤如下: 1、创建一个空对象 在Unity场景中创建一个空对象 2、添加TrailRenderer组件 选择步骤1创建的空对象,然后在Inspector面板中点击“Add Component”按钮,搜索并添加TrailRende…

中间件安全(apache、tomcat)

靶场: vulfocus Apache Apache HTTP Server 是美国阿帕奇( Apache )基金会的一款开源网页服务器。该服务器具有快速、可靠且可通过简单的API进行扩充的特点,发现 Apache HTTP Server 2.4.50 中针对 CVE - 2021 - 41773 的修复…

算法学习——LeetCode力扣图论篇3(127. 单词接龙、463. 岛屿的周长、684. 冗余连接、685. 冗余连接 II)

算法学习——LeetCode力扣图论篇3 127. 单词接龙 127. 单词接龙 - 力扣(LeetCode) 描述 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> … -> sk: 每一对相…