基于深度学习yolov8n太阳能电池板缺陷检测及光伏检测

inspection

识别类别数量及类目

模型来检测太阳能在这里插入图片描述
电池板上的缺陷或状态。该模型可以识别七个类别:

- bird_drop
- bird_feather
- cracked
- dust_partical
- healthy
- leaf
- snow
- 这里是这些词的翻译:

- **bird_drop**: 鸟粪
- **bird_feather**: 鸟羽毛
- **cracked**: 裂开的
- **dust_particle**: 尘埃颗粒
- **healthy**: 健康的
- **leaf**: 叶子
- **snow**:

本项目包括inspection:

  • 用于训练、验证和测试的数据集(托管在HuggingFace)。
  • 训练脚本及重复或自定义训练过程的说明。
  • 推理脚本(基于图像和通过网络摄像头进行实时推理)。
  • 适用于边缘设备(如树莓派)的轻量级模型。

目录

  • 特性
  • 项目结构
  • 安装与要求
  • 数据集
  • 模型训练
  • 测试与评估
  • 运行推理
  • 性能结果
  • 未来工作
  • 致谢
    在这里插入图片描述

特性

  • 七类检测,涵盖各种太阳能电池板状态。
  • 轻量级模型(YOLOv11n),大约有2.59M参数,适用于边缘设备的实时推理。
  • 通过网络摄像头进行实时检测(webcam.py)。
  • 可以使用提供的数据或自定义数据集进行训练。
  • 支持导出为ONNX和TorchScript,便于广泛部署。

项目结构

your_project/
├── assets/
│   └── solarpanel.gif          <-- 本README中引用的GIF
├── weights/
│   └── yolo_nano_solar_panel.pt  <-- YOLOv11n预训练权重
├── dataset/
│   └── data.yaml               <-- 示例数据集YAML(根据需要修改)
├── training.py                 <-- 用于训练模型的脚本
├── image_test.py               <-- 用于单张图像推理的脚本
├── webcam.py                   <-- 用于实时摄像头检测的脚本
├── requirements.txt            <-- 项目依赖
└── README.md                   <-- 本文件

注意:根据需要调整文件和文件夹的名称,以匹配您的实际设置。
在这里插入图片描述
在这里插入图片描述

安装与要求

  1. 克隆该仓库或下载文件。

  2. 安装所需的包:

    pip install -r requirements.txt
    

    包括:

    • torch
    • ultralytics
    • opencv-python
    • numpy
      (以及您可能需要的任何其他包)
  3. 检查GPU支持(可选,但推荐):

    • 如果计划加速训练或进行高强度推理,请确保您的设备有CUDA兼容的GPU。
    • 如果仅使用CPU或低功耗设备,YOLOv11n仍然适用,但训练可能会较慢。

数据集

我们使用Louisnguyen的Solar_Panels_Condition数据集。该数据集包含7个类别的边界框注释。

  • 训练集:约11,209个边界框。
  • 验证集:约2,899个边界框。
  • 一些图像有分割标签,但这里只使用边界框。如果您想适应分割任务,需要相应地调整数据。

下载数据集并将其放置在dataset/文件夹中(或更新data.yaml文件以指向数据存放的位置)。

模型训练

  1. 配置dataset/文件夹中的data.yaml(或您选择的路径),使其匹配您的数据集结构。
  2. 将YOLOv11n权重(如果有的话)放入./weights/yolo_nano_solar_panel.pt。
  3. 如果从头开始训练,需要一个基线模型检查点。
  4. 运行:
    python training.py
    
    该脚本会:
    • 加载YOLOv11n模型。
    • 训练100个epoch,批量大小为16。
    • 将结果(损失、mAP、混淆矩阵等)记录在./runs/train/文件夹中。
    • 导出最终权重和可选的ONNX/TorchScript模型。

测试与评估

要评估模型在验证集上的表现,可以运行:

python image_test.py

在脚本中,您将看到:

  • model.val():对数据集进行快速评估。
  • results = model(image_path):对样本图像进行推理。
  • 输出指标(mAP、框损失、分类损失等)。

您可以修改image_test.py,指向不同的图像或使用图像文件夹。

运行推理

  1. 单图像推理:

    • 将image_path设置为您想要测试的图像。
    • 运行:
      python image_test.py
      
    • 脚本将打印指标并显示图像上的检测结果。
  2. 实时摄像头推理:

    • 连接摄像头或使用笔记本的内置摄像头。
    • 运行:
      python webcam.py
      
    • 您将看到实时视频流,检测到的物体会显示边界框和类别标签。
    • 按‘q’退出,按‘s’保存截图。

性能结果

在100个epoch的训练后,最终模型的表现为:

  • mAP50: ~0.64
  • mAP50-95: ~0.36
  • 精度(P):~0.67
  • 召回率(R):~0.647

每个类别的性能(mAP50约):

  • bird_feather: ~0.995(非常高)
  • dust_partical: ~0.75
  • leaf: ~0.76
  • ……而cracked和healthy等类别的表现约在0.43-0.48范围内。

观察:

  • bird_feather的检测接近完美。
  • cracked和healthy的召回率较低,可能表示混淆或数据不足。
  • 在实时测试中,模型可以在4070 GPU上达到约120 FPS(在高端硬件上更快,在边缘设备上更慢)。

未来工作

  • 数据增强:探索更先进的增强方法(Mosaic、MixUp、RandAugment)以处理类别不平衡。
  • 超参数调整:调整学习率、动量、权重衰减,以获得最佳结果。
  • 更大的模型变种:如果硬件支持,可以测试YOLOv11s或YOLOv11m以提高精度。
  • 错误分析:通过添加更多的针对性数据样本或使用专门的增强方法,改善低性能类别的检测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值