直线边缘缺陷检测

直线边缘缺陷检测模块通过分析图像中的直线边缘特征,能够精确定位并标记缺陷,并输出缺陷的位置和大小等信息。该模块常用于待检边缘区域呈现明显的直线状分布的场景。

本节内容包含:

模块原理

该模块将实际提取到的边缘与基准边缘直线比较,通过分析边缘的存在性和位置等信息,明确是否存在边缘缺陷。常见缺陷类型包括断裂和位置偏移等。

  • 断裂:根据断裂与基准边缘直线的位置关系,细分为左断裂和右断裂。

  • 位置偏移:根据缺陷与基准边缘直线的位置关系,细分为左缺陷、右缺陷。

该模的算法工作流程概览如下图所示。

图 1 算法工作流程概览

上图中各步骤解析如下。

  1. 选定检测区域,获取基准边缘直线。

    获取基准边缘直线的方式分如下两种:

    • 方式1:外部生成基准直线边缘并直接传入该模块。

      该方式对应如下三种场景:
      • 前序模块已经获取该边缘直线。

      • 已有图集的待检边缘区域无法有效提取稳定边缘直线。

      • 基准边缘直线已知。

    • 方式2:该模块内部通过直线查找自行查找基准直线边缘。

  2. 提取边缘点集。

    在基准边缘直线与检测ROI框的相交直线段上均等分布N个卡尺工具,每个卡尺提取一个边缘点,组成含有N个边缘点的边缘点集。换言之,即通过边缘采样的方式模拟待检边缘区域的边缘信息。

    说明:

    如果卡尺查找边缘点失败,则用卡尺中心点作为该边缘点。

    图 2 卡尺工具的分布方式
  3. 分析边缘点集。

    分如下两种分析方式:

    • 方式1:判定边缘点自身状态。如果查找失败,则为断裂边缘点,否则为OK边缘点。

    • 方式2:与基准直线比较。如果当前边缘点与基准边缘直线距离偏大,则认为是缺陷边缘点,否则为OK边缘点。

  4. 计算缺陷并输出缺陷信息。

    1. 将连续的断裂边缘点聚类,得到断裂区域;将连续的缺陷边缘点聚类,得到缺陷区域。

    2. 分别计算每个区域的面积和尺寸特征,并输出满足大于一定面积或尺寸要求的缺陷区域。

    图 3 缺陷面积与尺寸定义

    上图中,水平实线为基准边缘直线,蓝色点集为实际检测的边缘点集。

    某些场景下仅需要检测基准直线的同侧缺陷,其他场景基于基准直线明确边缘缺陷的位置。如下图所示,如果缺陷在基准直线轨迹方向的左侧,则为左断裂或左缺陷;如果缺陷在轨迹方向右侧,则为右断裂或右缺陷。

    图 4 缺陷极性

使用方法

在流程中,直线边缘缺陷检测的前后序模块详情如下。

表 1 前后序模块

前后序模块

描述

前序模块

一般将图像源作为直线边缘缺陷检测的前序模块,提供图像输入。前序模块还可包括直线查找,以实现更精确的目标定位

后续模块

无特定要求

一般场景下,在流程中调用直线边缘缺陷检测后,完成该模块的ROI绘制即可对目标图像进行直线边缘缺陷检测。如果检测结果不理想,可调整下文参数配置中提及的运行参数,直至检测结果符合预期。

图 5 检测结果示例
图 6 应用示例

参数配置

以下仅介绍该模块的运行参数详情和部分基本参数详情。

说明:

该模块的前序模块包含直线查找时,基本参数中需配置输入直线类型

输入直线类型

设置直线的输入方式,包括按线按点按坐标

按线

选择直线查找模块输出的直线作为输入直线。

按点

起点终点分别设置为直线查找模块输出直线的起点和终点。

按坐标

起点X坐标起点Y坐标终点X坐标终点Y坐标分别设置为直线查找模块输出直线的起点X坐标、起点Y坐标、终点X坐标和终点Y坐标。

可通过调整如下运行参数,定义当前模块如何处理输入的数据。

边缘类型

定义待查找的边缘类型。可设置为最强第一条最后一条

最强

仅以下边缘类型可被检测出:查找方向上梯度大于下文提及的边缘阈值,且变化幅度最大的边缘。

第一条

仅以下边缘类型可被检测出:查找方向上梯度大于边缘阈值的第一条边缘。

最后一条

仅以下边缘类型可被检测出:查找方向上梯度大于边缘阈值的最后一条边缘。

图 7 边缘类型
边缘极性

定义待查找的边缘的极性。极性指灰度变化的类型,可设置为从黑到白从白到黑任意极性。此处的“黑”和“白”分别用来描述灰度值的高和低。

滤波尺寸

用于增强边缘和抑制噪声,最小值为1。当边缘模糊或有噪声干扰时,增大该值有利于使得检测结果更加稳定。但如果边缘与边缘之间距离小于滤波尺寸,边缘位置的精度将受影响,甚至可能丢失边缘。

边缘阈值

边缘阈值即梯度阈值,取值范围0~255。仅梯度大于该值的边缘点可被检测到。数值越大,抗噪能力越强,得到的边缘数量越少,甚至导致目标边缘点被筛除。

卡尺高度

该值描述卡尺(可理解为“用于检测边缘点的ROI”)的高度。当边缘查找不准确时可适当增大该值。

卡尺宽度

该值描述卡尺的宽度。在一定范围内增大该值可以获取更加稳定的边缘点。噪点较多时建议取较大值,但相应的耗时将增大。

卡尺间距

该值描述相邻卡尺的间距。间距越小,获取的边缘点越多,但相应的耗时将增大。

缺陷极性

轨迹左侧轨迹右侧轨迹两侧缺陷三种极性。详情见上文模块原理中的图 4

缺陷距离阈值

如果查找到的边缘点与基准边缘直线的距离大于该阈值,则判定为待筛选缺陷点。

缺陷尺寸/面积使能

如果开启缺陷尺寸使能和(或)缺陷面积使能,则根据对应阈值做进一步筛选。相关原理请参见上文模块原理中的图 3

模块结果

该模块输出结果中各项参数详情,请参见直线边缘缺陷检测模块的输出结果