直线拟合

直线拟合基于两个及以上的已知点拟合成直线,先检测顶点再拟合成直线。

本节内容包含:

模块原理

直线拟合用于将一组特征点拟合成一条直线,不能拟合成多条直线,往往用在直线查找提取特征点之后的阶段。使用直线拟合的前提是输入的特征点(至少为2个点)能大致组成一条直线。直线查找可用于直线的测量。

如下图所示,紫色的点为输入的特征点,拟合这些边缘点后可得到一条绿色的直线。

图 1 直线拟合示意图

直线拟合根据初始拟合方式得到初始直线,然后根据不同的权重函数迭代进行拟合,直到拟合结果满足要求。另外,在拟合的过程中会根据剔除的点数和剔除的距离舍弃偏离的点,所以直线拟合具有部分抗干扰点的能力。

使用方法

直线拟合可通过一组特征点状态情况拟合出一个标准的直线,通过对该拟合直线的信息进行评估,检测该组特征点是否符合标准要求,常应用于“宽度检测”、“车道检测”等。

直线拟合模块一般与点集模块进行配合使用,示例效果如下图所示。

图 2 直线拟合执行结果

参数配置

图像输入

选择需输入的图像源。

拟合点

选择流程中采集到的点集作为拟合来源。

剔除点数

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

剔除距离

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

初始化类型

包括全局法和局部最优两种。

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

  • 全局法:以查找到的全局特征点进行圆拟合。

权重函数

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

最大迭代次数

拟合算法的最大执行次数。

模块结果

该模块的模块结果介绍请见直线拟合