表面缺陷滤波模块适用于简单、无纹理背景的表面缺陷检测场景,可检测工件表面点状、线状、块状等不同形状的缺陷(划伤、破损、异物等),且不受材料表面亮度变化影响。
本节内容包含:
在对材料表面的缺陷进行检测时,缺陷区域往往呈现出与背景不同的灰度特征,导致表面灰度分布出现突变。表面缺陷滤波算法将该图像特征抽象为“异常灰度像素值在一定空间范围内构成的区域”,同时结合缺陷的空间与灰度分布特征,生成图像空域滤波器,对图像中的像素以及其邻域像素的分布进行分析。
下图示例为缺陷区域的一维信号波形。该图中,缺陷区域灰度值出现异于背景灰度分布的突变,且波形近似于高斯函数。
为了对不同方向的缺陷进行检测,将生成的滤波核进行旋转,得到不同方向的滤波核(示例如下)。
![]() |
![]() |
![]() |
![]() |
使用上述滤波核对缺陷图像进行滤波,并综合各个方向的滤波结果,得到最终的滤波响应结果。
缺陷原图 |
滤波响应结果 |
---|---|
![]() |
![]() |
基于上述基础工作原理,可将算法主要工作流程归纳如下:
生成不同方向的卷积滤波核。
分别使用生成的各滤波核对图像进行滤波处理。
综合各方向的滤波结果生成最终的缺陷滤波响应图。
根据滤波响应值判断缺陷是否存在。如果存在,同时输出缺陷的严重程度。
在流程中,表面缺陷滤波的前后序模块详情如下。
前后序模块 |
描述 |
---|---|
前序模块 |
前序模块为图像源,可为表面缺陷滤波提供图像输入 |
后序模块 |
后序模块为BLOB分析,可处理表面缺陷滤波生成的滤波响应图,并筛选出符合条件的缺陷blob |
以下仅介绍该模块的运行参数详情。
参数 |
描述 |
---|---|
滤波核宽度/高度 |
即滤波核尺寸,决定滤波核的视野大小。在缺陷检测时,模块对滤波核所覆盖的图像区域进行检测,因此需确保滤波核尺寸大于所要检测最大缺陷的宽度或高度的最小值。 设置原则:当设置的滤波核尺寸大于图像中缺陷尺寸的最小值时,针对相同大小的缺陷,滤波核尺寸越大,滤波效果越好,但算法耗时会显著增加。此时建议对需检测图像进行尺寸缩放以降低图像大小,但需确保需检测的缺陷信息无明显损失。 |
核的数量 |
即滤波核分析的角度颗粒度。软件根据设置的数值,在0到180度之间均匀分布滤波核方向。滤波核个数越多,算法检测的角度方向越多,能对更多方向的缺陷产生显著的滤波响应。 随着滤波核个数的增大,算法滤波效果提升并不明显,但算法耗时会相应增加。请根据实际情况设置,一般设置为6即可满足大部分需求。对于缺陷较为明显的样本,甚至可设置更少数量的滤波核个数。 |
标准差 |
即滤波核函数中的高斯标准差。标准差值越大,则波形的能量越发散,能对越大范围的信号产生响应,能检测更多缺陷特征较为微弱的区域;此外,对噪声信号的响应也会越明显。 设置该参数时,需根据缺陷信号的强度和表面粗糙度综合确定。
|
偏移 |
在整体滤波响应的结果中减掉该参数值。其作用为在调整波长和标准差等参数后,整体调整滤波响应的范围。
|
0/30/60/90/120/150度权重 |
滤波方向权重参数,包含0度、30度、60度、90度、120度和150度这6个方向的滤波响应权重。 当滤波核的个数不等于6时,其他方向的滤波响应权重由这6个方向的权重自适应计算得到。通过改变不同方向的权重,可控制某个方向的滤波结果对整体滤波响应值的作用。取值范围为-10 ~ +10,值越大,则该方向的滤波响应在进行结果融合时,所起到的作用越强。 |
该模块输出结果中各项参数详情,请参见表面缺陷滤波模块的输出结果。