边缘模型缺陷检测

通过边缘模型缺陷检测模块,可将目标物体边缘与基准模型进行对比,输出边缘缺陷信息,如边缘偏移和断裂。

本节内容包含:

模块原理

该模块的边缘缺陷检测算法包括位置偏移缺陷检测、断裂缺陷检测和阶梯缺陷检测。

说明:

该模块的边缘检测基于卡尺工具

位置偏移缺陷检测

边缘位置缺陷检测模块通过检测边缘与模型边缘的距离进行缺陷判定。如果当前点的距离超过预设的阈值(即下文参数配置中的位置偏移阈值),则判定为位置偏移缺陷点。如果存在连续位置偏移缺陷点且长度大于预设的阈值(即下文参数配置中的缺陷长度阈值),则构成位置偏移缺陷区域。

图 1 位置偏移缺陷示例

断裂缺陷检测

如果查找边缘点失败,则当前卡尺检测区域被认定为断裂点。

此时将卡尺中心赋值为边缘点,如果连续相连的断裂点长度满足预设的阈值(即下文参数配置缺陷长度阈值),则判定为是断裂缺陷区域。

图 2 断裂缺陷

阶梯缺陷检测

将检测出的边缘与基准模型中的边缘进行对比。如果相邻点在垂直方向上的偏离距离大于预设的阈值(即下文参数配置阶梯偏离高度),则判定为阶梯点。如果相邻阶梯点的尺寸大于预设的阈值(即下文参数配置最小阶梯长度,则认为是阶梯缺陷区域。

图 3 阶梯缺陷

使用方法

前后序模块

如果待检测目标在视野内存在位姿变化,边缘模型缺陷检测的前序模块一般包括图像源位置修正模板匹配等模块。前序模块用于对边缘做粗定位,边缘模型缺陷检测进行精定位。

如果待检测目标在视野内无位姿变化,边缘模型缺陷检测可仅与图像源搭配使用。

说明:

前序模块包含位置修正时,创建位置修正基准点时必须在一张图像上进行。需先运行一次流程,双击位置修正模块手动点击创建基准点。

边缘模型缺陷检测对后序模块无特殊要求。

主要配置步骤

在流程中调用该模块后,该模块的主要配置步骤如下:

  1. 配置该模块的基本参数,详情参见基本参数

  2. 配置边缘模型

  3. 配置该模块的运行参数

  4. 配置该模块的结果显示

  5. 执行或连续执行该模块,查看该模块的输出结果。

应用示例

下图所示的应用示例中,与模型不匹配的边缘,在结果图像中标红显示。

图 4 应用示例

边缘模型

边缘模型缺陷检测模块需将目标图像的轮廓与基准图像比对,判断目标图像的轮廓是否存在缺陷。创建边缘模型即创建上述基准图像的过程。

已执行一次流程,使边缘模型缺陷检测模块获取到图像源输入的图像。

请参照如下步骤创建并配置边缘模型。

  1. 边缘模型缺陷检测模块的配置窗口,选择边缘模型页签。
    图 5 边缘模型页签
  2. 单击打开模板配置窗口。

    该窗口默认显示当前图像源模块采集的图像。如需基于其他图像进行模板配置,可单击选择其他图像

    图 6 模板配置窗口
  3. 单击,并在图像上绘制待提取为模型的轮廓轨迹。

    单击可绘制轨迹的节点,拖动光标可绘制线段,双击可结束绘制。

  4. 可选操作: 进行如下可选操作。
    选项 描述

    移动图像

    单击后,将光标移动至图像上并拖拽图像进行移动。

    缩放图像

    单击/缩放图像;或将光标置于图像区域,并滚动鼠标滚轴缩放图像。

    清空轨迹

    单击清空轨迹。

    撤销上一步操作

    单击撤销上一步操作。

    恢复至撤销前

    单击取消撤销,恢复至撤销前的状态。

    图像自适应

    单击将图像大小设置为自适应模式。

    全屏显示

    单击将图像全屏显示。

    删除轨迹节点

    将光标悬浮至轨迹正上方,直至显示轨迹节点(见下图 )。此时右键单,并在弹出的右键菜单上单击删除

    插入轨迹节点

    将光标悬浮至轨迹正上方,直至显示轨迹节点(见下图)。此时右键单,并在弹出的右键菜单上单击插入点

    删除轨迹节点

    将光标悬浮至轨迹正上方,直至显示轨迹节点(见下图)。此时右键单,并在弹出的右键菜单上单击删除点

    闭合轨迹

    将光标悬浮至轨迹正上方,直至显示轨迹节点(见下图)。此时右键单,并在弹出的右键菜单上单击闭合轨迹,将未闭合的路径轨迹闭合。

    调整轨迹节点位置

    将光标悬浮至轨迹正上方,直至显示轨迹节点(见下图)。此时拖拽节点调整其位置。

    清空基准

    如果模板中用于位置修正的基准点不符合要求,单击清空基准可重新设置用于位置修正的基准点。

    图 7 轨迹节点
  5. 单击生成模型。
    图 8 模型效果示例
  6. 可选操作: 如果模型中提取了不必要的轮廓点,单击,并将光标悬浮至这些轮廓点将其擦除。

    可单击右下角的三角形图标,并在弹出的浮窗滑动滑块调整“橡皮擦”的大小。

    图 9 调整“橡皮擦”大小
  7. 可选操作: 如果基于默认取值的训练参数生成的模型无法满足需求,调整参数取值并重新生成模型,直至模型满足需求。
    边缘类型

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

    最强

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

    第一条

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

    最后一条

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

    图 10 边缘类型
    边缘极性

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

    边缘强度

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

    卡尺高度

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

    卡尺宽度

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

    卡尺间距

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

    边缘精细检测

    如果不开启,则基于绘制轨迹放置卡尺并提取边缘点。

    如果开启,算法首先将基于绘制轨迹放置卡尺并提取边缘点;然后使用边缘点形成新的轨迹,并再次放置卡尺提取边缘点。开启的作用是,通过实际查找的边缘点修正手动绘制的轨迹,降低手动绘制的轨迹不准确可能引入的风险,使边缘更加精确。

    滤波尺寸

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

  8. 可选操作: 单击将模板保存至本地路径。
  9. 单击模板配置窗口右下角的确定,完成模板配置,并返回边缘模型页签。
  10. 边缘模型页签进行如下可选操作。
    选项 描述

    编辑模板

    单击编辑模板继续编辑模板。

    载入模板

    单击从本地路径载入模板。

参数配置

以下仅介绍该模块的运行参数详情。通过配置运行参数,可定义当前模块如何处理输入的数据。

说明:

运行参数中的检测参数与边缘模型中的训练参数相同,其余运行参数详情如下。

缺陷长度阈值

如果存在连续位置偏移缺陷点,且由这些缺陷点构成的轮廓的长度大于该参数值,则判定这些缺陷点所在区域存在位置偏移缺陷。

位置缺陷使能

开启并配置如下参数后,该模块可检测位置偏移缺陷。

位置偏移阈值

如果目标图像边缘点与建模图像的标准边缘点的距离大于该阈值,则判定为位置偏移缺陷待选点。

断裂缺陷使能

开启后,该模块可检测断裂缺陷。

阶梯缺陷使能

开启并按需配置如下子参数后,该模块可检测锯齿类缺陷。该类缺陷尺寸和面积较小,且偏离幅度较低。

阶梯偏离高度

检测图像中,如果相邻的两个边缘点高度偏差若大于该阈值,则判定为阶梯缺陷候选点。

最小阶梯长度

阶梯缺陷候选点相邻的个数超该值,则判定为阶梯缺陷。

灰度辅助检测

开启后,算法基于建模时的理想边缘灰度信息提取边缘,具体机制如下:

根据模型边缘灰度信息,对检测卡尺输出的边缘进行评分,其中平均灰度和灰度邻域评分各占0.5的权重,卡尺输出的后续边缘所占权重依次递减20%。最后统计评分信息,将得分最高的边缘输出。

滤波尺寸

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

追踪容忍

距离阈值,用于边缘点修正,去除干扰点。若为0,则不作边缘点修正,若大于0,则在该距离阈值内寻找更符合边缘趋势的边缘点。

图 11 追踪容忍效果示意

模块结果

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