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

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

故障相对于图像来说十分小,再加上训练样本的不足,我们一时间没有想出很好的识别方法(我和老师确实是纠结了好几天了)。不过万事开头难,如果不一步步的去尝试,永远不知道行不行,所以我决定先把样本的问题解决了,然后从要识别的桨叶入手,分析一下有什么特点,做做预处理,看看会得到什么结果。还有就是提一下,我打算不管最后软件用什么语言实现,先用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_number
    image_name=strcat('F:\风机桨叶故障诊断项目\视频2截图\',num2str(i));
    image_name=strcat(image_name,'.jpg');
    I=read(video,i);                               %读出图片
    imwrite(I,image_name,'jpg');                   %写图片
    I=[];
end

end

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


第一步工作完成!明天继续~
希望我的博客对大家有所帮助,欢迎提问和指正。转载请注明出处
如果您也是学生,欢迎关注我们华电LSGO软件技术团队微信公众平台
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值