卡尺工具

卡尺工具主要用于测量物体的宽度、边缘的特征的位置以及图像中边缘对的位置和间距。通过该模块可在图像ROI内进行快速且精确的检测和定位。

本节内容包含:

模块原理

工作流程概述

该模块的算法工作流程可概括为:将图像区域内数据沿一个方向投影之后得到一维数据,对该数据进行滤波处理,选择局部极值,并对这些极值按照预设的方式计算得分,最终输出符合得分要求的亚像素极值点。

图 1 算法工作流程
工作流程详解

上图算法工作流程中各步骤的详情如下。

步骤1:输入ROI

从前序模块获取ROI输入。

步骤2:投影(即一维信号提取)

在图像中选取感兴趣区域,即投影区域。该区域的处理相当于沿着某特定方向上的均值滤波处理。一般情况下,有角度的矩形投影区域不与像素网格对齐,卡尺工具通过插值的方法获取采样区域。投影区域的形状目前支持任意角度的矩形。卡尺工具放置的投影区域可能会超出图像的边界。超出图像边界的区域,则填充其他灰度值。

图 2 一维信号提取
步骤3:一维差分滤波

一维投影获取到的ROI的一维信息,既包含ROI边缘,也包含其他的边缘和噪声。使用差分滤波可以对一维图像起到增强ROI边缘和抑制噪声的作用。

如下两张示意图为不同滤波核大小的滤波结果对比。一般情况下,滤波核越大,抑制噪声的能力越强,但极值点位置的精度可能会越差。

图 3 一维差分滤波(滤波核尺寸=3)
图 4 一维差分滤波(滤波核尺寸=5)
步骤4:极值点查找

算法根据边缘极性类型的不同,选取合适的极值点查找目标,如下表所示。

边缘极性类型

极值点查找目标

白到黑

极小值(谷值)

黑到白

极大值(峰值)

任意极性

极大值(峰值)、极小值(谷值)

如下图所示,绿色箭头所示的边缘极性为“白到黑”,红色箭头所示为“黑到白”。此处的“黑”和“白”是表示灰度值高低的相对概念。经过滤波后,边缘极性将转换成另一种展现形式,即极小值(谷值)和极大值(峰值),分别如上文的图:滤波核尺寸=3图:滤波核尺寸=5所示。

图 5 边缘极性
步骤5:极值点插值

对提取极值点进行插值,得到亚像素精度的边缘位置。

步骤6:极值点评分

评分方法类型按评分准则分为位置评分间距评分对比度评分三大类。

位置评分

位置评分是根据候选边缘与卡尺工具指定的投影区域中心的相对位置进行评分。若期望ROI边缘相对投影区域中心为特定距离,可指定一个绝对位置评分系统,并根据像素绝对距离反馈分数。在边缘对查找模式中,若希望观察候选边缘与投影区域中心间距离相对边缘对宽度大小的变化,可以定义一个相对位置评分系统。在该种评分系统中,原始分数将被归一化,1.0评分则代表边缘对距离与边缘对宽度大小一致。

  • 绝对位置:可通过下文参数配置中提及的位置配置。按边缘或边缘对的中心点相对投影区域中心点的绝对位置差(投影区域中心点左右两边都是值都是正数)评分。

  • 相对位置:可通过下文参数配置中提及的相对位置配置。按边缘或边缘对的中心点相对投影区域中心点的位置差(投影区域中心点左右两边一边是负数一边是正数)评分。

  • 归一化位置:可通过下文参数配置中提及的归一化位置配置。按边缘对的中心点相对投影区域中心点的绝对归一化距离评分,归一化分母为边线对宽度。

  • 归一化相对位置:可通过下文参数配置中提及的归一化相对位置配置。按边缘对的中心点相对投影区域中心点的归一化位置差(可正可负)评分,归一化分母为边缘对宽度。

间距评分

在边缘对查找模式中,边缘对间距评分可以反映边缘对的真实距离(实际测量宽度)与边缘对宽度(外部输入宽度)之间的差异程度。

