当前位置: 首页 > news >正文

深度学习YOLOv11无人机风力发电叶片损伤检测系统-无人机风机损伤缺陷检测数据集-风机设备损伤、脏污检测数据集

无人机风机损伤缺陷检测数据集-风机设备损伤、脏污检测数据集,
2191张,提供yolo,voc,coco三种标注方式
图像尺寸:371*586
类别数量:2类
训练集图像数量:1534; 验证集图像数量:431; 测试集图像数量:226
类别名称: 每一类图像数 ,每一类标注数
damage: 1852,6380
dirt: 407,422
image num: 2191

模型代码
采用 YOLOv11n 网络训练
训练轮次:80 个 epoch
提供全部训练 + 测试源代码
训练精度 mAP 效果如图所示

PyQt5 界面功能

界面使用 PyQt5 开发,提供全部源码(.ui、.qrc、.py 及图标文件)
支持图片检测、视频检测、摄像头实时检测
界面实时显示:目标位置、目标总数、置信度等信息

支持检测结果保存导出
操作简单直观,无需命令行


运行环境:Python=3.8、opencv-python、PyQt5、torch
支持 Windows、Linux 系统

一、项目完整信息文档

风机设备损伤、脏污检测数据集

  • 总图像:2191张
  • 图像尺寸:371 × 586
  • 类别:2类
    • damage(损伤):图像数1852,标注框6380
    • dirt(脏污):图像数407,标注框422
  • 数据集划分
    数据集图片数量
    训练集(train)1534
    验证集(val)431
    测试集(test)226
  • 标注格式:YOLO‑txt、VOC‑xml、COCO‑json 三格式
  • 训练网络:YOLOv11‑n
  • 训练轮次:epoch=80
  • 指标:mAP@0.5 = 0.724

二、YOLOv11训练简易完整代码

1.数据集yaml配置文件wind_defect.yaml

# wind_defect.yamlpath:./datasets/wind_defecttrain:images/trainval:images/valtest:images/testnames:0:damage1:dirt

2.训练脚本train.py

fromultralyticsimportYOLO# 加载YOLOv11n轻量化模型model=YOLO("yolo11n.pt")# 开始训练results=model.train(data="wind_defect.yaml",epochs=80,imgsz=640,batch=8,device=0,workers=4,patience=10,project="runs/train",name="wind_blade_detect")

3.测试评估脚本test.py

fromultralyticsimportYOLO model=YOLO("./runs/train/wind_blade_detect/weights/best.pt")metrics=model.val(split="test")print(f"mAP@0.5:{metrics.box.map50:.3f}")

4.单张图像预测脚本predict.py

fromultralyticsimportYOLO model=YOLO("./runs/train/wind_blade_detect/weights/best.pt")#图片检测res=model.predict(source="test.jpg",save=True,conf=0.5)#视频检测#res = model.predict(source="test.mp4",save=True,conf=0.5)#摄像头实时检测#res = model.predict(source=0,save=True,conf=0.5)

三、PyQt5可视化推理界面简易源码

实现:图片、视频、摄像头检测;输出目标数目、置信度、xy坐标
main_ui.py

