智慧光伏巡检-无人机光伏板缺陷检测数据集 航拍光伏面板脏污遮挡检测数据集2153张yolovoccoco三种标注方式图像尺寸:640*640类别数量:4类训练集图像数量:1761; 验证集图像数量:196 测试集图像数量:196类别名称: 每一类图像数 每一类标注数shadow - 阴影912, 2159dust - 灰尘197, 333birddrop - 鸟粪1480, 9445vegetation - 植被648, 1490image num: 2153模型代码模型训练使用yolov11n训练50个epoch训练结果map如描述图所示。qt界面运行界面采用pyqt编写本项目已经训练好模型配置好环境后可直接使用运行效果见描述图像航拍光伏面板脏污遮挡检测数据集数据集总览表项目参数数据集名称航拍光伏面板脏污遮挡检测数据集图像总数量2153张图像尺寸640×640标注格式YOLO、VOC、COCO类别总数4类训练集1761张验证集196张测试集196张resultsmodel.train(datapv_defect.yaml,epochs50,imgsz640,batch8,device0,workers2,mosaic1.0)#模型评估model.val()#单张图片推理model.predict(sourcepv_test.jpg,saveTrue)2、PyQt5可视化界面代码 main_ui.pyimportsysfromultralyticsimportYOLOfromPyQt5.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.modelYOLO(best.pt)self.img_pathNonecentral_widgetQWidget()self.setCentralWidget(central_widget)main_layoutQGridLayout(central_widget)#图片显示区域self.img_labelQLabel()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_groupQGroupBox(文件导入)file_layoutQVBoxLayout(file_group)self.btn_imgQPushButton(选择图片文件)self.btn_img.clicked.connect(self.load_image)file_layout.addWidget(self.btn_img)main_layout.addWidget(file_group,0,1)#检测结果面板res_groupQGroupBox(检测结果)res_layoutQVBoxLayout(res_group)self.info_labelQLabel(用时0.000s 目标数目0)self.cb_classQComboBox()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.tableQTableWidget()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_pathfilepixQPixmap(file).scaled(self.img_label.size(),Qt.KeepAspectRatio)self.img_label.setPixmap(pix)self.run_detect(file)defrun_detect(self,imgfile):resself.model.predict(imgfile,saveFalse)self.table.setRowCount(0)boxesres[0].boxes numlen(boxes)self.info_label.setText(f用时{res[0].speed[inference]/1000:.3f}s 目标数目{num})cls_namesself.model.namesforidx,boxinenumerate(boxes):x1,y1,x2,y2map(int,box.xyxy[0])conffloat(box.conf[0])cls_idint(box.cls[0])cls_namecls_names[cls_id]rowself.table.rowCount()self.table.insertRow(row)self.table.setItem(row,0,QTableWidgetItem(str(idx1)))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__:appQApplication(sys.argv)winPvDetectWindow()win.show()sys.exit(app.exec_())运行环境依赖ultralytics8.3.0 pyqt55.15 torch2.0将训练完成得到best.pt权重放到同目录直接运行main_ui.py即可打开可视化检测系统。