最小二乘法和随机抽样一致性

1. 原理

  • 最小二乘法(leastSquares)的原理1

leastSquares通过最小化测量数据与模型数据的平方和, 求出模型参数。

e=sum(Yif(Xi))
其中 e k t 的二次函数, 求其最小, 即求其极值; 求偏导dk=0,dt=0。可以计算出 k t值。

  • 随机抽样一致性(ransac)的原理2

ransac的线性拟合算法步骤大致如下:

while 最大尝试次数
    从观测点集中随机取两点, 计算出直线的参数k, t(或者k用向量表示), 得出一个候选的直线模型.
    计算候选直线与整个点集的匹配程度,可以采用统计在直线上(或到直线的距离小于一个阈值)的点的个数.
    保留匹配程度最好的直线的参数.
    如果本次尝试匹配点的个数占整个点集大部分, 超出预期(阈值), 提前结束尝试.
endwhile

匹配程度也可以用其他指标来衡量, 替换上面的匹配计算.

两者的共同点都是要首先确定模型, 模型分为线性模型非线性模型. 一般常见的应用是线性模型, 如 f(x)=kx+t

2. 误差/性能分析

  • leastSquares的误差为 e , 但一般用相关系数r来表示, r 越接近1, 模型越好; r等于0, 拟合无意义, 模型不实际情况不符合.

  • ransac的误差一般用在拟合直线的一个范围内, 在此范围内点的个数占整个点集比例来衡量.

3. 差别

在应用上, 二者的差别是:

  • leastSquares对噪声比较敏感, 算法简单;
  • ransac能去除一些噪声的干扰, 如果假定模型与实际的情形一致, 那么一般由观测数据计算的ransac模型, 更能接近实际情况, 去除观测或过程噪声干扰, 算法稍微复杂些.

最小二乘法也可以先进行去除离群点的数据预处理, 应用ransac或穷举的方法, 利用任意两点计算一条直线, 将距离直线太远的点设置为离群点, 距离直线较近的点为符合条件的点. 循环处理, 比较群内点的个数, 记录下群内点数最多的集合. 这些点就是 去除离群点的点集合, 利用这些点再进行最小二乘法拟合.

4. 应用

在图像处理及图形学中, 这两种算法经常被用到, 特别是ransac.
在OpenCV的三维重建和标定模块中有很多应用, 如solvePnPRansac, findHomography, estimateAffine3D3等。

5. 参考

  1. RANSAC与最小二乘算法的应用
  2. RANSAC与最小二乘法实现
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Digital2Slave

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值