风机桨叶故障诊断(一) 样本的获取
     今天团队接了个新项目,做一个风机桨叶故障诊断系统。虽然马上就是准备考研的关键期了,可是一想到这是我学习了机器学习后遇到的第一个实际项目,我觉得参与进来,也帮导师分担些压力。项目不可能进展的一帆风顺,这个系列文章也并不是教学性质的,我这些日子会根据项目的情况,将一步步的进展,想法都记录在博客中,也作为技术的积累。如果有什么错误欢迎大家指正。
步入正题,项目需求是这样的,驾驶汽车在风力发电厂中巡视一遍,车顶安装摄像头,沿途拍下所有的风机。我们的软件对高清摄像机拍摄下的图片/视频进行处理,识别出图像中的风机桨叶,然后对桨叶是否存在故障进行诊断。
经过最初的分析,我们发现这个问题还是十分棘手的,提供的条件也十分苛刻。首先,我们拿到的可以用来训练识别算法的样本只有短短的几个视频,其次,由于风机处于高速旋转中,而且离地面的距离较远,拍到的图像不能做到很清晰,故障往往在图像中只能体现成一个小黑点。就如下图所示
故障相对于图像来说十分小,再加上训练样本的不足,我们一时间没有想出很好的识别方法(我和老师确实是纠结了好几天了)。不过万事开头难,如果不一步步的去尝试,永远不知道行不行,所以我决定先把样本的问题解决了,然后从要识别的桨叶入手,分析一下有什么特点,做做预处理,看看会得到什么结果。还有就是提一下,我打算不管最后软件用什么语言实现,先用matlab进行前期的分析和实验。
首先获取样本,我们拿到手的资源就仅仅是两个模拟现场巡视拍摄下的视频,那么准备工作的第一步就是从视频中抽取一部分帧的图像出来,作为我们最基本的可以提取样本的图像库。
我是每隔25帧,对于我的视频来说是1秒抽取出一张图像,matlab实现如下:
function [  ] = ProcessVideo( )
%处理视频,每一秒提取一帧并保存%% 从视频里面分割图片
clc;
clear;
%% 读取视频
video_file='F:\风机桨叶故障诊断项目\视频\视频2.avi';
video=VideoReader(video_file);
frame_number=floor(video.Duration * video.FrameRate)%% 分离图片
for i=1:25:frame_numberimage_name=strcat('F:\风机桨叶故障诊断项目\视频2截图\',num2str(i));image_name=strcat(image_name,'.jpg');I=read(video,i);                               %读出图片imwrite(I,image_name,'jpg');                   %写图片I=[];
endend

这样,我们再人工的剔除一些没用的图片(比如十分模糊的,只有背景的),就得到我们可以用来提取样本的风机图像库了,如下图所示。

第一步工作完成!明天继续~
希望我的博客对大家有所帮助,欢迎提问和指正。转载请注明出处
如果您也是学生,欢迎关注我们华电LSGO软件技术团队微信公众平台

风机桨叶故障诊断(一) 样本的获取相关推荐

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

    风机桨叶故障诊断(四)                                             正负样本准备--从图像中随机扣图 在之前的工作中,我们已经训练了一个400×25×2的三 ...

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

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

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

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

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

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

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

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

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

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

  7. matlab 三维全息谱,基于MATLAB软件平台的全息谱图及在风机振动故障诊断中应用的研究...

    一.引言 风机是化工机械中的关键设备.由于机器在运转过程中,受到外界的作用和机器本身零件之间的相互作用,不可避免地要产生振动.在产生振动的诸多因素中,机械部件本身的缺陷占有相当大的比重.由于分析方法的 ...

  8. 基于图卷积网络的测量与先验知识相结合的故障诊断方法

    目录 Graph Convolutional Network-Based Method for Fault Diagnosis Using a Hybrid of Measurement and Pr ...

  9. 基于深度学习的恶意样本行为检测(含源码) ----采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类...

    from:http://www.freebuf.com/articles/system/182566.html 0×01 前言 目前的恶意样本检测方法可以分为两大类:静态检测和动态检测.静态检测是指并 ...

最新文章

  1. LeetCode--023--合并K个排序链表
  2. BRCM5.02编译四: ERROR: lzo/lzo1x.h development library is required for build
  3. 加载MNIST报错:[WinError 10060] 由于连接方在一段时间后没有正确答复解决办法(亲测)
  4. 反序列化 还是记一下吧
  5. 第45课 蝴蝶效应-动动脑 第3题 《小学生C++趣味编程》
  6. 小程序入门学习06--data、url传参、调用豆瓣api
  7. 一图抵千言:带你快速学会 GoogLeNet 神经网络 | CSDN 博文精选
  8. MongoDB入门基础知识
  9. PreparedStatement enum
  10. 文本分类(三) | (6) 番外篇(预训练语言模型的另一种使用方式)
  11. codeforces AIM Tech Round 3 (Div. 2) (A~D)
  12. 小程序更新数组操作push、pop、unshift、shift
  13. Delphi2010启动报错cannot create file C:Users\ADMINI~1\AppDat...\EditorLineEnds.ttr
  14. Windows添加开机和关闭开机启动项
  15. Wireshark 301: Spying on what people are downloading (Part 2 of 2)
  16. OAuth2.0实现自定义颁发token
  17. 10倍双目望远镜系统设计
  18. Windows10 下同一局域网两台电脑互传文件及其取消
  19. 【Python自查手册】之项目实操
  20. weiphp2.0:关于OneThink后台添加密码重置的功能

热门文章

  1. js实现右键单击打开自定义的菜单
  2. Python eclipse开发环境搭建
  3. exit(0)和exit(1)区别
  4. wordpress增删改查
  5. HOWTO: InstallShield中如何实现MSI包的权限提升(转)
  6. C++学习——内联函数
  7. 数据结构与算法——二分查找与二叉排序树
  8. linux的系统移植——内核启动
  9. 在运行Loaded runtime CuDNN library: 7103 (compatibility version 7100) but source was compiled with 7003
  10. java 开发环境的搭建