一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种工业影像裂纹检测方法与流程

2022-04-30 02:12:58 来源:中国专利 TAG:


1.本发明涉及工业影像瑕疵检测领域,具体涉及一种工业影像裂纹检测方法。


背景技术:

2.随着社会不断的进步,经济不断的发展,现代工业生产也随之兴盛起来,在越来越多的现代工业生产中,使用工业视觉检测技术也越来越普遍,通过工业视觉检测系统可以更好的检查出生产流程中出现的瑕疵。工业产品的表面瑕疵严重影响着产品本身的质量,如何避免表面瑕疵进行质量控制一直是生产企业所面临的最大问题,传统的人工检测不仅费用昂贵、检测人员容易疲劳以及容易瑕疵漏检等弊端。提升产品的质量的合格率,减少质量差的产品销售到顾客手中,并且对公司的口碑进行有效的维护。除此之外,工业视觉检测还可以帮助企业的提升生产率,从而提升企业的营业额。
3.目前的机器视觉瑕疵检测系统凝聚了机器视觉领域的多项先进技术应用,很快融入了创新的检测理念,根据采用自动上下料、自动剔除机构,可实现分工位或单工位检测。所以,这可以应用于汽车、电子等行业。
4.裂纹检测是瑕疵检测中常见的一种,然而,由于噪声、弱边界、光照不均匀等因素的影像,使得传统的梯度算子很难得到理想分析结果。深度学习方法可以较好地获取裂纹区域,然而该类方法需要大量的标定好的数据。对于工业检测而言,待分析对象不一致使得深度学习网络需要重新学习,而该类问题很难得到大量标定好的数据。因此如何利用图像处理技术获取影像中的裂纹具有很重要的研究意义。


技术实现要素:

