光伏太阳能板缺陷检测
创建于 2025 年 1 月 1 日
项目介绍
光伏太阳能板缺陷检测系统是一个从数据集准备、模型训练到 GUI 推理演示都比较完整的计算机视觉项目。项目目录中包含 train.py、detect.py、val.py、tune.py、experiment.py、prepare_dataset.py、dataset_quality.py、models/yolov8_cbam.py 和 gui/main_window.py,说明它不仅有最终检测界面,也保留了训练、评估、调参、数据质量检查和实验对比流程。
系统支持识别四类光伏板缺陷:裂纹、热斑、污染和蜗牛纹。这些缺陷都会影响发电效率和组件寿命,人工巡检容易受经验、角度和光照影响。项目以 YOLOv8n 为基础,引入 CBAM 注意力机制,让模型更关注弱纹理、小目标和局部异常区域,再通过 PyQt5 桌面界面把检测能力交给普通用户操作。
项目架构
项目采用“数据处理 + 模型训练 + 推理检测 + GUI 展示”的结构。数据层按照 YOLO 格式组织为 images/train、images/val、images/test 与对应 labels 目录,标注文件使用类别 ID 和归一化坐标。prepare_dataset.py 负责数据集划分,dataset_quality.py 可以检查异常样本、重复样本和标注质量,必要时将问题样本移入隔离目录。
模型层以 YOLOv8n 为基线,在 models/yolov8_cbam.py 中扩展 CBAM 注意力模块,并通过 experiment.py、tune.py、utils/benchmark.py 做实验、调参和性能对比。推理层由 detect.py 和 utils/inference.py 承担,GUI 层由 gui/main_window.py 启动,默认优先加载 runs/train/solar_defect_recommended/weights/best.pt,也支持用户手动选择 .pt 权重。
核心功能
- 四类缺陷检测:识别裂纹、热斑、污染和蜗牛纹,输出类别、置信度和检测框。
- YOLOv8-CBAM 模型:在轻量 YOLOv8n 上加入注意力机制,针对光伏缺陷的弱纹理和局部异常增强特征表达。
- 数据质量检查:提供数据划分、异常样本检查、重复样本处理和模拟数据生成工具。
- 训练与评估:支持重新训练、验证、超参数调优、对比实验和消融实验,保留训练曲线与评估指标。
- 桌面检测界面:PyQt5 GUI 可直接加载权重,执行单图或批量检测,适合答辩和现场演示。
- 多输入推理:支持图片、批量目录、视频文件和摄像头等输入方式。
功能截图



快速上手
项目基于 Python 3.9+。进入 code/ 目录后创建环境并执行 pip install -r requirements.txt。如果只是展示检测效果,通常运行 python gui/main_window.py 即可打开界面;如果需要重新训练模型,先准备 YOLO 格式数据集,再运行 python train.py。没有真实数据时可用 python utils/generate_sample_data.py 生成模拟数据。
总结
这个项目的完整度比普通“跑一次模型”的视觉案例更高:它同时覆盖数据准备、质量检查、模型改进、训练评估、调参实验和桌面应用。对于光伏巡检、工业缺陷检测、YOLOv8 改进实验和计算机视觉毕业设计来说,都是比较扎实的参考实现。