风机桨叶故障诊断(四)

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

在之前的工作中,我们已经训练了一个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);endendendend

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

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

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

  1. 风机桨叶故障诊断(一) 样本的获取

    风机桨叶故障诊断(一) 样本的获取      今天团队接了个新项目,做一个风机桨叶故障诊断系统.虽然马上就是准备考研的关键期了,可是一想到这是我学习了机器学习后遇到的第一个实际项目,我觉得参与进来,也 ...

  2. 风机桨叶故障诊断(六) 利用自编码器进行特征学习

    风机桨叶故障诊断(六) 利用自编码器进行特征学习 在之前的工作中,我已经初步构建了三层的BP神经网络,并已经从样本集的选取,模型的选择(隐含层神经元个数),和输出层神经元阈值选择这几个方面对桨叶的识别 ...

  3. 风机桨叶故障诊断(三) 识别桨叶——初步构建BP神经网络

    风机桨叶故障诊断(三)  识别桨叶--初步构建BP神经网络 新的一天,希望有好的运气.今天开始着手系统的第一个模块,从一幅图像中寻找到桨叶所在的位置.第一直觉我们的识别任务属于难度比较大,干扰因素多的 ...

  4. 风机桨叶故障诊断(五) 修改隐含层神经元个数的尝试

    风机桨叶故障诊断(五) 修改隐含层神经元个数的尝试 我们已经为训练一个更为稳健的神经网络做好了样本的准备工作,那么我们开始下一步的工作吧! 我们已经有了样本集,目前我筛选出来了247个正样本,652个 ...

  5. 风机桨叶故障诊断(二) 获取图像几何主方向

    风机桨叶故障诊断(二) 获取图像几何主方向 昨天,我将视频资源按帧抽取并筛选得到了可以用来提取样本的图像库.今天还是进行项目的准备工作.当我们拿到一张图片,我们的软件要做的大致可以分为三个步骤:从原图 ...

  6. 风机桨叶故障诊断(七) 滑动窗与非极大值抑制NMS

    风机桨叶故障诊断(七)滑动窗与非极大值一直NMS 到目前为止,我已经利用自编码神经网络提取特征后训练得到了BP神经网络(参见:点击打开链接),且在测试样本集上表现不错.下面我们就要应用到实际中来检验算 ...

  7. AUTOSAR从入门到精通100讲(四十一)-动态架构设计中的时序图

    Part1时序图简介 1时序图定义 描述了对象之间以及对象与参与者实例之间传递消息的时间顺序, 用来表示用例中的行为顺序, 是强调消息时间顺序的交互图; 2时序图描述的事物 时序图描述系统中类和类之间 ...

  8. 正负样本不均衡的解决办法

    转载自:http://blog.csdn.net/lujiandong1/article/details/52658675 这几年来,机器学习和数据挖掘非常火热,它们逐渐为世界带来实际价值.与此同时, ...

  9. 分类模型-评估指标(2):ROC曲线、 AUC值(ROC曲线下的面积)【只能用于二分类模型的评价】【不受类别数量不平衡的影响;不受阈值取值的影响】【AUC的计算方式:统计所有正负样本对中的正序对】

    评价二值分类器的指标很多,比如precision.recall.F1 score.P-R曲线等.但这些指标或多或少只能反映模型在某一方面的性能.相比而言,ROC曲线则有很多优点,经常作为评估二值分类器 ...

最新文章

  1. libgdx和android界面结合,Android游戏引擎libgdx使用教程5:常用UI类与舞台
  2. java代码_Java:java五行代码实现Excel的快速导出
  3. python命名空间特性_Python命名空间与作用域
  4. mysql可视化一月多少钱_最便宜mysql可视化
  5. python学爬虫还是人工_本人初二生,学习Python爬虫,要不要继续深入学习啊?
  6. Javascript中===和==的区别
  7. Nginx服务器中的Socket切分,需要的朋友可以参考下
  8. python的shutil模块是内置的_python内置模块~shutil
  9. python pywin32模块详解_python模块win32com用法详解
  10. firefox 无法启动
  11. 《Web前端开发技术》笔记
  12. No matching provisioning profile found: Your build settings specify a provisioning profile with the
  13. 印度新德里城建_印度语言本地化社区在新德里举行会议
  14. 12-Java 继承抽象类代码块(详解~)
  15. 【项目一】医疗实战-传智健康
  16. FC金手指代码大全·持续更新-亲测可用-FC 经典游戏完整可用的金手指大全---持续更新,偶尔玩玩经典回味无穷,小时候不能通关的现在通通通关一遍
  17. 使用udp协议实现服务器端程序时,uIP中UDP协议实现的改进
  18. uniapp H5、app、小程序不同端之间跳转
  19. 移轴镜头摄影计算机作业模板,梦寐以求的移轴效果,被我用50mm定焦镜头实现了,简单易学出效果...
  20. IP数据报的分片和组装过程

热门文章

  1. Docker添加或者更改容器的端口映射
  2. nuxt项目打包上线之二
  3. Serializer字段和选项
  4. Python安装pip
  5. 赛码网算法: 军训队列( python实现 )
  6. android:在ViewPager中使用Button
  7. 删除链表中指定节点,要求时间复杂度为O(1)
  8. 哀悼地震遇难者--5月19至21日为全国哀悼日
  9. AdaBoost 算法 入门
  10. 常染色体的隐性疾病数学建模(代数模型)