基于各点异性理论的椭圆拟合算法

合集下载

matlab 椭球拟合

matlab 椭球拟合

matlab 椭球拟合椭球拟合是一种在三维空间内找到最符合一组点集的椭球的方法。

在基于三维点云数据进行建模和分析的应用中,经常需要对点云数据进行拟合和分析,而椭球拟合常常被用来处理这些数据。

在 Matlab 中,可以通过使用“fitellipsoid”函数实现椭球拟合。

fitellipsoid 函数可以根据一组三维点云数据拟合出一个椭球,并返回椭球的中心点、主轴长度、旋转矩阵等信息。

函数的用法如下:[center,radii,eigenvecs] = fitellipsoid(X)其中,X是一个n行3列的矩阵,表示n个三维点云的坐标。

fitellipsoid 函数将返回一个包含椭球中心点、主轴长度和旋转矩阵的结构体。

其中,center是椭球的中心点,radii是椭球的主轴长度,eigenvecs是椭球的旋转矩阵。

椭球拟合的计算方法:在椭球拟合中,首先需要计算点云数据的协方差矩阵C。

协方差矩阵C可以通过以下公式计算:C = X' * X / n其中,X'表示X的转置,n为样本数量。

接下来,需要对协方差矩阵C进行特征值分解,得到矩阵C的特征向量和特征值。

特征向量代表了C的主轴方向,特征值代表了椭球沿着主轴方向的长度。

计算特征值分解的方法可以使用Matlab中的“eig”函数,即:[V, D] = eig(C)其中,V是C的特征向量矩阵,D是C的特征值矩阵。

根据特征向量和特征值,可以计算出椭球的中心点和主轴长度。

假设椭球的中心点为p,特征向量为v1、v2、v3,特征值为λ1、λ2、λ3,则可以通过以下公式计算出椭球的中心点和主轴长度:p = mean(X)radii = sqrt(5*λ)其中,mean(X)是X矩阵每列的均值,即椭球的中心点。

最后,还需要在旋转矩阵中确定椭球的方向。

根据特征向量的定义,可以将椭球沿着我们感兴趣的主轴方向旋转,而将其它两个方向的变化最小化。

Matlab中如果要将向量V1~3的长度限制为1,需要使用的函数是normc(V)。

cv椭圆拟合算法

cv椭圆拟合算法

cv椭圆拟合算法摘要:一、椭圆拟合算法简介二、MATLAB中椭圆拟合的具体实现1.椭圆拟合函数2.参数设置与优化3.示例与分析三、椭圆拟合算法的应用领域四、总结与展望正文:一、椭圆拟合算法简介椭圆拟合算法是一种广泛应用于图像处理、物理实验和工程测量等领域的非线性拟合方法。

它的基本目标是通过一定的数学模型,将实验或测量得到的一组数据映射到椭圆曲线上,从而得到椭圆的参数,如长轴、短轴、中心坐标等。

椭圆拟合算法有多种方法,如最小二乘法、Levenberg-Marquardt算法等。

二、MATLAB中椭圆拟合的具体实现1.椭圆拟合函数在MATLAB中,可以使用curve fitting工具箱进行椭圆拟合。

常用的椭圆拟合函数为:`fit`。

该函数可以实现非线性拟合,支持输入数据为坐标矩阵的形式。

2.参数设置与优化在进行椭圆拟合时,需要设置一些参数以优化拟合效果。

这些参数包括:- 拟合函数:设置为椭圆方程,如`ax^2 + by^2 + cx + dy + e = 0`;- 初始参数:设置椭圆的初始参数,如长轴、短轴、中心坐标等;- 拟合方法:选择拟合算法,如最小二乘法、Levenberg-Marquardt算法等;- 迭代次数:设置迭代次数,影响拟合速度和精度;- 误差容限:设置误差容限,影响拟合结果的可靠性。

3.示例与分析以下为一个简单的椭圆拟合示例:```matlab% 生成模拟数据x = 1:10;y = 2 + 3 * x + 0.1 * sqrt(x);% 进行椭圆拟合fit = fit(x, y, "a*x^2 + b*y^2 + c*x + d*y + e", "a", "b", "c", "d", "e");% 显示拟合结果disp(fit);```通过调整参数和迭代次数,可以得到较好的椭圆拟合结果。

cv椭圆拟合算法

cv椭圆拟合算法