间距差:可通过下文参数配置中提及的间距差配置。按“(边缘对距离-边缘对宽度)/边缘对宽度”,单边计分方式,理想情况下该值接近0。

  • 相对间距差:可通过下文参数配置中提及的相对间距差配置。按(边缘对距离-边缘对宽度)/边缘对宽度,双边计分方式,理想情况下该值接近0,与间距差不同在于可以计分曲线的不同,而且考虑正负值。

  • 间距:可通过下文参数配置中提及的间距配置。按边对距离/边缘对宽度,理想情况下接近1。

对比度评分

可对候选边缘进行对比度评分。此处的边缘对比度反映边缘处像素值变化的剧烈程度。最大得分为1.0,相当于边缘对比度255(边缘对比度的最大值),如果是边缘对查找模式,则使用两个边缘的平均对比度作为评分因子。

  • 对比度:可通过下文参数配置中提及的对比度配置。可以简单理解为明暗区域边界中明区域与暗区域像素的绝对值差,按边缘对比度或边缘对对比度均值计分。

  • 灰度:可通过下文参数配置中提及的灰度配置。可以简单理解为区域边缘的像素值,但该像素值可能落在亮区域也可能落在暗区域,按边缘灰度或边缘对灰度均值计分。

除了“相对间距差”是双边计分函数以外,其他计分方式均为单边计分函数。该种函数具有两种形式,如下图所示。

图 6 单边计分函数(递增函数)
图 7 单边计分函数(递减函数)

递增函数指曲线前半段平,后半段上升。递减函数指曲线前半段下降,后半段平,可通过设置水平坐标x0、x1、xc来修改函数曲线的走势分布。

双边计分函数可以认为是左右两个单边函数的合并,所以共有四种组合方式,即:
  • “递增”函数+“递减”函数

  • “递增”函数+“递增”函数

  • “递减”函数+“递减”函数

  • “递减”函数+“递增”函数

图 8 递增函数+递减函数
图 9 递减函数+递增函数
说明:

所有的计分方式既可以单独使用,也可以联合使用。当使用多种计分方式时,需要对各个计分方式进行合并,从而得出总计分结果,总计分的计算公式如下所示:

步骤7:边缘输出

输出符合要求的边缘轮廓。

使用方法

在流程中,卡尺工具主要与图像源模板匹配位置修正组合调用,以便在图像指定区域内精确定位边缘点或边缘点对。通过模板匹配位置修正做粗定位,卡尺工具做精定位,可实现对指定边缘点或边缘点对的高精度检测。

说明:

下图中ROI(蓝色矩形框)上的箭头表示边缘查找方向。

图 10 示例

参数配置

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

说明:
表 1 运行参数

参数

描述

边缘模式

设置检测模式,可选单边缘边缘对

单边缘:检测指定区域内的边缘位置,可用于定位、计数和判断有无等。

边缘对:检测指定区域内的边缘间距 。典型应用为在工件尺寸测量场景中获取特定边缘对间的距离。

滤波尺寸

用于增强边缘和抑制噪声,最小值为1。当边缘模糊或有噪声干扰时,增大该值有利于使检测结果更加稳定。但如果边缘与边缘之间挨得太近,会影响边缘位置的精度甚至丢失边缘。

边缘阈值

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

边缘0/1极性

极性表示边缘的灰度值变换趋势,可选从黑到白从白到黑任意极性

边缘模式设置为边缘对时,才有边缘1极性参数。

边缘对宽度

边缘模式设置为边缘对时,才有该参数。

期望输出的边缘对的像素间距尺寸。单独调节该参数无法直接筛选出期望的边缘对,仅当位置归一化计分、相对位置归一化计分、间距计分、间距差计分、相对间距差计分中一个或多个计分方式开启时调节该参数有意义,且作为计分因子的缩放因子使用。

最大结果数

