一种货车摇枕弹簧窜出故障自动检测方法与流程

文档序号:23308611发布日期:2020-12-15 11:39阅读:169来源:国知局
一种货车摇枕弹簧窜出故障自动检测方法与流程

本发明涉及一种货车摇枕弹簧窜出故障自动检测方法。属于铁路货车部件检测技术领域。



背景技术:

货车摇枕弹簧用于铁路车辆的走行部,起到缓冲避震的作用,又由于其位于走行部,若其窜出直接危及行车安全,因此,在铁路货车部件检测过程中需要对摇枕弹簧窜出故障检测非常重视。

现有的摇枕弹簧窜出故障检测方法,基本都是采用人工检查图像的方式进行故障检测。由于检车人员在工作过程中极易出现疲劳、遗漏等情况,造成漏检、错检的出现,影响行车安全。随着图像处理与技术的不断成熟和发展,目前已经具备采用图像自动识别的方式进行货车摇枕弹簧窜出故障自动检测,但是目前基于图像处理的效果受到包括天气等各种因素的影响,检测的准确率较低,而且存在漏检率、错检率高的问题。而且针对于不同条件下的图像,其检测效果也不稳定。



技术实现要素:

本发明为了解决货车摇枕弹簧窜出故障检测过程中存在人工检测效率低的问题和图像自动检测准确率低、不稳定的问题。

一种货车摇枕弹簧窜出故障自动检测方法,包括以下步骤:

s1、获取摇枕弹簧大图像,所述摇枕弹簧大图像为包括摇枕弹簧在内的货车局部图像;

s2、基于摇枕弹簧大图像,利用canny检测得到摇枕弹簧大图像的轮廓;在轮廓图像上进行霍夫变换检测直线得到摇枕的上边缘,用于定位摇枕弹簧的上边界;对摇枕弹簧大图像进行otsu二值化后,经过形态学运算找到两个镂空区域定位出摇枕弹簧的下边缘;

在摇枕弹簧大图像中截取上边界与下边缘间的子图可得到弹簧的整体图像;结合先验与上、下边缘信息,截取到顶端部子图像、末端部子图像;

s3、先进行顶端子图像进行窜出识别,若识别出窜出故障,图像直接报警;若顶端窜出未识别出故障,则对末端部子图像进行窜出识别,若识别出窜出故障,图像直接报警;若顶端与末端均未识别出窜出故障,则进行左右窜出故障识别,若识别出故障,图像直接报警。

进一步地,s3所述进行顶端子图像进行窜出识别的过程包括以下步骤:

提取顶端部子图像对应的模板图像,首先对模板图像与顶端部子图像通过中值滤波消除噪声;对顶端部子图像与模板图像进行匹配,顶端部子图像归一化相关系数匹配的最大相似度小于相关系数阈值t1且归一化的相关性匹配最大相似度小于相关性阈值t2直接报警。

进一步地,s3所述对末端部子图像进行窜出识别的过程与顶端部子窜出识别的过程相同。

进一步地,s3所述进行左右窜出故障识别的过程如下:

针对弹簧的整体图像进行中值滤波,然后利用sobel算子计算x方向梯度gx和y方向梯度gy,并得到图像的边缘轮廓i1(i,j);

同时将弹簧的整体图像进行二值化,并通过全局阈值二值化滤波图像得到缩小类内差异与放大类间差异的2值化图像i2(i,j);

利用曲线演化图像分割得到弹簧分割的轮廓,初始曲线c为2值化图像中i2(i,j)二值像素相交部分,然后用演化方程数值解法迭代来使初始曲线向弹簧轮廓靠近,使其向目标边缘逐渐逼近,最终找到目标边缘;

对水平集分割的弹簧间隙轮廓,结合先验知识对每列弹簧的左、右侧边界进行直线拟合;根据拟合后的直线计算弹簧边界倾斜角度,判断相邻弹簧是否交叉;如果弹簧边界倾斜角度明显或相邻两列弹簧不再平行则直接报警。

