直线边缘缺陷检测模块通过分析图像中的直线边缘特征,能够精确定位并标记缺陷,并输出缺陷的位置和大小等信息。该模块常用于待检边缘区域呈现明显的直线状分布的场景。
本节内容包含:
该模块将实际提取到的边缘与基准边缘直线比较,通过分析边缘的存在性和位置等信息,明确是否存在边缘缺陷。常见缺陷类型包括断裂和位置偏移等。
断裂:根据断裂与基准边缘直线的位置关系,细分为左断裂和右断裂。
位置偏移:根据缺陷与基准边缘直线的位置关系,细分为左缺陷、右缺陷。
该模的算法工作流程概览如下图所示。
上图中各步骤解析如下。
选定检测区域,获取基准边缘直线。
获取基准边缘直线的方式分如下两种:
方式1:外部生成基准直线边缘并直接传入该模块。
前序模块已经获取该边缘直线。
已有图集的待检边缘区域无法有效提取稳定边缘直线。
基准边缘直线已知。
方式2:该模块内部通过直线查找自行查找基准直线边缘。
提取边缘点集。
在基准边缘直线与检测ROI框的相交直线段上均等分布N个卡尺工具,每个卡尺提取一个边缘点,组成含有N个边缘点的边缘点集。换言之,即通过边缘采样的方式模拟待检边缘区域的边缘信息。
如果卡尺查找边缘点失败,则用卡尺中心点作为该边缘点。
分析边缘点集。
分如下两种分析方式:
方式1:判定边缘点自身状态。如果查找失败,则为断裂边缘点,否则为OK边缘点。
方式2:与基准直线比较。如果当前边缘点与基准边缘直线距离偏大,则认为是缺陷边缘点,否则为OK边缘点。
计算缺陷并输出缺陷信息。
将连续的断裂边缘点聚类,得到断裂区域;将连续的缺陷边缘点聚类,得到缺陷区域。
分别计算每个区域的面积和尺寸特征,并输出满足大于一定面积或尺寸要求的缺陷区域。
上图中,水平实线为基准边缘直线,蓝色点集为实际检测的边缘点集。
某些场景下仅需要检测基准直线的同侧缺陷,其他场景基于基准直线明确边缘缺陷的位置。如下图所示,如果缺陷在基准直线轨迹方向的左侧,则为左断裂或左缺陷;如果缺陷在轨迹方向右侧,则为右断裂或右缺陷。
在流程中,直线边缘缺陷检测的前后序模块详情如下。
前后序模块 |
描述 |
---|---|
前序模块 |
|
后续模块 |
无特定要求 |
一般场景下,在流程中调用直线边缘缺陷检测后,完成该模块的ROI绘制即可对目标图像进行直线边缘缺陷检测。如果检测结果不理想,可调整下文参数配置中提及的运行参数,直至检测结果符合预期。
以下仅介绍该模块的运行参数详情和部分基本参数详情。
该模块的前序模块包含直线查找时,基本参数中需配置输入直线类型。
可通过调整如下运行参数,定义当前模块如何处理输入的数据。
定义待查找的边缘类型。可设置为最强、第一条或最后一条。
定义待查找的边缘的极性。极性指灰度变化的类型,可设置为从黑到白、从白到黑或任意极性。此处的“黑”和“白”分别用来描述灰度值的高和低。
用于增强边缘和抑制噪声,最小值为1。当边缘模糊或有噪声干扰时,增大该值有利于使得检测结果更加稳定。但如果边缘与边缘之间距离小于滤波尺寸,边缘位置的精度将受影响,甚至可能丢失边缘。
边缘阈值即梯度阈值,取值范围0~255。仅梯度大于该值的边缘点可被检测到。数值越大,抗噪能力越强,得到的边缘数量越少,甚至导致目标边缘点被筛除。
该值描述卡尺(可理解为“用于检测边缘点的ROI”)的高度。当边缘查找不准确时可适当增大该值。
该值描述卡尺的宽度。在一定范围内增大该值可以获取更加稳定的边缘点。噪点较多时建议取较大值,但相应的耗时将增大。
该值描述相邻卡尺的间距。间距越小,获取的边缘点越多,但相应的耗时将增大。
有轨迹左侧、轨迹右侧和轨迹两侧缺陷三种极性。详情见上文模块原理中的图 4。
如果查找到的边缘点与基准边缘直线的距离大于该阈值,则判定为待筛选缺陷点。
如果开启缺陷尺寸使能和(或)缺陷面积使能,则根据对应阈值做进一步筛选。相关原理请参见上文模块原理中的图 3。
该模块输出结果中各项参数详情,请参见直线边缘缺陷检测模块的输出结果。