期望输出的边缘对最大数量,若实际查找到的对数大于该参数,则按照分数由高到低输出该参数数量的边缘对,否则输出实际边缘对数。

排序方式

设置最终输出的边缘点在当前结果页签的显示排序,分为分数升序分数降序方向正向方向逆向四种类型。

对比度/边缘对对比度

边缘模式设置为单边缘时,该参数为对比度边缘模式设置为边缘对时,该参数为边缘对对比度

启用后,按“边缘对比度”或“边缘对对比度”均值计分。计分方式均为上文模块原理中提及的单边计分函数。函数形式为递增或递减可通过曲线类型设置;起点X中点终点Y计分分别对应上文递增函数图/递减函数图中的x0、x1、xc和y0 ~ y1。

灰度

启用后,按边缘灰度或边缘对灰度均值计分。

计分方式均为上文模块原理中提及的单边计分函数。函数形式为递增或递减可通过曲线类型设置;起点X中点终点Y计分分别对应上文递增函数图/递减函数图中的x0、x1、xc和y0 ~ y1。

位置

启用后,按边缘或边缘对的中心点相对投影区域中心点的绝对位置之差评分。

计分方式均为上文模块原理中提及的单边计分函数。函数形式为递增或递减可通过曲线类型设置;起点X中点终点Y计分分别对应上文递增函数图/递减函数图中的x0、x1、xc和y0 ~ y1。

相对位置

启用后,按边缘或边缘对的中心点相对投影区域中心点的位置差(可正可负)评分。

计分方式均为上文模块原理中提及的单边计分函数。函数形式为递增或递减可通过曲线类型设置;起点X中点终点Y计分分别对应上文递增函数图/递减函数图中的x0、x1、xc和y0 ~ y1。

归一位置

边缘模式设置为边缘对时,才有该参数。启用后,按边缘对的中心点相对投影区域中心点的绝对归一化距离评分。

计分方式均为上文模块原理中提及的单边计分函数。函数形式为递增或递减可通过曲线类型设置;起点X中点终点Y计分分别对应上文递增函数图/递减函数图中的x0、x1、xc和y0 ~ y1。

归一相对位置

边缘模式设置为边缘对时,才有该参数。启用后,按边缘对的中心点相对投影区域中心点的归一化位置差(可正可负)评分。

计分方式均为上文模块原理中提及的单边计分函数。函数形式为递增或递减可通过曲线类型设置;起点X中点终点Y计分分别对应上文递增函数图/递减函数图中的x0、x1、xc和y0 ~ y1。

间距

边缘模式设置为边缘对时,才有该参数。启用后,按按边对距离/边缘对宽度,单边计分方式评分。

计分方式均为上文模块原理中提及的单边计分函数。函数形式为递增或递减可通过曲线类型设置;起点X中点终点Y计分分别对应上文递增函数图/递减函数图中的x0、x1、xc和y0 ~ y1。

间距差

边缘模式设置为边缘对时,才有该参数。启用后,按|(边缘对距离-边缘对宽度)/边缘对宽度|,单边计分方式评分。

计分方式均为上文模块原理中提及的单边计分函数。函数形式为递增或递减可通过曲线类型设置;起点X中点终点Y计分分别对应上文递增函数图/递减函数图中的x0、x1、xc和y0 ~ y1。

相对间距差

边缘模式设置为边缘对时,才有该参数。启用后,按(边缘对距离-边缘对宽度)/边缘对宽度,双边计分方式评分。

计分方式均为上文模块原理中提及的双边计分函数。左/右曲线起点X中点终点Y计分分别对应上文双边计分函数图1/图2中的x0/xh0、x1/xh1、xc/xhc和y0 ~ yh0/y1~yh1。

模糊边缘

开启后,可增强候选边缘点集的提取能力,获取更多候选点集数,从而可在“干扰点较多的图像”或“边缘模糊的图像”场景中更大可能地提取到目标边缘点,但耗时增加明显。

模块结果

该模块输出结果中各项参数详情,请参见卡尺工具模块的输出结果