cv椭圆拟合算法摘要:1.椭圆拟合算法概述2.CV 椭圆拟合算法的原理3.CV 椭圆拟合算法的应用实例4.CV 椭圆拟合算法的优缺点正文:1.椭圆拟合算法概述椭圆拟合算法是一种在计算机视觉中广泛应用的算法,主要用于处理图像中的椭圆形状。

椭圆形状在自然界和人工制品中都有广泛的存在,例如,眼睛、车轮、卫星轨道等。

椭圆拟合算法的目的是通过图像中椭圆形状的特征点,对椭圆进行参数化表示,从而实现对图像的精确描述和分析。

2.CV 椭圆拟合算法的原理CV 椭圆拟合算法,即在OpenCV 库中实现的椭圆拟合算法,主要基于最小二乘法原理。

最小二乘法是一种数学优化技术,其基本思想是通过最小化误差的平方和来寻找最佳拟合函数。

在椭圆拟合中,最小二乘法用于寻找最佳的椭圆参数,即长轴、短轴和旋转角度等。

具体来说,CV 椭圆拟合算法通过计算图像中椭圆形状上特征点的误差平方和,来优化椭圆参数,使其最小化。

为了提高算法的稳定性和精度,通常需要在计算过程中加入一定的权重,以平衡不同特征点的影响。

3.CV 椭圆拟合算法的应用实例CV 椭圆拟合算法在计算机视觉领域有广泛的应用,例如:(1)图像处理:在图像中检测和分析椭圆形状,可以应用于目标识别、图像分割等任务。

(2)物体跟踪:通过对运动物体的椭圆形状进行拟合,可以实现对物体的运动轨迹跟踪。

(3)人脸识别:在人脸识别中,眼睛的椭圆形状是一个重要的特征。

通过对眼睛的椭圆形状进行拟合,可以提取出特征点,用于人脸识别和比对。

4.CV 椭圆拟合算法的优缺点CV 椭圆拟合算法具有以下优缺点:(1)优点:- 算法简单,易于实现,计算复杂度较低。

- 对椭圆形状的拟合精度较高,适用于多种场景。

- 可以灵活地调整拟合参数,以适应不同图像特征。

(2)缺点:- 对噪声敏感,当图像质量较差时,拟合精度可能受到影响。

- 在处理复杂背景和多目标情况下,可能存在误检和漏检等问题。

基于各点异性理论的椭圆拟合算法

基于各点异性理论的椭圆拟合算法

Ellipse Fitting Algorithm Based on Heteroscedastic Theory
CAO Fang, YANG Zhong-gen
(College of Information Engineering, Shanghai Maritime University, Shanghai 200135) 【Abstract】This paper analyzes the usual algorithms with less anti-jamming ability which are sensitive to the effect of noise in the application of ellipse fitting, and proposes a more robust ellipse fitting algorithm. It utilizes the heteroscedastic regression technique to create the Errors-In-Variables (EIV) model. According to the observation of data vector, the optimal algorithm is found to obtain the optimal estimations of EIV model parameters and the truth-value of the observed data vector. Experimental results show that the algorithm is more accurate and can converge steadily and rapidly, when original data is far from exact value. 【Key words】computer vision; ellipse fitting; heteroscedastic

TN06 - 椭球拟合法(加速度计、磁场计校准)

TN06 - 椭球拟合法(加速度计、磁场计校准)

TN06 - 椭球拟合法椭球你合法主要用于加速度计的校准加速度计较准公式000ˆˆˆx x x a y y y b z z z c-⎧=⎪⎪-⎪=⎨⎪-⎪=⎪⎩(1)其中(,,)s x y z =为校准后的加速度,,,x y z 分别为加速度在三个方向的分量,ˆˆˆˆ(,,)sx y z =为加速度的测量值,000,,x y z 为加速度的基准修正,,,a b c 为加速度的幅度修正。

在静态测量条件下,对于理想的加速度值,满足如下条件 s g =即()()()2220002222ˆˆˆx x yy z z g abc---++= (2)其中g 为重力加速度值,用误差值e 表述校准值与理想值之间的偏差()()()2220002222ˆˆˆxx y y z z e g abc---=++- (3)对于不同的测量值12ˆˆˆ,,...,m ss s ,分别有1e ,2e ,…,m e ,定义评价函数21mi i f e ==∑(4)在足够的样本条件(6n ≥)下,求取最优的校准参数()000,,,,,x y z a b c β=,使得f 达到最小值。

