风机桨叶故障诊断(四) 正负样本准备——从图像中随机扣图

风机桨叶故障诊断(四

                                            正负样本准备——从图像中随机扣图


     在之前的工作中,我们已经训练了一个400×25×2的三层BP神经网络,通过这个基础的神经网络进行了误差分析,对我们的问题有了更深刻的认识。现在我们要开始不断完善我们的预测算法。

      在一个机器学习系统中,样本选取的好坏至关重要。不是有这么个著名论断嘛,“It's not who has the best algorithm that wins.It's who has the most data.”所以我们完善算法的第一步,就是完善我们的样本。在项目的最初我们就获取了可以用来提取所需样本的图像库,筛选掉不合适的图像后大概有2000张。我们的下一步,就是从这里面选取我们的样本(上一篇文章中我是手动截取的少量样本,这具有主观性,且样本数量也不够)。

     所以现在我们要从图像库中重新筛选样本,为了让所选的正、负样本能够具有代表性,尽量包含所有可能出现的情况,我们应该在图像中在随机位置,截取出随机大小的图。经过对于实际问题的分析,我选取扣图的随机大小范围限定在250-400之间,位置随机选定,只要所截取的整幅图像不超越原图的边界即可。然后选定在每幅图像中随机截取出20张图作为待处理的样本。

     在所选的文件夹中对所有图像进行随机位置随机大小扣图的matlab实现如下:

function [  ] = BuildLotOfExample(  )
%随机抓取生成大量样本

for i=1:25:5176
    %读取图像
    image_toRead_name=strcat('F:\风机桨叶故障诊断项目\视频2截图\',num2str(i));
    image_toRead_name=strcat(image_toRead_name,'.jpg');
    
    if exist(image_toRead_name,'file')
        %读取图像
        OriImage=imread(image_toRead_name);

         grayImage=rgb2gray(OriImage);
         [rows,cols]=size(grayImage);

         %由原始图像,每幅图扣出20张随机大小,随机位置的图像,再进行筛选
         %随机扣图的大小,边长250-400之间
         sizeArray=round(rand(1,20)*150+250);

         for x=1:length(sizeArray)
             %得到本次抠图边长
             length_of_size=sizeArray(x);
             rowIndex=round(rand()*(rows-length_of_size-1)+1);
             colIndex=round(rand()*(cols-length_of_size-1)+1);
             tempImage=grayImage(rowIndex:rowIndex+length_of_size,colIndex:colIndex+length_of_size);

             %保存图像
            image_toSave_name=strcat('F:\风机桨叶故障诊断项目\随机抽取样本\',num2str(i+1));
            image_toSave_name=strcat(image_toSave_name,'_');
            image_toSave_name=strcat(image_toSave_name,num2str(x));
            image_toSave_name=strcat(image_toSave_name,'.jpg');
            imwrite(tempImage,image_toSave_name);

         end
    end
     
end


end
       在运行完上面代码后的工作就是比较枯燥的了,在所有截取出的图像中认真筛选出正样本和负样本,并剔除出少量可能对算法产生较大干扰的图像。在漫长的工作之后,我们的正负样本集就得到了,最后我将它们进行归一化,变成了25×25的灰度图像。

       今天筛选样本做了不少枯燥的体力活动,肩膀都疼了。不过好的样本选取是机器学习系统的基石,希望这些天的努力不会白费!



采用深度学习的方法对风机桨叶表面缺陷检测进行研究,可以实现高效、准确的缺陷检测。下面是一种可能的研究方法: 1. 数据采集和预处理:利用高分辨率相机对风机桨叶进行拍摄,获取桨叶表面的图像数据。然后,利用图像处理技术对获取的图像进行预处理,包括灰度化、滤波、二值化等操作,以提高后续分析的准确性和效率。 2. 模型构建和训练:利用深度学习模型对桨叶表面的缺陷进行检测。可以采用常用的卷积神经网络(CNN)模型,如VGG、ResNet等,也可以采用更加轻量级的模型,如MobileNet等。利用大量的标注数据对模型进行训练,以学习桨叶表面缺陷的特征和模式。 3. 模型评估和优化:利用测试数据对模型进行评估,以评估模型的性能和准确性。可以采用常用的评估指标,如精度、召回率、F1值等。如果模型的性能不够理想,可以尝试优化模型的结构或者调整模型的超参数,以提高模型的准确性。 4. 模型应用和部署:将训练好的模型应用到实际的风机桨叶缺陷检测。可以将模型集成到风机监测系统,自动对风机桨叶进行缺陷检测和识别。同时,需要对模型进行不断优化和更新,以保证模型的准确性和可靠性。 总之,采用深度学习的方法对风机桨叶表面缺陷检测进行研究,可以实现高效、准确的缺陷检测,为风能发电行业提供更加高效、可靠的桨叶质量控制手段和技术支持。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值