异常检测

异常检测模块可通过边缘特征或灰度特征检测物料异常情况,并输出异常缺陷的位置信息。

本节内容包含:

模块原理

图像异常检测算法的工作流程分为注册阶段和检测阶段两大阶段。注册阶段,该算法基于合格样本提取特征,并构造特征模型。在之后的检测阶段,该算法将目标图像与合格样本图像进行比较:

  • 如果目标图像存在与合格样本图像不同的像素区域,该算法将根据异常程度给出异常得分,并将异常得分与预设的分数阈值进行比较。

  • 如果异常得分低于阈值,则判定图像为存在缺陷。

该算法的整体工作流程见下图。

图 1 图像异常检测算法原理

注册阶段

注册阶段,该算法的工作流程如下:

  1. 从注册的合格样本(即OK图像)中提取图像特征,获取特性向量。

  2. 根据所有注册样本的特性向量,构造统计模型,描述OK图像的特征分布。

检测阶段

检测阶段,该算法的工作流程如下:

  1. 对检测样本按照与注册时相同的方式提取特征。

  2. 将该特征与统计模型的特征进行比对。

  3. 根据两者的相似度输出相似度得分。

  4. 检测出得分低于阈值的图像区域作为缺陷区域。

使用方法

前后序模块

在流程中,该模块的前序模块一般为图像源。由于该模块的算法工作流程中存在模板匹配过程,所以无需进行粗定位。

主要配置步骤

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

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

  2. 配置缺陷模型

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

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

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

应用示例

下图为通过异常检测检测部件表面结构异常的示例。

图 2 应用示例

如下左图和右图分别为异常检测结果异常和正常的示例。

NG

OK

缺陷模型

异常检测模块需将目标图像与合格样本作比对,判断目标图像是否存在缺陷。创建缺陷模型的过程,即“注册上述合格样本,并基于合格样本进行算法训练”的过程。

已执行一次流程,使异常检测模块获取到图像源输入的图像。