importsysimportcv2fromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QPushButton,QLabel,QFileDialog,QComboBox,QTextEdit)fromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQt,QThread,pyqtSignalfromultralyticsimportYOLO#加载训练好的权重model=YOLO("./runs/train/wind_blade_detect/weights/best.pt")classDetThread(QThread):send_img=pyqtSignal(object)send_result=pyqtSignal(list)def__init__(self,source):super().__init__()self.source=source self.run_flag=Truedefrun(self):cap=cv2.VideoCapture(self.source)whileself.run_flag:ret,frame=cap.read()ifnotret:breakres=model(frame,conf=0.5)boxes=res[0].boxes det_info=[]forboxinboxes:x1,y1,x2,y2=map(int,box.xyxy[0])conf=float(box.conf[0])cls=int(box.cls[0])det_info.append([x1,y1,x2,y2,conf,cls])cv2.rectangle(frame,(x1,y1),(x2,y2),(255,0,0),2)cv2.putText(frame,f"{model.names[cls]}{conf:.2f}",(x1,y1-8),cv2.FONT_HERSHEY_SIMPLEX,0.5,(255,0,0),1)self.send_img.emit(frame)self.send_result.emit(det_info)cap.release()classMainWindow(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("基于YOLOv11的风机损伤检测系统")self.resize(1200,800)self.init_ui()self.det_thread=Nonedefinit_ui(self):#图像显示区self.img_label=QLabel(self)self.img_label.setGeometry(20,60,750,600)self.img_label.setStyleSheet("border:1px solid #999;")#按钮self.btn_img=QPushButton("图片检测",self)self.btn_img.setGeometry(820,60,180,40)self.btn_img.clicked.connect(self.detect_image)self.btn_video=QPushButton("视频检测",self)self.btn_video.setGeometry(820,120,180,40)self.btn_video.clicked.connect(self.detect_video)self.btn_cam=QPushButton("摄像头检测",self)self.btn_cam.setGeometry(820,180,180,40)self.btn_cam.clicked.connect(self.detect_camera)#结果文本框self.result_text=QTextEdit(self)self.result_text.setGeometry(820,250,320,380)self.result_text.setPlaceholderText("检测结果、坐标、置信度信息展示")defshow_frame(self,frame):rgb=cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)h,w,ch=rgb.shape bytes_per_line=ch*w q_img=QImage(rgb.data,w,h,bytes_per_line,QImage.Format_RGB888)self.img_label.setPixmap(QPixmap.fromImage(q_img).scaled(self.img_label.size(),Qt.KeepAspectRatio))defshow_result(self,det_list):self.result_text.clear()total=len(det_list)self.result_text.append(f"目标总数目:{total}\n")foridx,iteminenumerate(det_list):x1,y1,x2,y2,conf,cls=item cls_name=model.names[cls]self.result_text.append(f"[{idx+1}]类别:{cls_name}置信度:{conf:.2f}\n"f"坐标:xmin={x1},ymin={y1},xmax={x2},ymax={y2}\n")defdetect_image(self):path,_=QFileDialog.getOpenFileName(self,"打开图片","","Image(*.jpg *.png *.jpeg)")ifnotpath:returnframe=cv2.imread(path)res=model(frame,conf=0.5)boxes=res[0].boxes info=[]forboxinboxes:x1,y1,x2,y2=map(int,box.xyxy[0])conf=float(box.conf[0])cls=int(box.cls[0])info.append([x1,y1,x2,y2,conf,cls])cv2.rectangle(frame,(x1,y1),(x2,y2),(255,0,0),2)cv2.putText(frame,f"{model.names[cls]}{conf:.2f}",(x1,y1-8),cv2.FONT_HERSHEY_SIMPLEX,0.5,(255,0,0),1)self.show_frame(frame)self.show_result(info)defdetect_video(self):path,_=QFileDialog.getOpenFileName(self,"打开视频","","Video(*.mp4 *.avi)")ifnotpath:returnself.det_thread=DetThread(path)self.det_thread.send_img.connect(self.show_frame)self.det_thread.send_result.connect(self.show_result)self.det_thread.start()defdetect_camera(self):self.det_thread=DetThread(0)self.det_thread.send_img.connect(self.show_frame)self.det_thread.send_result.connect(self.show_result)self.det_thread.start()if__name__=="__main__":app=QApplication(sys.argv)win=MainWindow()win.show()sys.exit(app.exec_())

依赖安装命令

pipinstallultralytics opencv-python pyqt5
http://www.cnnetsun.cn/news/4327592.html

相关文章:

  • 开源视频智能体:开发者掌控视频处理全流程
  • 基于YOLOv8的工地高空作业安全检测实战与改进
  • 招行信用卡中心IT笔试复盘:题型分布与备考策略
  • 可拓浏览器v7.9资源内容整理与使用指南
  • Claude API提示词工程实战:从基础到可复用模板设计
  • AI教学新范式:用teach skill让AI成为真正的私人教师
  • B站2019秋招技术笔试题拆解:考点分析与2026校招备战指南
  • 首部AIGC长剧《后西游记》定档:拆解角色一致性与工业化制作
  • 小米校招测试开发笔试题二全解析:从用例设计到移动端专项
  • 大模型对话体验:从上下文管理到本地部署的关键实践
  • MATLAB实现DQPSK调制解调:差分编码与误码率仿真详解
  • 两级式三相光伏并网逆变器Simulink仿真建模与调试指南
  • 嵌入式Linux下LVGL小屏界面优化:从显示驱动到性能调优
  • 基于Notebook的RAG实战指南:从零搭建检索增强生成知识库
  • HyperMesh零基础入门:前处理与网格划分核心流程详解
  • 设计师也能用 Git?从版本控制到设计资产协作落地指南
  • 百度核心系统工程师笔试考点解析:操作系统、C++与分布式系统
  • 基于Pytorch的对偶生成对抗网络图像去雾实践
  • AI一句话生成量化策略:提示词工程+Python回测实战
  • 金融科技研发岗笔试全解析:从算法到业务场景的备考指南
  • 会空翻不稀奇,会选时机才是关键:机器人动作决策系统解析
  • 从零到一:开关电源模块设计实战指南(原理图、PCB、调试全流程)
  • Quicker+豆包+DeepSeek-Harness:构建截图多模态识别推理自动化链路
  • AI风险工程化治理:从模型评估、数据脱敏到输出过滤的落地实践
  • AI编程Agent省钱真相:从工具选择到工程化落地
  • 运维人的智能班长,解析 AI Agent 如何接管重复性故障处理
  • VMware Workstation Pro虚拟机安装与使用全流程详解
  • 度小满金融秋招研发岗笔试题复盘:算法与金融科技考点全解析
  • 小模型部署实战:从API接入到本地推理与批量任务落地指南
  • HyperMesh 2022有限元前处理入门:从几何清理到网格划分实战