进一步地,所述进行全局阈值二值化滤波得到缩小类内差异与放大类间差异的2值化图像i2(i,j)的过程包括以下步骤:

将弹簧的整体图像进行全局二值化,灰度值大于灰度阈值th1为255,小于等于th1为0,即得到掩膜图像;

将滤波图像的所有像素值赋为0,大小与弹簧的整体图像相同;对于(i,j)位置,若在掩膜图像中非0,则进行如下操作:以此位置为中心,计算弹簧的整体图像中长度为w、宽度为h矩形区域内的亮度均值作为滤波图像中相应位置的像素值,该过程只计算掩膜图像中非0位置处;通过阈值为th0的全局阈值二值化滤波图像得到缩小类内差异与放大类间差异的2值化图像i2(i,j),2值化图像i2(i,j)的像素值为0或255。

进一步地,所述用演化方程数值解法迭代来使初始曲线向弹簧轮廓靠近,使其向目标边缘逐渐逼近,最终找到目标边缘的过程包括以下步骤:

1)初始化水平集函数φ(x,y),(x,y)对应的位置在缩小类内差异与放大类间差异的2值化图像i2(i,j)中像素值若为255,则其初始水平集值为d,若对应的位置在i2(i,j)中像素值为0则水平集值为-d,2值图像中黑白交接处则为初始轮廓线;

2)在时刻t=0处,给定初始的符号距离函数φ,根据运动方程得到任意t时刻的φ;根据φt+f|▽φ|=0的演化方程通过数值解法演化曲线;其中,记做▽φ,速度xt的法向由表面的法向量给定且xt=f(x(t))n,f是速度函数,为滤波图像像素值的函数;

迭代一定的次数n或前后两次水平集的差值小于误差阈值th则停止,得到曲线即为最终的弹簧间隙分割曲线,否则继续迭代演化。

进一步地,所述速度函数f具体如下:

其中,λ是控制惩罚因子的参数。

进一步地,所述符号距离函数如下:

其中d[(x,y),c]是点(x,y)到曲线c的欧几里得距离。

进一步地,步骤s2所述对摇枕弹簧大图像进行otsu二值化后,经过形态学运算找到两个镂空区域定位出摇枕弹簧的下边缘的具体过程包括以下步骤:

a、针对摇枕弹簧大图像,先用大津法得到二值化图像,然后对二值化图像取反;

b、设置宽度为w、高度为h的结构单元,进行形态学开运算剔除弹簧间隙连通区域;

c、结合镂空区域位置与大小信息对镂空区域定位,进而得到摇枕弹簧的下边缘。

进一步地,所述方法还包括以下步骤:

故障识别后,根据子图到摇枕弹簧大图像的映射关系、摇枕弹簧大图像与原始图像的映射关系,计算出故障在原始图像中的位置,在显示界面上进行故障显示;

所述子图为弹簧的整体图像、顶端部子图像或末端部子图像。

有益效果:

1、利用图像自动识别的方式代替人工检测,提高检测效率、准确率。

2、在故障识别中,将窜出故障分成了顶端窜出、底端窜出、左右倾斜窜出三种情况,先对其进行端部故障检测,若未检测出端部故障再进行左右倾斜检测,可提高检测速度与精确性。

3、针对不同探测站、不同车型进行图像融合得到弹簧正常无故障的模板图像,系统普适性强。

4、曲线演化弹簧分割方法所求得的边缘曲线具有封闭、光滑等优点,后续每列弹簧边缘拟合直线干扰少,减少了故障检测中的误报。

5、缩小类内差异与放大类间差异的2值化图像i2(i,j)作为曲线演化的初值,曲线演化收敛速度快。

附图说明

图1为故障识别整体流程示意图;

图2为端部窜出识别流程示意图;

图3为左右倾斜窜出识别流程示意图。

具体实施方式

