计算机视觉(北邮鲁鹏)学习笔记(三)

如何从边缘的基础上给出物体的描述?

面临的问题:

  1. 噪声
  2. 外点
  3. 丢失数据

总览

  • 如果我们知道所有属于某条线上的所有点,可以使用最小二乘的方法。
  • 如果不属于该线上的点(噪声点)比较多,可以使用RANSAC方法。
  • 如果有很多线,其他线对于我取某条线来说都是噪声,可以用RANSAC或者Hough transform的思想。
  • 线都不确定,snake(蛇形模型)

最小二乘(Least squares)

许多机器学习的入门课程都有关于最小二乘的详细描述,老师在这里使用的是 正规方程(Normal Equation)来解决该问题。当然,还有其他方法比梯度下降等,请参考机器学习等相应教材。

计算机视觉(北邮鲁鹏)学习笔记(三)_第1张图片

当线垂直 x x x轴的时候的时候,最小二乘无法使用。这时候需要将点沿纵轴方向到线的距离改为点到直线的距离,这就是全最小二乘(Total Least Squares)

计算机视觉(北邮鲁鹏)学习笔记(三)_第2张图片

极大似然估计与全最小二乘

我们可以将点到直线的距离,看成均值为0,方差为 σ 2 \sigma^2 σ2的正态分布。

计算机视觉(北邮鲁鹏)学习笔记(三)_第3张图片

这样就将误差函数转换成了概率的形式。然后就可以用极大似然估计求解。

这是一种很重要的思想,即一个事情可以有多种方式去建模。

鲁棒估计

在用全最小二乘拟合曲线的过程中,当数据中有一些很大的噪声,导致个别点偏离正确模型非常远时(将这种点称为“外点(outliers)”),该点对最终拟合出来的曲线影响较大。鲁棒估计(Robust estimators)不再将点到直线的距离直接作为要减小的误差,而是将该距离 u u u输入函数 ρ ( u ; σ ) = u 2 σ 2 + u 2 \rho(u;\sigma) = \frac{u^2}{\sigma^2 + u^2} ρ(u;σ)=σ2+u2u2,把输出当做要减小的误差。

这样一来总的误差为
E = ∑ i = 1 n ρ ( r i ( x i , θ ) ; σ ) E = \sum_{i=1}^n \rho(r_i(x_i,\theta);\sigma) E=i=1nρ(ri(xi,θ);σ)

计算机视觉(北邮鲁鹏)学习笔记(三)_第4张图片

看一下效果:

计算机视觉(北邮鲁鹏)学习笔记(三)_第5张图片

计算机视觉(北邮鲁鹏)学习笔记(三)_第6张图片

注意,这是一个非线性的优化问题。

随机采样一致性(RANSAC)

  1. 从数据中采集最小子集(最小子集的大小由所研究的问题决定,如拟合直线,则最小子集数目为2,因为两点确定一条直线),然后用这个最小子集拟合一条直线 l i l_i li (得到 H ~ \tilde{H} H~ );

  2. .计算每个点到直线 l 1 l_1 l1 的距离 (在拟合直线的情况下,我采用的是点 x i x_i xi 通过 H ~ \tilde{H} H~ 得到的 y i ~ = H ~ x i \tilde{y_i} = \tilde{H}x_i yi~=H~xi 与真值的差的绝对值 ∣ y i − y i ~ ∣ |y_i - \tilde{y_i}| yiyi~),如果 d ⊥ < t d_{\bot} < t d<t t t t是距离阈值,则记为“内点(inlier)”。统计本次得到的内点的数目 n i n_i ni。如果 n i > T n_i > T ni>T T T T是内点数目阈值,则说明当前所估计的 H ~ \tilde{H} H~足够好,利用这些内点再重新估计 H ~ \tilde{H} H~,然后返回 H ~ \tilde{H} H~,退出。否则返回(1)继续执行。

作者:Kissrabbit
链接:https://zhuanlan.zhihu.com/p/34676804
来源:知乎

你可能感兴趣的:(cv,计算机视觉,图像处理)