浙江大学风机瑕疵检测数据集 YOLO模型如何训练无人机风力发电叶片缺陷检测数据集

浙江大学风机瑕疵检测数据集 YOLO模型如何训练无人机风力发电叶片缺陷检测数据集
浙江大学风机瑕疵检测数据集【数据背景】来自浙江大学收集并整理的风机表面瑕疵数据集。由于风力发电机的所在环境恶劣、所受应力强烈等因素风机的叶片表面可能产生油污、砂眼等瑕疵这严重影响了风力发电的效率和安全性。当前叶片表面损伤检测方法多为人为操作存在耗时长、效率低、主观性强等缺点。因此基于风机图像数据利用图像处理、机器学习、深度学习等计算机视觉技术针对风机瑕疵进行自动检测算法的研究与开发是风机资产预测性维护的重要内容。【应用领域】AI风机表面瑕疵检测【文件目录】包含以下4个数据文件train训练集valid验证集test测试集README.txt数据说明【数据说明】检测目标以Pascal VOC格式进行标注对每个图像进行以下预处理统一调整大小为640x640。数据集共包含5288风机表面图像样张所有图像样张均包含xml标注train包含4330图像样张及其对应的xml标注valid包含681图像样张及其对应的xml标注test包含277图像样张及其对应的xml标注。数据集未采用数据增广使用时也可以自行划分训练集、验证集和测试集。需要注意的是该数据集涉及细粒度目标识别一张图像样张中可能没有瑕疵、1个瑕疵或者很多个瑕疵瑕疵标签均表示为Wind_turbine_dmg。浙江大学风机瑕疵检测数据集 信息表项目详情数据集名称浙江大学风机表面瑕疵检测数据集图像总量共 5288 张风机表面图像标注格式Pascal VOC 格式.xml标注文件图签一一对应检测类别单类别Wind_turbine_dmg风机表面瑕疵包含油污、砂眼等各类表面损伤图像预处理所有图像统一调整大小为 640×640数据划分已按 4330 : 681 : 277 划分为训练集/验证集/测试集也可自行重新划分数据特点细粒度瑕疵识别单张图像可包含0个、1个或多个瑕疵目标无内置数据增强采集背景真实风机运行场景叶片、塔筒、机舱等不同部位表面瑕疵实拍图像应用领域AI风机表面瑕疵检测、风力发电机叶片损伤识别、预测性维护、计算机视觉目标检测算法训练与评估适用模型YOLO、Faster R-CNN、SSD 等主流目标检测模型分类标签#数据集#目标检测#风机瑕疵检测#叶片损伤识别#VOC格式#深度学习#计算机视觉#预测性维护#AI风电推文组合标签技术向面向算法/开发者#VOC数据集#细粒度目标检测#YOLO训练#图像标注数据集行业向面向风电/运维#风机运维#叶片检测#智慧风电#风电资产维护精简封面标签#风机瑕疵数据集#AI检测#工业缺陷识别下面给你一套直接可运行的YOLOv8训练代码适配这个VOC格式的风机瑕疵检测数据集包含完整配置、训练脚本和推理代码。一、数据集目录结构按此摆放zjtu_wind_defect/ ├── Annotations/ # 全部xml标注文件 │ ├── train/ │ ├── valid/ │ └── test/ ├── JPEGImages/ # 全部640×640图片文件 │ ├── train/ │ ├── valid/ │ └── test/ └── zjtu_wind_defect.yaml # 模型配置文件二、数据集配置文件zjtu_wind_defect.yaml# 数据集根路径按你本地实际路径修改path:./zjtu_wind_defecttrain:JPEGImages/trainval:JPEGImages/validtest:JPEGImages/test# 类别数 类别名nc:1names:0:Wind_turbine_dmg# 标注格式类型VOCformat:voc三、环境依赖安装pipinstallultralytics opencv-python numpy四、训练代码train_wind_defect.py针对风机表面瑕疵小目标、细粒度、多瑕疵优化参数fromultralyticsimportYOLOdeftrain_wind_defect():# 加载预训练权重n(轻量) / s(均衡) / m(高精度)modelYOLO(yolov8s.pt)model.train(data./zjtu_wind_defect/zjtu_wind_defect.yaml,epochs120,imgsz640,batch16,# 显存不足改为 8 / 4device0,# 无GPU改为 devicecpuworkers4,patience25,# 早停防止过拟合pretrainedTrue,optimizerAdam,lr00.001,# 数据增强适配风机表面纹理、光照变化、小目标瑕疵mosaic0.85,hsv_h0.015,hsv_s0.7,hsv_v0.4,fliplr0.5,flipud0.2,# 瑕疵检测阈值优化conf0.2,iou0.45,# 输出路径projectruns/zjtu_wind_defect,nametrain_yolov8,exist_okTrue)print(训练完成最优模型路径runs/zjtu_wind_defect/train_yolov8/weights/best.pt)if__name____main__:train_wind_defect()五、推理测试代码predict_wind_defect.pyfromultralyticsimportYOLO# 加载训练好的最优权重modelYOLO(./runs/zjtu_wind_defect/train_yolov8/weights/best.pt)if__name____main__:# 1. 单张图片检测# model(test.jpg, saveTrue, conf0.2)# 2. 批量图片检测推荐model(source./test_images,saveTrue,conf0.2)# 3. 视频检测风机巡检视频# model(wind_turbine_video.mp4, saveTrue, conf0.2)# 4. 本地摄像头实时检测# model(source0, saveTrue, conf0.2)print(检测结果已保存至 runs/detect 目录)六、VOC转YOLO格式脚本可选如果需要传统YOLO.txt标签运行下面代码批量转换importosimportxml.etree.ElementTreeasET# 配置路径voc_anno_path./zjtu_wind_defect/Annotationsyolo_label_path./zjtu_wind_defect/labelsclasses[Wind_turbine_dmg]# 创建输出目录ifnotos.path.exists(yolo_label_path):os.makedirs(yolo_label_path)defconvert_voc2yolo(xml_path,txt_path):treeET.parse(xml_path)roottree.getroot()sizeroot.find(size)img_wint(size.find(width).text)img_hint(size.find(height).text)withopen(txt_path,w)asf:forobjinroot.iter(object):cls_nameobj.find(name).text.strip()ifcls_namenotinclasses:continuecls_idclasses.index(cls_name)bndboxobj.find(bndbox)xminfloat(bndbox.find(xmin).text)yminfloat(bndbox.find(ymin).text)xmaxfloat(bndbox.find(xmax).text)ymaxfloat(bndbox.find(ymax).text)# VOC坐标 - YOLO归一化坐标x_center(xminxmax)/2.0/img_w y_center(yminymax)/2.0/img_h w(xmax-xmin)/img_w h(ymax-ymin)/img_h f.write(f{cls_id}{x_center:.6f}{y_center:.6f}{w:.6f}{h:.6f}\n)# 批量转换forfileinos.listdir(voc_anno_path):iffile.endswith(.xml):xml_fileos.path.join(voc_anno_path,file)txt_nameos.path.splitext(file)[0].txttxt_fileos.path.join(yolo_label_path,txt_name)convert_voc2yolo(xml_file,txt_file)print(VOC转YOLO标签完成)七、使用调优建议风机瑕疵特点油污、砂眼多为小目标训练时保持conf0.15~0.2避免调高置信度导致漏检。显存不足降低batch使用yolov8n.pt轻量模型。过拟合/泛化差可在训练时开启数据增强或自行对图像做亮度、噪声、翻转等增广。部署方向模型导出为ONNX/TensorRT部署在无人机巡检、手持终端或风机监控平台实现瑕疵自动识别。