最小二乘多项式拟合c语言程序_机器视觉学习(四)拟合

6c2cfe24dbccbe18941b806e8ef06f4c.png

前言

上一节学习了边缘检测,得到这一系列的特征,如何去表达呢?这就要用到接下来学习的内容:拟合。所谓拟合就去选择一个参数模型去表征这一系列的特征。简单的特征描述就是线性边缘可以使用线性模型表示,圆形等等,复杂一些的比如车辆的完成轮廓,因此接下来就重点学习关于拟合对于特征表达的一些内容。

8b2d909e77b0f9a4a310586eaddf9050.png

也就是如何在边缘检测结果这个集合上给出一个描述,那么在这个过程存在难点在于:

  • 噪声,图像中的噪声会导致在真实边缘附近产生伪边缘。
  • 外点,例如上图中左上角的图中存在多条直线,当在描述其中一根直线时,其他直线上的点都是外点,会对其产生影响。
  • 缺失点,由于遮挡或者其他原因导致线条出现断掉的情况。

相应的解决方案:

  • 对于大多数点都在线上的情况,一般使用最小二乘法去求解直线方程;
  • 而对于存在外点的情况下,噪声点较少时一般采用Robust fitting,噪声点较多时采用RANSAC
  • 对于有很多条线(边缘)的情况,一般采取RANSAC或者霍夫变换进行直线检测。
  • 对于根本就不是直线的情况,采用的方法为Model select,snake方法。

一、最小二乘法

Data:

,Line equation:

Find

to minimize

7155898ff61fda1338f38dcb0c54b6d5.png

显然,对于上面这个平方损失进行最小化求解的过程就是对

进行求导:

由此得到:

由于

是一个nx2的矩阵,所以
就是一个2x2的矩阵。
是一个2x1的矩阵,所以
就是一个2x1的矩阵。

对于最小二乘问题有一个致命的缺陷:就是无法求解垂直线,不具有旋转不变性。这里所说的旋转指的是相机的旋转,即相机角度的变化,会影响点到直线的距离,那么怎样才能保证点与线的位置关系不会因为相机角度的变化而变化呢?答案就是“全最小二乘(Total least squares)”

5d90db0a503967130fa1c650889c99b9.png

此时,全最小二乘度量的不再是点到直线的

方向的距离,而点到直线的垂直距离。此时点与直线的位置关系不会因为相机角度的变化而变化了。

到直线的距离方程
,所以点
到直线的距离
,因此我们需要找到
去最小化这个距离的平方和,即:

为了求得距离,自然就是对

进行求导:

,这个结果显然形式上就很好。

把这个

转换成了
进行表达,并带进原始的
中,

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值