智慧光伏巡检-无人机光伏板缺陷检测数据集 航拍光伏面板脏污遮挡检测数据集,
2153张,yolo,voc,coco三种标注方式
图像尺寸:640*640
类别数量:4类
训练集图像数量:1761; 验证集图像数量:196; 测试集图像数量:196
类别名称: 每一类图像数 ,每一类标注数
shadow - 阴影:912, 2159
dust - 灰尘:197, 333
birddrop - 鸟粪:1480, 9445
vegetation - 植被:648, 1490
image num: 2153
模型代码:模型训练使用yolov11n训练,50个epoch训练结果,map如描述图所示。
qt界面:运行界面采用pyqt编写,本项目已经训练好模型,配置好环境后可直接使用,运行效果见描述图像
航拍光伏面板脏污遮挡检测数据集
数据集总览表
| 项目 | 参数 |
|---|---|
| 数据集名称 | 航拍光伏面板脏污遮挡检测数据集 |
| 图像总数量 | 2153张 |
| 图像尺寸 | 640×640 |
| 标注格式 | YOLO、VOC、COCO |
| 类别总数 | 4类 |
| 训练集 | 1761张 |
| 验证集 | 196张 |
| 测试集 | 196张 |
| 
| 类别代号 | 中文名称 | 包含该类图像数 | 标注总数 |
|---|---|---|---|
| shadow | 阴影 | 912 | 2159 |
| dust | 灰尘 | 197 | 333 |
| birddrop | 鸟粪 | 1480 | 9445 |
| vegetation | 植被 | 648 | 1490 |
yolo配置文件 pv_defect.yaml
train:./train/imagesval:./val/imagestest:./test/imagesnc:4names:0:shadow1:dust2:birddrop3:vegetation关键词
光伏板缺陷检测,无人机航拍光伏巡检,光伏板鸟粪,光伏板灰尘脏污,光伏板阴影遮挡,光伏周边植被,YOLO光伏数据集,太阳能板脏污识别,电站智能化巡检,航拍目标检测
标签
#光伏面板脏污遮挡数据集#无人机光伏巡检#太阳能板缺陷检测#电站AI检测#yolo数据集
应用场景![]()
- 无人机光伏电站巡检,自动识别光伏板鸟粪、灰尘脏污、阴影遮挡、周边植被侵扰,评估组件发电损耗
- 地面光伏电站运维,快速定位脏污故障点位,指导清洗维护作业
- 光伏视觉检测算法科研,论文基线模型训练
- 光伏智能检测软件开发,图片、视频、摄像头实时检测脏污遮挡缺陷
- 渔光互补、山地光伏等复杂航拍场景下的光伏组件状态识别
完整系统代码
1、训练代码 train.py
fromultralyticsimportYOLOif__name__=="__main__":#加载yolov11n预训练权重model=YOLO("yolo11n.pt")results=model.train(data="pv_defect.yaml",epochs=50,imgsz=640,batch=8,device=0,workers=2,mosaic=1.0)#模型评估model.val()#单张图片推理model.predict(source="pv_test.jpg",save=True)2、PyQt5可视化界面代码 main_ui.py
importsysfromultralyticsimportYOLOfromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QWidget,QVBoxLayout,QPushButton,QFileDialog,QLabel,QTableWidget,QTableWidgetItem,QComboBox,QGroupBox,QGridLayout)fromPyQt5.QtGuiimportQPixmap,QImagefromPyQt5.QtCoreimportQtclassPvDetectWindow(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("基于YOLOv11的航拍太阳能面板脏污检测系统")self.resize(1200,900)self.model=YOLO("best.pt")self.img_path=Nonecentral_widget=QWidget()self.setCentralWidget(central_widget)main_layout=QGridLayout(central_widget)#图片显示区域self.img_label=QLabel()self.img_label.setFixedSize(700,600)self.img_label.setStyleSheet("border:1px solid #999999;")main_layout.addWidget(self.img_label,0,0,2,1)#文件导入面板file_group=QGroupBox("文件导入")file_layout=QVBoxLayout(file_group)self.btn_img=QPushButton("选择图片文件")self.btn_img.clicked.connect(self.load_image)file_layout.addWidget(self.btn_img)main_layout.addWidget(file_group,0,1)#检测结果面板res_group=QGroupBox("检测结果")res_layout=QVBoxLayout(res_group)self.info_label=QLabel("用时:0.000s 目标数目:0")self.cb_class=QComboBox()self.cb_class.addItems(["全部","shadow","dust","birddrop","vegetation"])res_layout.addWidget(self.info_label)res_layout.addWidget(self.cb_class)main_layout.addWidget(res_group,1,1)#表格self.table=QTableWidget()self.table.setColumnCount(5)self.table.setHorizontalHeaderLabels(["序号","文件路径","类别","置信度","坐标位置"])main_layout.addWidget(self.table,2,0,1,2)defload_image(self):file,_=QFileDialog.getOpenFileName(self,"打开图片","","图片(*.jpg *.png *.jpeg)")iffile:self.img_path=filepix=QPixmap(file).scaled(self.img_label.size(),Qt.KeepAspectRatio)self.img_label.setPixmap(pix)self.run_detect(file)defrun_detect(self,imgfile):res=self.model.predict(imgfile,save=False)self.table.setRowCount(0)boxes=res[0].boxes num=len(boxes)self.info_label.setText(f"用时:{res[0].speed['inference']/1000:.3f}s 目标数目:{num}")cls_names=self.model.namesforidx,boxinenumerate(boxes):x1,y1,x2,y2=map(int,box.xyxy[0])conf=float(box.conf[0])cls_id=int(box.cls[0])cls_name=cls_names[cls_id]row=self.table.rowCount()self.table.insertRow(row)self.table.setItem(row,0,QTableWidgetItem(str(idx+1)))self.table.setItem(row,1,QTableWidgetItem(imgfile))self.table.setItem(row,2,QTableWidgetItem(cls_name))self.table.setItem(row,3,QTableWidgetItem(f"{conf*100:.2f}%"))self.table.setItem(row,4,QTableWidgetItem(f"[{x1},{y1},{x2},{y2}]"))if__name__=="__main__":app=QApplication(sys.argv)win=PvDetectWindow()win.show()sys.exit(app.exec_())运行环境依赖:
ultralytics>=8.3.0 pyqt5>=5.15 torch>=2.0将训练完成得到best.pt权重放到同目录,直接运行main_ui.py即可打开可视化检测系统。