5.为了克服现有技术中的不足,本发明提出一种工业影像裂纹检测方法,其能够及时检测出影像中工件裂纹长度、宽度等参数,从而判定工件是否属于合格品。
6.为了实现上述目的,本发明提出的一种工业影像裂纹检测方法,包括如下步骤:
7.s1:读取影像并灰度化;
8.s2:计算每个像素点的邻域信息熵:
[0009][0010]
式中,为当前点x的邻域,尺寸为k
×
k,p(y)为点y在邻域内的近似概率:
[0011][0012]
其中mean为邻域均值。由于裂纹区域灰度常低于非裂纹区域。因此当前邻域内含有裂纹时,其邻域均值小于正常区域灰度。,为突出裂纹区域信息,本发明将灰度大于均值区域部分概率定义0。邻域中裂纹区域占比越大,其信息熵越大。
[0013]
s3:对信息熵矩阵进行二值化:
[0014]
由于影像中含有少量的裂纹,而在信息熵矩阵中,裂纹区域数值较高。因此利用整个信息熵中的均值与标准差可以较好地将信息熵矩阵进行二值化:
[0015][0016]
其中mean为信息熵矩阵整体均值,std为信息熵矩阵整体标准差。
[0017]
s4:对获取的二值化影像进行形态学腐蚀操作;
[0018]
由于在s2中使用了邻域信息,因此s3中获得的二值化后的信息熵矩阵bw中含有的裂纹区域比正常的裂纹区域范围大。因此本步骤使用形态学腐蚀操作对bw进行腐蚀。尺寸为k
×
k。
[0019]
s5:计算裂纹区域的长度与宽度。
[0020]
由于噪声、光照不均匀等因素干扰,使得获取的bw中含有伪目标。部分待测影像中目标区域含有灰度较低区域,使得bw中含有伪目标。因此本步骤含有如下细分步骤。
[0021]
s5-01:利用如下算法提取bw中每个连通区域并计算面积
[0022]
算法s5-01
[0023]
step1:构造一个与bw等大小的矩阵bw2,每个点取值为0,定义计数变量 index=0;
[0024]
step2:按照行顺序遍历bw,找到第一个等于1的点(记为x),index=index 1,建一个栈。
[0025]
step3:令bw(x)=0,bw2(x)=1。
[0026]
step4:将x的4邻域点取出,若该4邻域点在bw中取值为1,bw2中取值为0,则该点进栈。
[0027]
step5:若当前栈非空,则出栈,该点记为x,转step3。若当前栈为空,则转step2,直到bw中所有点为0.
[0028]
step6:此时,每个连通区域在bw2中对应一个index。计算每个连通区域面积。
[0029]
s5-02:剔除bw2中面积小于阈值的区域,大于阈值的区域,令其对应位置数值为0。
[0030]
s5-03:利用如下算法计算每个连通区域的宽度
[0031]
算法s5-03
[0032]
step1:构造一个与bw2等大小的矩阵bw3,每个点取值为0。构建一个向量
[0033]
wide,记录每个连通区域的宽度。令index=1。
[0034]
step2:wide(index)=1,获得bw2中取值为index的区域
[0035][0036]
step3:对bw3进行腐蚀操作,半径为1;
[0037]
step4:若bw3含有非零元素,则wide(index)=wide(index) 1,转step3。若bw3 不含有非零元素。此时区域宽度记为wide(index)=wide(index)*2。
[0038]
step5:index=index 1;若index小于连通区域个数,则转step2。否则结束算法。
[0039]
s5-04:利用如下算法计算每个连通区域的长度
[0040]
算法s5-04
[0041]
step1:构造一个与bw2等大小的矩阵bw3,每个点取值为0。构建一个向量
[0042]
length,记录每个连通区域的长度,令index=1。
[0043]
step2:;wide(index)=1,获得bw2中取值为index的区域
[0044][0045]
step3:提取所有bw3中的区域边界点,记为r;
[0046]
step4:计算r中两两点的距离,最大距离即为邻域长度length(index)。
[0047]
step5:index=index 1;若index小于连通区域个数,则转step2。否则结束算法。
[0048]
本发明具有以下有益效果:
[0049]
本发明提出的一种工业影像裂纹检测方法,其能够客观量化影像中裂纹的宽度、长度等信息,降低了噪声、光照不均匀带来的影响。
附图说明
[0050]
下面结合附图对本发明作进一步描写和阐述。
[0051]
图1是本发明提出的一种工业影像裂纹检测方法流程图。
[0052]
图2是一张含有瑕疵的影像。
[0053]
图3是图2的瑕疵区域所对应的信息熵。
[0054]
图4是利用信息熵计算所得图2瑕疵所对应的二值化结果。
[0055]
图5是为对二值化图(图4)进行形态学腐蚀后的结果。
具体实施方式
[0056]
下面将结合附图、通过对本发明的优选实施方式的描述,更加清楚、完整地阐述本发明的技术方案。
[0057]
实施例
[0058]
如图1所示,本发明提出的一种工业影像裂纹检测方法,包括如下步骤:
[0059]
s1:读取影像并灰度化。图2为原始图像。
[0060]
s2:计算每个像素点的邻域信息熵:
[0061][0062]
式中,为当前点x的邻域,尺寸为k
×
k,p(y)为点y在邻域内的近似概率:
[0063][0064]
其中mean为邻域均值。由于裂纹区域灰度常低于非裂纹区域。因此当前邻域内含有裂纹时,其邻域均值小于正常区域灰度。,为突出裂纹区域信息,本发明将灰度大于均值区域部分概率定义0。邻域中裂纹区域占比越大,其信息熵越大。图3为图2的信息熵。由结果可以看出瑕疵区域比其它区域信息熵大。
[0065]
s3:对信息熵矩阵进行二值化:
[0066]
由于影像中含有少量的裂纹,而在信息熵矩阵中,裂纹区域数值较高。因此利用整
个信息熵中的均值与标准差可以较好地将信息熵矩阵进行二值化:
[0067][0068]
其中mean为信息熵矩阵整体均值,std为信息熵矩阵整体标准差。图4为二值化结果。
[0069]
s4:对获取的二值化影像进行形态学腐蚀操作;
[0070]
由于在s2中使用了邻域信息,因此s3中获得的二值化后的信息熵矩阵bw中含有的裂纹区域比正常的裂纹区域范围大。因此本步骤使用形态学腐蚀操作对bw进行腐蚀。尺寸为k
×
k。图5为对二值化图进行形态学腐蚀后的结果。
[0071]
s5:计算裂纹区域的长度与宽度。
[0072]
由于噪声、光照不均匀等因素干扰,使得获取的bw中含有伪目标。部分待测影像中目标区域含有灰度较低区域,使得bw中含有伪目标。因此本步骤含有如下细分步骤。
[0073]
s5-01:利用如下算法提取bw中每个连通区域并计算面积
[0074]
算法s5-01
[0075]
step1:构造一个与bw等大小的矩阵bw2,每个点取值为0,定义计数变量index=0;
[0076]
step2:按照行顺序遍历bw,找到第一个等于1的点(记为x),index=index 1,建一个栈。
[0077]
step3:令bw(x)=0,bw2(x)=1。
[0078]
step4:将x的4邻域点取出,若该4邻域点在bw中取值为1,bw2中取值为0,则该点进栈。
[0079]
step5:若当前栈非空,则出栈,该点记为x,转step3。若当前栈为空,则转step2,直到bw中所有点为0.
[0080]
step6:此时,每个连通区域在bw2中对应一个index。计算每个连通区域面积。
[0081]
s5-02:剔除bw2中面积小于阈值的区域,大于阈值的区域,令其对应位置数值为0。
[0082]
s5-03:利用如下算法计算每个连通区域的宽度
[0083]
算法s5-03
[0084]
step1:构造一个与bw2等大小的矩阵bw3,每个点取值为0。构建一个向量wide,记录每个连通区域的宽度。令index=1。
[0085]
step2:wide(index)=1,获得bw2中取值为index的区域
[0086][0087]
step3:对bw3进行腐蚀操作,半径为1;
[0088]
step4:若bw3含有非零元素,则wide(index)=wide(index) 1,转step3。若bw3 不含有非零元素。此时区域宽度记为wide(index)=wide(index)*2。
[0089]
step5:index=index 1;若index小于连通区域个数,则转step2。否则结束算法。
[0090]
s5-04:利用如下算法计算每个连通区域的长度
[0091]
算法s5-04
[0092]
step1:构造一个与bw2等大小的矩阵bw3,每个点取值为0。构建一个向量
[0093]
length,记录每个连通区域的长度,令index=1。
[0094]
step2:;wide(index)=1,获得bw2中取值为index的区域
[0095][0096]
step3:提取所有bw3中的区域边界点,记为r;
[0097]
step4:计算r中两两点的距离,最大距离即为邻域长度length(index)。
[0098]
step5:index=index 1;若index小于连通区域个数,则转step2。否则结束算法。
[0099]
s6:判定所求结果是否满足良品要求,若不满足则标记为废品。
[0100]
上述具体实施方式仅仅对本发明的优选实施方式进行描述,而并非对本发明的保护范围进行限定。在不脱离本发明设计构思和精神范畴的前提下,本领域的普通技术人员根据本发明所提供的文字描述、附图对本发明的技术方案所作出的各种变形、替代和改进,均应属于本发明的保护范畴。本发明的保护范围由权利要求确定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献