请参照如下步骤创建并配置缺陷模型。

  1. 异常检测模块的配置窗口,选择缺陷模型页签。
  2. 单击新建模型,打开异常检测窗口。

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

  3. 设计基准,建立定位模型。
    说明:

    建立定位模型可避免因为位置偏差导致的误检。

    1. 在图像上特征明显的区域绘制掩膜。算法将在掩膜区域内提取图像特征。

      选项

      描述

      绘制扇圆形掩膜

      单击,并在图像上拖动光标绘制圆形掩膜。

      绘制矩形掩膜

      单击,并在图像上拖动光标绘制矩形掩膜。

      绘制多边形掩膜

      单击,可在图像上任意位置单击可设置多边形的顶点,双击结束绘制。

    2. 进行如下可选操作。

      可选操作

      描述

      删除掩膜

      右击掩膜,并在弹出的右键菜单上单击删除

      复制掩膜

      右击掩膜,并在弹出的右键菜单上单击复制

      调整掩膜位置

      单击选中掩膜,并拖拽调整其位置。

      选择匹配中心

      单击,并在图像上的合适位置单击,将其设置为模板的匹配中心。

      移动图像

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

      缩放图像

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

      清空掩膜

      单击清空掩膜。

      撤销上一步操作

      单击撤销上一步操作。

      恢复至撤销前

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

      图像自适应

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

      全屏显示

      单击将图像全屏显示。

    3. 单击生成模板。
      图 3 设定基准
    4. 可选操作: 如果模型中提取了不必要的轮廓点,单击,并将光标悬浮至这些轮廓点将其擦除。

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

      图 4 调整“橡皮擦”大小
    5. 可选操作: 在掩膜列表进行如下可选操作。

      可选操作

      描述

      隐藏/显示掩膜

      单击/隐藏或显示掩膜。

      屏蔽掩膜

      单击,再单击重新生成模板,可屏蔽该掩膜中的特征点提取。

      删除掩膜

      单击删除对应的掩膜。

    6. 可选操作: 如果生成的定位模型无法满足需求,调整模型参数取值并重新生成模型,直至模型满足需求。

      尺度模式速度尺度精度尺度阈值模式对比度阈值这些模型参数详情请参见高精度匹配模块的参数配置。其中精度尺度高精度匹配运行参数中的特征尺度

  4. 单击下一步,设定检测区域。
    1. 单击
    2. 在图像上拖动光标绘制检测区域。
    图 5 设定检测区域
  5. 单击下一步,对图像进行批量训练。
    1. 加载多张建模图像(包括OK图像和NG图像)进行统计训练。
      说明:

      至少需要一张OK图像进行建模,一般选择3~5张建模图像。

    2. 可选操作: 设置尺度模式特征类型
      尺度模式

      定义缺陷检测精度的配置模式,分为自动手动两种。默认为自动。如果自动模式满足针对缺陷的特征提取需求,则无需调节。

      • 自动:算法根据输入图像自动设置适配该图像的尺度宽度(具体定义见下文)。

      • 手动:选用该模式时,需手动设置尺度宽度取值。

      尺度宽度

      需检测出的缺陷的最小宽度(单位:pixel)。取值越小,缺陷检测精度越高,耗时越长。

      建议根据实际检测需求合理设置。例如,假设图像中存在A缺陷(尺寸较大)和B缺陷(尺寸较小),但仅需检测出A缺陷,那么可将该参数取值设置为略大于B缺陷尺寸的取值。

      特征类型

      设置算法在模型训练阶段从图像中提取的特征类型,包括全部轮廓特征灰度特征

      • 全部:提取轮廓特征和灰度特征。

      • 轮廓特征:仅提取轮廓特征。

      • 灰度特征:仅提取灰度特征。

    3. 选择OK图像,并在“模型注册”处单击OK,将该图像标记为OK。
    4. 选择NG图像,并在“模型注册”处单击NG,将该图像标记为NG。
    5. 单击训练
    6. 可选操作: 在“模型验证”处,滑动滑块调整OK标准。

      此处的标准数值表示验证图像与模型的相似度。数值越大,相似度越高。

      说明:

      验证参数中的匹配极性角度范围阈值类型的详情,请参见模板匹配中的同名参数。边缘阈值详情请参见下文的参数配置

    7. 导入验证图像,并单击模型验证,获取统计结果。
    8. 单击完成,返回缺陷模型页签。
    图 6 批量训练
  6. 缺陷模型页签进行如下可选操作。
    选项 描述

    编辑模板

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

    清空模板

    单击清空模板。

    载入模板

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

    导出模板

    单击将模板导出至本地路径。

参数配置

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

说明:
分数阈值

低于评分阈值的目标将被判定为NG。

下采样率

如果该参数值为k,则即是在原图中每行每列每隔k个点取一个点组成一幅图像。因此该参数值越大,轮廓点越稀疏,轮廓越不精细。该参数值不宜设置过大。

最小匹配分数

缺陷模型与图像中目标的相似程度,即相似度阈值。相似度达到该阈值时,目标才会被搜索到,最大取值为1,表示目标与模型完全一致。

匹配极性

极性表示特征图形到背景的颜色过渡情况。如果查找目标的边缘极性和缺陷模型的极性不一致时,仍要保证目标被查找到,则匹配极性需设置成不考虑极性。如不需要则可设置成考虑极性,可缩短查找时间。

角度范围

待匹配目标相对于已创建模型的角度变化范围,若要搜索有旋转变化的目标则需设置该参数,有效值范围-180~ 180。

图 7 效果示例
阈值类型

设置边缘阈值的类型。边缘阈值指边缘对比度阈值,即轮廓点和背景的灰度值的差距阈值。仅大于该阈值的轮廓点可被提取。

自动阈值

根据目标图像自适应边缘阈值。

模板阈值

以模板的边缘阈值经过内部转换后作为匹配阶段的边缘阈值。

手动阈值

以手动设定的边缘阈值作为边缘阈值。

模块结果

该模块输出结果中各项参数详情,请参见异常检测的输出结果