直线查找

直线查找模块可查找目标的直线边,常用于测量、定位、缺陷检测场景的目标角度获取。

本节内容包含:

模块原理

该模块的算法工作流程可分为如下两个主要步骤:

  1. 算法在预设的卡尺区域(下图所示黄框)内提取边缘特征点。

    说明:

    卡尺的具体工作原理,请参见卡尺工具工作原理

    图 1 卡尺区域
    图 2 卡尺区域内提取到的边缘点
  2. 算法将提取到的边缘特征点(下图中的紫色点)拟合为直线,最终输出的直线被界定在ROI内。

    图 3 边缘点示意
    图 4 拟合结果示意
    图 5 最终输出直线

使用方法

在流程中,直线查找的前序模块一般为图像源,对后序模块无特殊要求。

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

  1. 执行一次流程,使图像源将图像数据输出至直线查找

  2. 根据业务需求指定下文参数配置中提及的卡尺数量投影宽度滤波尺寸等运行参数。

  3. 基本参数页签,选择ROI形状,并在图像上圆所在区域绘制ROI。

    图 6 绘制ROI

使用示例

下图展示了在流程中组合调用直线查找线线测量点点测量,对部件尺寸规格进行检测的应用示例。

图 7 与测量模块配置使用的示例

参数配置

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

说明:
表 1 运行参数

参数

描述

边缘类型

最强

查找梯度阈值最大的边缘点集合,然后拟合成直线。

第一条/最后一条

查找满足条件的第一条/最后一条直线。

接近中线

查找最接近区域中线且满足条件的直线。

边缘极性

边缘极性有两种,即白到黑和黑到白,如下图所示。绿色箭头所示为白到黑,红色箭头所示为黑到白,这里说的“黑”和“白”是相对的概念。

边缘阈值

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

滤波尺寸

定义目标边缘的清晰程度,最小值为1。值越小,表示边缘越清晰且过滤带小。当边缘模糊或有噪声干扰时,增大该值有利于使得检测结果更加稳定,但如果边缘与边缘之间挨得太近(距离小于滤波尺寸)时反而会影响边缘位置的精度甚至丢失边缘。具体原理参考圆查找

卡尺数量

定义卡尺的数量 ,ROI越大,建议设置越多的卡尺数量。

直线查找反向

开启后可将直线起点和终点的位置信息互换。

角度归一化

开启后,输出的直线角度在-90° ~ 90°;未开启时,输出的直线角度为-180° ~ 180° 。

投影宽度

即卡尺宽度(图 1中黄框的宽度),在ROI中顺序排列若干个查找边缘点ROI,该值描述查找边缘点ROI的区域宽度,在一定范围内增大该值可以获取更加稳定的边缘点。

剔除点数

差过大而被排除不参与拟合的最小点数量。一般情况下,离群点越多,该值应设置越大,为获取更佳查找效果,建议与剔除距离结合使用。

剔除距离

允许离群点到拟合直线的最大像素距离,值越小,排除点越多。

投影宽度

即卡尺宽度,在ROI中顺序排列若干个查找边缘点ROI,该值描述查找边缘点ROI的区域宽度,在一定范围内增大该值可以获取更加稳定的边缘点。

初始拟合

局部

局部最优也就是按照局部的特征点拟合直线,如果局部特征更加准确反映直线所在位置,则采用局部最优,否则采用全局最优。

全局

以查找到的全局特征点进行直线拟合。

拟合方式

拟合方式有最小二乘、huber和tukey三种。三种拟合方式只是权重的计算方式有些差异。随着离群点数量增多以及离群距离增大,可逐次使用最小二乘、huber、tukey。

模块结果

该模块输出结果中各项参数详情,请参见直线查找模块的输出结果