基于几何距离的椭圆拟合

问题

给定离散点集 X i = ( x i , y i ) X_i=(x_i,y_i) Xi=(xi,yi),我们希望找到最好的椭圆去拟合这些离散点。

方法

通常我们使用最小二乘法求解如下的最优化问题:

M i n ∑ i = 1 N f ( x i , E ) 2 Min \sum_{i=1}^N f(x_i,E)^2 Mini=1Nf(xi,E)2
这里 f ( x i , E ) f(x_i,E) f(xi,E)表示点 x i x_i xi到E(指待拟合的椭圆)的最小距离。

通常我们有两种方法来表达 f ( x i , E ) f(x_i,E) f(xi,E),分别是:几何距离代数距离。前面我们已经描述了基于代数距离的椭圆拟合,下面我们将重点介绍基于几何距离的椭圆拟合方法,这种方法也是椭圆拟合方法中最鲁棒、精度最高的拟合方法。

我们主要参考论文《Least-squares orthogonal distances fitting of circle,
sphere, ellipse, hyperbola, and parabola》。

论文的核心思路

显然,由于离散点到椭圆的几何距离是非线性的,因此椭圆拟合是一种非线性优化的问题,需要通过多次迭代求解。

因此下面我们阐述论文的思路时,将分成两个片段来讲解。第一段主要介绍基于高斯-牛顿法的非线性优化方法第二段,具体介绍这种方法在椭圆拟合中的应用

非线性最小二乘拟合

问题

考虑一般的非线性最小二乘问题如下:
min ⁡ a    ∣ ∣ X − F ( a ) ∣ ∣ 2                           ( 1 ) \min_a~~||X-F(a)||^2 ~~~~~~~~~~~~~~~~~~~~~~~~~ (1) amin  XF(a)2                         1
这里 a ∈ R q a\in R^q aRq为优化参数,F为非线性函数, X ∈ R p X\in R^p XRp是已知向量。如下我们给出基于梯度的迭代公式:
a k + 1 = a k + λ A J F T ( X − F ( a k ) )                           ( 2 ) a_{k+1}=a_{k}+\lambda AJ_F^T(X-F(a_k)) ~~~~~~~~~~~~~~~~~~~~~~~~~(2) ak+1=ak+λAJFT(XF(ak))                         2
这里 λ \lambda λ为步长,A为缩放因子,J_F为F在当前参数a下的Jacobian矩阵。

各种优化方法不同,主要是A的选择不同。具体如下:

  • A = H − 1 A=H^{-1} A=H1时,为牛顿迭代法。
  • A = ( J F T J F ) − 1 A=(J_F^TJ_F)^{-1} A=(JFTJF)1时,为高斯-牛顿迭代法。
  • A = I A=I A=I时,为梯度下降法。
    这里我们选择使用高斯-牛顿迭代法。

我们将A带入(2),即可以改写为:
{ a k + 1 = a k + λ Δ a                   ( 3 ) J F Δ a = X − F ( a k )                ( 4 ) \left\{\begin{matrix} a_{k+1}=a_{k}+\lambda \Delta a ~~~~~~~~~~~~~~~~~(3)\\ J_F\Delta a= X-F(a_k)~~~~~~~~~~~~~~(4) \end{matrix}\right. { ak+1=ak+λΔa                 (3)JFΔa=XF(ak)              (4)
这里 J F = ( ∂ F i ∂ a j ) , i = 1 , 2 , . . . , p , j = 1 , 2 , . . . , q J_F=(\frac{\partial F_i}{\partial a_j}),i=1,2,...,p,j=1,2,...,q JF=(ajFi),i=1,2,...,p,j=1,2,...,q
并且,我们根据(1)可以写出迭代算法的性能表现指数,其实就是参差的表达式:
σ 0 2 = ∣ ∣ X − F ( a ) ∣ ∣ 2 = [ X − F ( a ) ] T [ X − F ( a ) ]                ( 5 ) \sigma_0^2=||X-F(a)||^2 =[X-F(a)]^T[X-F(a)]~~~~~~~~~~~~~~(5) σ02=XF(a)2=[XF(a)]T

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值