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

相关推荐
王哈哈^_^3 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
咔叽布吉6 小时前
【论文阅读笔记】CamoFormer: Masked Separable Attention for Camouflaged Object Detection
论文阅读·笔记·目标检测
深度学习lover9 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
Eric.Lee202114 小时前
yolo v5 开源项目
人工智能·yolo·目标检测·计算机视觉
阿_旭18 小时前
基于YOLO11/v10/v8/v5深度学习的煤矿传送带异物检测系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·目标检测·yolo11
极智视界19 小时前
无人机场景数据集大全「包含数据标注+划分脚本+训练脚本」 (持续原地更新)
算法·yolo·目标检测·数据集标注·分割算法·算法训练·无人机场景数据集
LNTON羚通1 天前
CPU算法分析LiteAIServer视频智能分析平台视频智能分析:抖动、过亮与过暗检测技术
大数据·目标检测·音视频·视频监控
深度学习lover1 天前
<项目代码>YOLOv8 夜间车辆识别<目标检测>
人工智能·yolo·目标检测·计算机视觉·表情识别·夜间车辆识别
苦瓜汤补钙1 天前
论文阅读:DynamicDet: A Unified Dynamic Architecture for Object Detection
论文阅读·人工智能·目标检测
然.燃1 天前
什么是目标检测?
人工智能·目标检测·计算机视觉