具体实施方式一:参照图1具体说明本实施方式,

本实施方式所述的一种货车摇枕弹簧窜出故障自动检测方法,包括以下步骤:

硬件部分包括相机采集单元、磁钢单元、图像采集工控机单元、控制工控机单元和图像识别单元,其中相机采集单元包括相机和补偿光模块,相机用于采集图像,补偿光模块用于采集图像时的光补偿;磁钢单元包括近端磁钢和远端磁钢,近端磁钢和远端磁钢信号传给控制工控机单元,控制工控机单元通过获取的信号信息计算出车速和轴距信息,并传递给图像识别单元,图像识别单元利用获取的轴距信息和图像信息等来实现自动识别算法。

s1、获取摇枕弹簧大图像:

采集货车的原始图像,根据硬件部分得到的磁钢轴距信息,结合先验知识可粗略估计出摇枕弹簧部件位置,得到摇枕弹簧大图像,所述摇枕弹簧大图像为包括摇枕弹簧在内的货车局部图像。

s2、获取摇枕弹簧小图像:

基于摇枕弹簧大图像,利用canny检测得到摇枕弹簧大图像的轮廓;在轮廓图像上进行霍夫变换检测直线得到摇枕的上边缘,用于定位摇枕弹簧的上边界;鉴于摇枕弹簧的下边界会有两个镂空部分的特征,本发明对摇枕弹簧大图像进行otsu二值化后,经过形态学运算找到两个镂空区域定位出摇枕弹簧的下边缘。

摇枕弹簧下边缘具体定位步骤如下:

a、镂空区域为前景的二值化图像:

针对摇枕弹簧大图像,先用大津法得到二值化图像,此时镂空区域位置为黑色像素。然后对二值化图像取反得到镂空区域值为白色的像素。

b、消除弹簧间隙干扰

步骤a镂空区域为白色,相临近的弹簧间隙细长轮廓线也为白色值。设置宽度为w,高度为h的结构单元,基于此结构单元进行形态学开运算后可剔除弹簧间隙连通区域。

c、依据镂空区域信息定位摇枕弹簧下边缘

经过以上步骤后,有些图像中仍存在干扰区域。结合镂空区域位置与大小信息可准确对镂空区域定位。连通区域中心位于左下角且面积大于s的为左侧镂空区域,连通区域中心位于右下角且面积大于s的为右侧镂空区域。两镂空区域的结束行取均值后即可得到摇枕弹簧的下边缘。

在摇枕弹簧大图像中截取上边界与下边缘间的子图可得到弹簧的整体图像;结合先验与上、下边缘信息,按照比例可截取到顶端部子图像、末端部子图像;将弹簧的整体图像、顶端部子图像、末端部子图像统称为子图。

s3、故障识别:

弹簧窜出分为顶端窜出、末端窜出、左右倾斜窜出三种情况。由于弹簧本身受货物轻重、相机角度、硬件安装环境等影响,即使同类故障,不同具体故障的差异也较大,为了提高系统的准确率,采用针对三种情况分别进行识别的策略:首先进行顶端子图像进行窜出识别,若识别出窜出故障,图像直接报警;若顶端窜出未识别出故障,则对末端部子图像进行窜出识别,若识别出窜出故障,图像直接报警;若顶端与末端均未识别出窜出故障,则进行左右窜出故障识别,若识别出故障,图像直接报警。

s3.1端部窜出识别

摇枕弹簧端部是头圈或尾圈弹簧骑台,所述的摇枕弹簧端部包括顶端和末端;窜出状态是与邻近部件的相对位置发生了变化。由于弹簧窜出后会发生各层弹簧相互挤压、变形或与临近部件错位或漏出弹簧底面情况,这些都会导致图像中边缘增多,边缘增多后,图像像素值亮度平滑度下降,抖动增多,故纹理会比比正常弹簧丰富,所以发生窜出故障之后,图像中弹簧端部的边缘比正常无故障图像增多,且纹理更加丰富。基于故障前后的图像特征变换,端部窜出故障通过当前图像与正常无故障模板图像比对来进行识别。

