直线拟合方式 最小二乘least squares 霍夫变换Hough transform M估计M-Estimators RANSAC随机抽样一致算法(random sample consensus)

最小二乘

都知道一条直线可以表达成 y=ax+b形式,其中a为斜率,b为截距。最小二乘就是对n个点进行拟合,使其距离拟合直线的总体误差尽量小。求解方法也很简单,就是最小化每个点到直线的垂直误差。
1、建立方差误差
这里写图片描述
2、求导得参数
这里写图片描述
缺点:1、无法拟合垂直线,且由于误差采用的是垂直误差,导致越接近垂直线,拟合效果越差。2、对噪声的鲁棒性不好,受噪声影响较大。
一种改善方式是引入Total least squares,如下图:
这里写图片描述
这里写图片描述

霍夫变换

除了标准的笛卡尔坐标系外,还有一种常用坐标系是极坐标。霍夫变换正是使用极坐标系来表示直线。而且它不仅可以用于拟合直线,还可以拟合其他的曲线、圆等。计算方法是首先生成ρ(代表直线到原点的垂直距离),θ(代表x轴到直线垂线的角度)的可能取值,然后将所有点代入公式,如果计算结果小于阈值,则认为该点为当前ρ、θ取值投了一票。最终选择票数高的作为拟合的直线。如下图:

缺点:1、生成ρ、θ的间距不好确定。2、受噪声影响。

M估计

直线拟合中的最大问题就是噪声点导致的large error。如下图,由于这些离群点的存在,导致最小二乘直线拟合效果变差。
这里写图片描述
一个很直观的观察就是这些离群点距离真实直线的距离较远,在最小二乘的方差中占据很大的比重,因此在拟合过程中拟合直线只需要稍稍往离群点方向偏移就能很大减小整个误差,但这会导致拟合直线和真实直线距离变大,拟合效果变差。因此一种简单的思想就是对这些距离误差采用加权的方式。就是给每个样本点赋予不同权重,偏差较大的权重较小,偏差较小的权重较大。M估计就是使用这种思想,采用迭代加权最小二乘估计回归系数。
这里写图片描述
这里写图片描述
缺点:minimization is numerical, usually has multiple minima, can be hard

RANSAC

RANSAC算法的基本假设是样本中包含正确数据(inliers,可以被模型描述的数据),也包含异常数据(outliers,偏离正常范围很远、无法适应数学模型的数据),即数据集中含有噪声。其不仅可以拟合线、面、体,还可以应用到其他模型上。算法流程如下:
1、在数据中随机均匀的选择几个点作为内群点
2、拟合选择的内群点
3、把其他刚才没有选到的点代入拟合的模型,通过一个阈值判断是否为内群。如果是,则加入内群,并重新拟合
4、记下最终内群点数量
5、重复以上步骤多次
6、比较哪次计算中内群数量最多,内群最多的那次所拟合的模型就是我们所要求的解
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_16234613/article/details/80978578