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

风机桨叶故障诊断(一) 样本的获取
     今天团队接了个新项目,做一个风机桨叶故障诊断系统。虽然马上就是准备考研的关键期了,可是一想到这是我学习了机器学习后遇到的第一个实际项目,我觉得参与进来,也帮导师分担些压力。项目不可能进展的一帆风顺,这个系列文章也并不是教学性质的,我这些日子会根据项目的情况,将一步步的进展,想法都记录在博客中,也作为技术的积累。如果有什么错误欢迎大家指正。
步入正题,项目需求是这样的,驾驶汽车在风力发电厂中巡视一遍,车顶安装摄像头,沿途拍下所有的风机。我们的软件对高清摄像机拍摄下的图片/视频进行处理,识别出图像中的风机桨叶,然后对桨叶是否存在故障进行诊断。
经过最初的分析,我们发现这个问题还是十分棘手的,提供的条件也十分苛刻。首先,我们拿到的可以用来训练识别算法的样本只有短短的几个视频,其次,由于风机处于高速旋转中,而且离地面的距离较远,拍到的图像不能做到很清晰,故障往往在图像中只能体现成一个小黑点。就如下图所示

故障相对于图像来说十分小,再加上训练样本的不足,我们一时间没有想出很好的识别方法(我和老师确实是纠结了好几天了)。不过万事开头难,如果不一步步的去尝试,永远不知道行不行,所以我决定先把样本的问题解决了,然后从要识别的桨叶入手,分析一下有什么特点,做做预处理,看看会得到什么结果。还有就是提一下,我打算不管最后软件用什么语言实现,先用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软件技术团队微信公众平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

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

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

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

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

风机桨叶故障诊断(四) 正负样本准备——从图像中随机扣图 在之前的工作中,我们已经训练了一个400252的三层BP神经网络,通过这个基础的神经网络进行了误差分析,对我们的问题有了更深刻的认识。现在我们要开始不断完善我…

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

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

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

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

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

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

Distinctive Image Features from Scale-Invariant Keypoints-SIFT算法译文

本文全篇转载自如下博客,感谢博主的无私分享 http://www.cnblogs.com/cuteshongshong/archive/2012/05/25/2506374.html ------------------------------------------------------------------------------------------------------ 从尺度不变的关键点选择可区分的…

将图像绘制成3维立体散点图

matlab源代码: Iimread(F:\绝缘子识别\绝缘子红外test图片\test (50).jpg); Irgb2gray(I); [wd,len]size(I); interval10; %设置绘制散点图的间隔,全部绘出会很卡 x[]; y[]; z[]; numfloor((len-1)/interval)1;%计算在当前间隔下图像的每一行…

二叉树的非递归遍历|前中后序遍历

二叉树的非递归遍历 文章目录 二叉树的非递归遍历前序遍历-栈层序遍历-队列中序遍历-栈后序遍历-栈 前序遍历-栈 首先我们应该创建一个Stack 用来存放节点,首先我们想要打印根节点的数据,此时Stack里面的内容为空,所以我们优先将头结点加入S…

C#灰度图转伪彩色图

/// <summary>/// 伪彩色图像构造器/// </summary>public class PseudoColorImageBuilder{/// <summary>/// 铁红色带映射表/// 每一行代表一个彩色分类&#xff0c;存放顺序是RGB/// </summary>public static byte[,] ironTable new byte[128, 3] {{…

砥志研思SVM(二) 拉格朗日乘子法与KKT条件

[1]最优化问题中的对偶性理论 [2]拉格朗日乘子法(上) [3]拉格朗日乘子法(下)

VS2015上配置opencv2.4.11

VS2015上配置opencv2.4.11版方法总结 最近给电脑重装了系统&#xff0c;需要的软件各种装。今天阅读了很多网上的博客&#xff0c;几经波折完成了opencv的配置。配置opencv与其他函数包或者软件相比算是麻烦的了&#xff0c;可能出现的问题也是五花八门&#xff0c;所以针对我的…

热传导方程的差分格式原理与matlab实现

function [ ] ParabolicEquation( h,k ) %求解抛物型方程中的一种&#xff1a;热传导方程 %h:x轴步长 %k:t轴步长rk/(h*h);%网格比 Mxfloor(1.0/h)1;%网格在x轴上的节点个数&#xff08;算上0&#xff09; Ntfloor(1.0/k)1;%网格在t轴上的节点个数&#xff08;算上0&#xff…

如何开发一个扫雷小游戏?

如何用C#开发一个扫雷小游戏&#xff1f; 十分自豪的说&#xff0c;计算机编程就是变魔术&#xff0c;每一个coder都是一个魔术师。 初学C#的时候&#xff0c;我相信很多人都和我一样&#xff0c;学会了基本语法&#xff0c;掌握了基本的数据结构&#xff0c;也见过了不少微软…