s3.1.1建立模板数据库

对不同探测站点图像与不同车型的图像进行多尺度的图像融合,融合后的图像具有更多、更有价值的信息。多尺度的图像融合的过程如下:

首先人工挑选一个图像作为模板,然后其他站点图像依据模板多尺度提取特征点对匹配并计算变换矩阵后校正,最后校正后的不同站点图像加权后得到最终的模板图像。

s3.1.2故障识别,如图2所示,

提取顶端部子图像对应的模板图像,首先对模板图像与顶端部子图像通过中值滤波消除噪声;对顶端部子图像与模板图像进行匹配,顶端部子图像归一化相关系数匹配的最大相似度小于相关系数阈值t1且归一化的相关性匹配最大相似度小于相关性阈值t2直接报警。

当顶端窜出未识别出故障,则对末端部子图像进行窜出识别,若识别出窜出故障,图像直接报警,末端部子图像的处理过程与顶端部子图像处理过程相同。

s3.2左右倾斜弹簧识别

对于左右倾斜类的弹簧窜出故障而言,在图像上某列弹簧会有明显的倾斜或者相邻两列弹簧由原来的平行关系变为相互交叉。弹簧整体图像通过演化一个表面s过程中其水平集的轮廓得到弹簧分割的轮廓,依据弹簧分割的轮廓可对摇枕弹簧是否存在左右倾斜故障进行判定。曲线演化图像分割先定义初始曲线c为2值化图像中i2(i,j)黑白像素相交部分,然后用演化方程数值解法迭代来使初始曲线向弹簧轮廓靠近,使其向目标边缘逐渐逼近,最终找到目标边缘。这种动态逼近方法所求得的边缘曲线具有封闭、光滑等优点,演化停止时即可得到精确的弹簧间隙轮廓。经过研究和实验发现用此方法定位弹簧轮廓准确率高。

s3.2.1弹簧分割前的数据准备

摇枕弹簧各层弹簧之间虽间隙不同,但大部分弹簧间隙亮度比临近弹簧层暗且部分有黑影,可利用弹簧各层间隙以及间隙与弹簧层间亮度变化提供粗分割,为后面弹簧精细分割提供初值。梯度图像作为分割曲线演化中的参数可加速曲线演化速度。

梯度图像获取方式如下:首先对弹簧整体图像进行中值滤波消除噪声;然后利用sobel算子计算x方向梯度gx和y方向梯度gy,x方向与y方向加权后,如|gx|*0.5+|gy|*0.5,进而得到图像的边缘轮廓i1(i,j)。

缩小类内差异与放大类间差异的2值化图像i2(i,j)为弹簧分割的曲线演化提供初值,其获取过程如下:

首先弹簧的整体图像进行全局二值化,灰度值大于灰度阈值th1为255,小于等于th1为0即可得到掩膜图像。灰度阈值是对于硬件所得图像中能将弹簧等部件区域与间隙等阴影区域分割开的经验值,一般取图像灰度直方图波谷处的值即可。

下一步要获取滤波图像,先将滤波图像的所有像素值赋为0,大小与弹簧的整体图像相同。对于(i,j)位置,若在掩膜图像中非0,则进行如下操作:以此位置为中心,计算弹簧的整体图像中长度为w,宽度为h矩形区域内(只考虑掩膜图像中非0像素位置)的亮度均值作为滤波图像中相应位置的像素值。鉴于弹簧间隙比较暗,滤波图像通过阈值为th0的全局阈值二值化滤波图像得到缩小类内差异与放大类间差异的2值化图像i2(i,j),th0可以根据先验确定,例如取将弹簧等部件与间隙等背景分开的数值,即图像灰度直方图的波谷处;2值化图像i2(i,j)的像素值为0或255。