根据微分原理,在f 为最小值处有 0fβ∂=∂ 即有10miii e e β=∂=∂∑如果(1)式采用更一般的方式如下ˆˆˆx ax b y cy d z ez f =+⎧⎪=+⎨⎪=+⎩(5)则有 ()()()22220ˆˆˆe axb cy d ez fz g =+++++-(6)()()()()()()()ˆˆˆˆˆˆˆˆˆ222222eaxb x ax b cy d y cyd ez f z ez f β∂=++++++∂(7)梯度下降法1i i f ββγβ+∂=-∂(8) 即可达到使f 达到最小值的β值高斯牛顿法 泰勒级数展开 221()()2T f f f f ββββββββ∂∂+∆≈+∆+∆∆∂∂(9)令111122221212n n m m m n e e e e e e e J e e e ββββββββββ∂∂∂⎡⎤⎢⎥∂∂∂⎢⎥⎢⎥∂∂∂∂⎢⎥∂∂∂==⎢⎥∂⎢⎥⎢⎥∂∂∂⎢⎥⎢⎥∂∂∂⎣⎦(10)其中e 和β表示误差和参数矢量 [][]1212,,,,,,T m Tn e e e e ββββ== (11)()222kT k k e e f e e J βββ∂∂∂⎡⎤===⎣⎦∂∂∂∑∑ (12)2222T T f e J f J J ββββ⎛⎫∂∂ ⎪⎡⎤∂∂∂⎝⎭⎣⎦==≈∂∂∂(13)这样式(9)可以表述为()()2T T T f f e J J J ββββββ+∆≈+∆+∆∆(14)根据上式,使得()f ββ+∆取得最小的β∆为 1T TJ J J eβ-⎡⎤∆=-⎣⎦(15)此时()()T f f e eβββ+∆≈-(16)最小二乘法 (3)式展开()()()22200022222222222000000222222222ˆˆˆ222111ˆˆˆˆˆˆx x y y z z e g ab cx y z x y z x x y y z z g a a b b c c a b c---=++-=-+-+-+++-(17)为便于处理,上式可表述为 222ˆˆˆˆˆˆe axbx cy dy ez fz g =++++++(18)其中,,,a b g 为新的参数名称,分别对应(17)中的参数如下2202202202222000222121212a a b x a c b d y b e c f z c x y z g g a b c ←−→←−→-←−→←−→-←−→←−→-←−→++-(19)只要求出最优的新的,,,a b g 的值,即可获得(3)式所表述的000,,,,,x y z a b c 等参数。

椭圆拟合算法实现

椭圆拟合算法实现