s3.2.2曲线演化基本理论

弹簧分割结果通过跟踪轮廓点来得到,鉴于显式跟踪轮廓的方法有曲线合并时需要删掉点与曲线合并时需要插入点等缺陷,本发明采用隐式轮廓方法。假设二维平面上的曲线由y=f(x)表示,该关系也可用隐函数y-f(x)=0来描述,此时若设:

φ(x,y)=y-f(x)(1)

则φ(x,y)=0就是曲线的隐式表达式。

对于φ(x,y)的构建,采用符号距离函数,即

其中d[(x,y),c]是点(x,y)到曲线c的欧几里得距离。

点x(x,y)属于一个随着时间演化的曲线,x(t)为它在t时刻的位置。在任意时刻t,对于每一个点x(t)都是表面φ在高度为0的曲线上的点,即:

φ(x(t),t)=0(3)

这样,就获得了曲面φ。x(x,y)就是用于分割弹簧的轮廓线了。曲面的演化过程中,0水平集即用于分割弹簧的轮廓线也在不断演化。剩下的就是如何演化这个曲面了。在时刻t=0处,给定初始函数φ,根据运动方程可以得到任意t时刻的φt。曲面演化的速度方程(3)利用链式法则,有

φt+f|▽φ|=0(4)

其中,记做▽φ,速度xt的法向由表面的法向量给定且xt=f(x(t))n,f是速度函数,为上一步骤中滤波图像像素值的函数,频率越高的地方曲线演化速度越慢,f具体数值如下:

其中,λ是控制惩罚因子的参数。

s3.2.3曲线演化流程:

1)初始化水平集函数φ(x,y),(x,y)对应的位置在缩小类内差异与放大类间差异的2值化图像i2(i,j)中像素值若为255,则其初始水平集值为d,若对应的位置在i2(i,j)中像素值为0则水平集值为-d,2值图像中黑白交接处则为初始轮廓线;

2)根据式(4)的演化方程通过数值解法演化曲线;

迭代一定的次数n或前后两次水平集的差值小于误差阈值th则停止,得到曲线即为最终的弹簧间隙分割曲线,否则继续迭代演化。

s3.2.4结合曲线间隙识别左右倾斜窜出故障

对水平集分割的弹簧间隙轮廓,结合先验知识对每列弹簧的左、右侧边界进行直线拟合。根据拟合后的直线计算弹簧边界倾斜角度,判断相邻弹簧是否交叉。如果弹簧边界倾斜角度明显或相邻两列弹簧不再平行则直接报警。

下面以两列弹簧为例,具体介绍如何根据分割结果识别倾斜弹簧故障。在弹簧间隙分割图像中,寻找4组点列。在分割图像的连通区域中搜索长度大于弹簧长度一半且连通区域位于整个图像左侧的轮廓,轮廓的最左侧点x坐标如小于图像宽度三分之一则为第一组点列;在分割图像的连通区域中搜索长度大于弹簧长度一半且连通区域位于整个图像右侧的轮廓,轮廓的最右侧点x坐标如大于图像宽度三分之二则为第二组点列;在分割图像的连通区域中搜索长度大于弹簧长度一半且连通区域位于整个图像左侧的轮廓,轮廓的最右侧点x坐标如大于等于图像宽度三分之一且小于等于图像宽度三分之二则为第三组点列;在分割图像的连通区域中搜索长度大于弹簧长度一半且连通区域位于整个图像右侧的轮廓,轮廓的最左侧点x坐标如大于等于图像宽度三分之一且小于等于图像宽度三分之二则为第四组点列。如第一组或第四组点列拟合直线的倾斜角度大于k直接报警;第二组与第三组拟合直线的夹角大于k直接报警。

s4、故障处理

故障识别后,根据子图到摇枕弹簧大图像的映射关系、摇枕弹簧大图像与原始图像的映射关系,计算出故障在原始图像中的位置,在显示界面上进行故障显示。

本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1