椭圆拟合算法实现椭圆的⽬标函数:F(A,B,C,D,E)=XiGeMa(xi^2+A*xiyi+B*yi^2+C*xi+D*yi+E)^2分别对A,B,C,D,E求⼀阶偏导并令其等于0得到线性⽅程组:|A1B1C1D1E1||A|=|resul1||A2B2C2D2E2||B|=|resul2||A3B3C3D3E3||C|=|resul3||A4B4C4D4E4||D|=|resul4||A5B5C5D5E5||E|=|resul5|求得A,B,C,D,E.椭圆的五个参数:center.x=(2*B*C-A*D)/(A*A-4*B);center.y=(2*D-A*D)/(A*A-4*B);fenzi=2*(A*C*D-B*C*C-D*D+4*E*B-A*A*E);fenmu=(A*A-4*B)*(B-sqrt(A*A+(1-B)*(1-B))+1);femmu2=(A*A-4*B)*(B+sqrt(A*A+(1-B)*(1-B))+1);long=sqrt(fabs(fenzi/fenmu));short=sqrt(fabs(fenzi/femmu2));theta=atan(sqrt((center.x*center.x-center.y*center.y*B)/(center.x*center.x *B-center.y*center.y))+0.0001)*180/cv_pi;; vectorgetEllipsepar(vectorvec_point){vectorvec_result;double x3y1=0,x1y3=0,x2y2=0,yyy4=0,xxx3=0,xxx2=0,x2y1=0,yyy3=0,x1y2=0,yyy2= 0,x1y1=0,xxx1=0,yyy1=0;int N=vec_point.size();for(int m_i=0;m_i{double xi=vec_point[m_i].x;double yi=vec_point[m_i].y;x3y1+=xi*xi*xi*yi;x1y3+=xi*yi*yi*yi;x2y2+=xi*xi*yi*yi;;yyy4+=yi*yi*yi*yi;xxx3+=xi*xi*xi;xxx2+=xi*xi;x2y1+=xi*xi*yi;x1y2+=xi*yi*yi;yyy2+=yi*yi;x1y1+=xi*yi;xxx1+=xi;yyy1+=yi;yyy3+=yi*yi*yi;}long double resul1=-(x3y1);long double resul2=-(x2y2);long double resul3=-(xxx3);long double resul4=-(x2y1);long double resul5=-(xxx2);long double B1=x1y3,C1=x2y1,D1=x1y2,E1=x1y1,A1=x2y2; long double B2=yyy4,C2=x1y2,D2=yyy3,E2=yyy2,A2=x1y3; long double B3=x1y2,C3=xxx2,D3=x1y1,E3=xxx1,A3=x2y1; long double B4=yyy3,C4=x1y1,D4=yyy2,E4=yyy1,A4=x1y2; long double B5=yyy2,C5=xxx1,D5=yyy1,E5=N,A5=x1y1; // CvMat*Ma=cvCreateMat(5,5,CV_64FC1);CvMat*Md=cvCreateMat(5,1,CV_64FC1);CvMat*Mb=cvCreateMat(5,1,CV_64FC1);//cvmSet(Mb,0,0,resul1);cvmSet(Mb,1,0,resul2);cvmSet(Mb,2,0,resul3);cvmSet(Mb,3,0,resul4);cvmSet(Mb,4,0,resul5);cvmSet(Ma,0,0,A1);cvmSet(Ma,0,1,B1);cvmSet(Ma,0,2,C1);cvmSet(Ma,0,3,D1);cvmSet(Ma,0,4,E1);cvmSet(Ma,1,0,A2);cvmSet(Ma,1,1,B2);cvmSet(Ma,1,2,C2);cvmSet(Ma,1,3,D2);cvmSet(Ma,1,4,E2);cvmSet(Ma,2,0,A3);cvmSet(Ma,2,1,B3);cvmSet(Ma,2,2,C3);cvmSet(Ma,2,3,D3);cvmSet(Ma,2,4,E3);cvmSet(Ma,3,0,A4);cvmSet(Ma,3,1,B4);cvmSet(Ma,3,2,C4);cvmSet(Ma,3,3,D4);cvmSet(Ma,3,4,E4);cvmSet(Ma,4,0,A5);cvmSet(Ma,4,1,B5);cvmSet(Ma,4,2,C5);cvmSet(Ma,4,3,D5);cvmSet(Ma,4,4,E5);cvSolve(Ma,Mb,Md);long double A=cvmGet(Md,0,0);long double B=cvmGet(Md,1,0);long double C=cvmGet(Md,2,0);long double D=cvmGet(Md,3,0);long double E=cvmGet(Md,4,0);double XC=(2*B*C-A*D)/(A*A-4*B);double YC=(2*D-A*D)/(A*A-4*B);long double fenzi=2*(A*C*D-B*C*C-D*D+4*E*B-A*A*E);long double fenmu=(A*A-4*B)*(B-sqrt(A*A+(1-B)*(1-B))+1);long double femmu2=(A*A-4*B)*(B+sqrt(A*A+(1-B)*(1-B))+1);double XA=sqrt(fabs(fenzi/fenmu));double XB=sqrt(fabs(fenzi/femmu2));double Xtheta=atan(sqrt((XA*XA-XB*XB*B)/(XA*XA*B-XB*XB))+0.0001)*180/3.1415926; vec_result.push_back(XC);vec_result.push_back(YC);vec_result.push_back(XA);vec_result.push_back(XB);vec_result.push_back(Xtheta); return vec_result;}。

椭圆拟合 matlab

椭圆拟合 matlab

椭圆拟合 matlab椭圆拟合是一种常见的数学方法,用于找到一条椭圆曲线,以最佳方式拟合给定的数据点集。

这种方法在图像处理、计算机视觉、物体识别等领域具有广泛的应用。

在Matlab中,有多种方法可以实现椭圆拟合,例如最小二乘法、非线性最小二乘法等。

椭圆拟合的基本思想是找到一条椭圆曲线,使得该曲线与给定的数据点集之间的距离最小。

在Matlab中,可以使用曲线拟合工具箱中的函数来实现这个过程。

我们需要将给定的数据点集导入到Matlab中。

可以使用Matlab的文件读取函数来实现这一步骤。

然后,我们可以使用曲线拟合工具箱中的函数来进行椭圆拟合。

这些函数通常会返回一个椭圆的参数向量,包括椭圆的中心坐标、长轴和短轴的长度、以及椭圆的旋转角度。

一旦得到了椭圆的参数向量,我们就可以使用Matlab的绘图函数来绘制拟合的椭圆曲线。

通过调整参数向量中的参数值,我们可以得到不同形状和大小的椭圆曲线。

除了使用曲线拟合工具箱中的函数,我们还可以使用Matlab的优化工具箱中的函数来实现椭圆拟合。

优化工具箱提供了更多的优化算法,可以根据实际情况选择合适的算法来实现椭圆拟合。

椭圆拟合在实际应用中具有广泛的用途。

例如,在图像处理中,椭圆拟合可以用来提取图像中的椭圆形状物体;在计算机视觉中,椭圆拟合可以用来检测和识别物体的形状;在工程测量中,椭圆拟合可以用来拟合测量数据,从而得到更准确的测量结果。

椭圆拟合是一种常用的数学方法,可以用来找到一条椭圆曲线,以最佳方式拟合给定的数据点集。

在Matlab中,有多种方法可以实现椭圆拟合,例如最小二乘法、非线性最小二乘法等。

椭圆拟合在图像处理、计算机视觉、工程测量等领域具有广泛的应用。

通过使用Matlab的曲线拟合工具箱和优化工具箱中的函数,我们可以轻松地实现椭圆拟合,并得到准确的拟合结果。

椭圆拟合算法

椭圆拟合算法

椭圆拟合算法椭圆拟合算法是一种经典的图像处理算法,用于从一组点中拟合出一条椭圆曲线。

椭圆拟合算法可以应用于许多不同类型的图像处理任务,以及机器视觉领域的许多研究。

本文的目的是介绍椭圆拟合算法的原理和实现方法,并给出实例,以便读者能够更好地理解该算法。

椭圆拟合算法是一种几何学算法,它的主要思想是将一组点根据给定范围内的曲线进行拟合。

由于椭圆曲线具有较好的特征,因此可以将它用于许多图像处理任务,如曲线拟合、曲线拟合和曲线表面重建等。

因此,椭圆拟合算法可以帮助集成系统获得更加准确和可靠的图像信息,以实现更加准确的结果。

椭圆拟合算法的基本原理是根据给定的点集,通过一系列的步骤来求解椭圆拟合算法的参数。

主要步骤包括:首先,确定点集的起始点和终止点;然后,根据给定的弦长度计算点的距离;最后,使用梯度下降算法求解待拟合圆的最优参数。

椭圆拟合算法的实现方法可以分为三种:最小二乘法、梯度下降法和最近点法。

最小二乘法是一种经典的算法,它根据拟合曲线所需要的点,使用最佳拟合方法来计算拟合曲线的参数;而梯度下降法是椭圆拟合算法的常用算法,它根据拟合曲线所需要的点,使用梯度下降算法来计算拟合曲线的参数;最后是最近点法,它根据拟合曲线所需要的点,通过最近点法来计算拟合曲线的参数。

为了演示椭圆拟合算法,我们可以使用Matlab编写程序。

假设我们有一组散点,如图1所示。

我们可以使用算法来拟合这组数据。

下面是使用Matlab编写的程序示例代码:x=[-4 -3 -2 -2 2 3 4];y=[3 2 -1 -2 0 -1 2];[x_curve,y_curve,a,b]=ellipsefit(x,y);plot(x_curve,y_curve)hold onplot(x,y,o其中,变量x和y分别表示点的x坐标和y坐标;函数ellipsefit 用于求解椭圆拟合参数,函数的输入参数为x坐标和y坐标,它的输出参数为拟合椭圆上的点的x坐标和y坐标,以及椭圆拟合参数a和b;最后,函数plot用于在图中画出拟合椭圆,plot(x,y,o用于绘制原始点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
= TM + a , 使 变 换 后 的 数 据 (2) 正 则 化 变 换 M i 为 M i i 有零均值和单位方差。 M i
然后计算
M i(0j ) = M i −
( j −1)T ˆ ( j ) ∗ ˆ( j) zci θ C M Di(0j −1)θ ( j )T ∗ ( j − 1) ( j ) ˆ C ˆ θ θ i
⎡x di 0 = ⎢ i 0 ⎣0 yi 0 xi 0 0⎤ ;参 数 矢量 θ = [ a11 yi 0 ⎥ ⎦
a12
a22 b1 b2 ] ,
T
b1 ⎤ ⎡ a11 a12 ⎤ 它对应于椭圆参数 B = ⎡ 。 ⎢b ⎥ 和非奇异阵 A = ⎢ a a ⎥ ⎣ 2⎦

12 22

式 (1)可改写为
数值性能, 应对输入数据进行规范化处理, 即正则化变换 M i 成 M 。上述回归过程是对变换后的数据 M 而言的,因此,
i
i
(6)
ˆ ( j ) 是 已 知 矩 阵 对 ( Z ( j −1) , L( j −1) ) 的 最 小 广 义 奇 异 值 其中, θ c
必须对回归过程得到的模型参数和校正后的数据进行相应的 后处理。 2.7 算法步骤 步骤 1 数据变换 (1)根据涉及的问题,由数据 mi 得到相应 M i 。
(7)
由 M i(0j ) 计算相应的 Di(0j ) ,并计算
∗ ˆ ( j )T C ∗( j )θ ˆ( j) Ci∗( j ) = Di(0j )TC M Di(0j ) , Wi ( j ) = θ i
(
)
−1
步骤 2 初始估计
(8)
(0) ∗(0) (1) 取 M i(0) ,进而计算 C ∗ , 0 = M i ,由它计算 Di 0 和 C i
—283—
优 化 过 程 。 为 了 从 数 据 矢 量 观 测 集 合 估 计 EIV 模 型 参 数
件计算。 几何约束的施加 本文算法在参数回归中使用的约束包括式 (3) 和其他特 定几何约束。因为在椭圆拟合中,约束二次项系数满足 2.4
2 a12 − a11a22 = -1,所以在迭代收敛后,可修改 EIV 模型参数估
Ellipse Fitting Algorithm Based on Heteroscedastic Theory
CAO Fang, YANG Zhong-gen
(College of Information Engineering, Shanghai Maritime University, Shanghai 200135) 【Abstract】This paper analyzes the usual algorithms with less anti-jamming ability which are sensitive to the effect of noise in the application of ellipse fitting, and proposes a more robust ellipse fitting algorithm. It utilizes the heteroscedastic regression technique to create the Errors-In-Variables (EIV) model. According to the observation of data vector, the optimal algorithm is found to obtain the optimal estimations of EIV model parameters and the truth-value of the observed data vector. Experimental results show that the algorithm is more accurate and can converge steadily and rapidly, when original data is far from exact value. 【Key words】computer vision; ellipse fitting; heteroscedastic
ˆ ( ∞ ) 为回归参数的最优估计, { M(∞) i = 1,2,", N} ˆ (∞ ) , θ (6) α i0
=L
( j )T
( j)
(11) (12)
(
)
用数值计算上鲁棒性更强的广义奇异值分解 (GEVD), 即
ˆ = σ Lθ ˆ Zc θ min
得到最优解。 通过上述算法完成一次迭代过程,迭代收敛后计算截距 ˆ (∞ ) ˆ = −z ( ∞ )T θ α (13) 2.3 迭代初始条件的计算 ∗ (0) D i(00 ) 和 C i∗(0) = Di(0)T 取 M i(0) 0 = Mi , 由 它 计 算 0 C M Di 0 ,
曹 芳,杨忠根
(上海海事大学信息工程学院,上海 200135) 摘 要:分析椭圆拟合应用中常用算法对噪声过于敏感、抗干扰能力差的缺点,提出一种鲁棒性较强的椭圆拟合算法。采用各点异性回归 技术,建立误差与变量有关的(EIV)模型,根据数据矢量观测集合最优地估计线性 EIV 模型参数和数据矢量真值集合。实验结果表明,该 算法精确度高,当初始值与真实值差距较大时,仍然可以快速、稳定地收敛。 关键词:计算机视觉;椭圆拟合;各点异性
对正定阵
ˆ ( j ) = ∑ ⎡W ( j ) z ( j )Tθ ˆ ( j ) ⎤ C ∗( j ) Q( j) = Q θ ⎣ i ci ⎦ i
i =1
( )
L
N
2
(10)
容差 Th 。
进行 Choleskey 分解,得
Q
( j)
ˆ ( ∞ ) 计算截距的最优估计。 ˆ = −z ( ∞ )T θ (5)用 α
(9)
ˆ( j) 。 (2)计算矩阵对 ( Z c( j −1) , L( j −1) ) 形成的 GSVD 问题解 θ
步骤 3 各点异性回归 (1)开始迭代,令 j = 1 。
(3)计算式 (7)~式 (11)得 ( Z c( j ) , L( j ) ) ,令 j = j + 1 。
( j) (4)重复步骤 3 中 (2)和 (3),直至 σ min − 1 小于一个预定的
一般对称分布, σ 2 为噪声功率。式 (1)、式 (3) 和式 (4)表示一 个有截距的误差与变量有关的非线性 EIV 模型。根据数据矢 量观测集合,可以估计 EIV 模型参数 (α , θ ) 是一个非线性最
基金项目:上海高校选拔培养优秀青年教师科研专项基金资助项 目(032747) 作者简介:曹 芳(1980-),女,讲师、硕士,主研方向:通信与信 E-mail:fangcao@ 息技术;杨忠根,教授、硕士 收稿日期:2007-10-30
1
在三维计算机视觉应用中,椭圆拟合是曲线基元提取的 核心技术。精确提取椭圆的鲁棒在图像识别与计算机视觉中 具有重要意义 [1]。在椭圆参数估计中,一些算法对测量误差 进行了错误估计,造成对几何约束关系的错误分析,使算法 容易被噪声影响,导致其鲁棒性和精确性不高。 直接最小二乘法 (Direct Least Squares, DLS)[2]是椭圆拟 合中一种常用的方法。最小二乘技术主要是寻找参数集合, 从而最小化数据点与椭圆之间的距离度量。但由于直接最小 二乘法未考虑误差的各点异性特性,而是假设载体数据为零 均值且各载体数据有共同协方差阵,与实际情况不符,因此 导致参数的有偏估计,算法结果通常不佳。由于存在异方差, 因此参数 DLS 估计的方差增大将导致估计值误差增大, 造成 对载体的预测误差变大,降低原数据点的校正精度。 文献 [3-4]提出的二阶重归一化算法虽考虑了噪声的各点 异性特性,建立了新的噪声统计模型,借鉴 Sampson 提出的 迭代重加权最小二乘法 [5] 并加以改进,即先对原模型进行加 权,使之变成一个新的不存在异方差性的模型,并考虑四阶 矩与噪声有关的现象,在小噪声电平时提供了一个近似最优 解。但在大噪声电平时,该算法起始于一个有偏初始解,并 用噪化数据点计算校正矩阵,导致算法在大噪声电平下不收 敛, 而估计值在不收敛情况下得到的参数估计带有较大偏差。 本文对椭圆拟合的常见算法进行理论分析,提出了一种 新的计算各点异性 EIV 模型参数的算法, 使用最小马氏距离, 即高斯分布下的最大似然准则。算法的数据校正过程伴随模 型参数的回归过程同时进行。笔者通过实验验证,与现有算 法相比,本文算法更精确,当初始值与真实值差距很远时, 本文算法仍可快速稳定地收敛。
( j) ( j) i i
z
∑ Wi
( j)
( j) ( j) , zci = zi( j ) − z
Z
( j) c
⎡ W ( j ) z ( j )T ⎤ c1 1 ⎢ ⎥ ⎢ W ( j ) z ( j )T ⎥ c2 2 ⎥ =⎢ ⎢ ⎥ # ⎢ ⎥ ( j ) ( j )T ⎢ ⎣ W N z cN ⎥ ⎦
(α , θ ) ,应使噪化数据矢量观测和数据矢量真值之间马氏距
离的平方和
*+ n = ∑ δ M TC M δM i =1
i
N
i
(5)
∗+ M
在式 (1)和式 (3)下最小化,其中, C
∗ M
是 C 的逆 (当 C 非奇
∗ M
∗ M
∗ 异时 )或伪逆 (当 C 奇异时 )矩阵。 当 GI ( 0, σ 2 C M ) 为正态分布
第 34 卷 Vol.34
第 16 期 No.16
计 算 机 工 程 Computer Engineering
文章编号:1000—3428(2008)16—0283—03 文献标识码:A
相关文档
最新文档