几种线性参数估计方法之比较

几种线性参数估计方法之比较

学术作品 2008-01-05 13:16:54 阅读782 评论0   字号: 订阅

    前段时间在做机器视觉“独立运动目标检测”的研究工作,其中涉及不少3D结构模型的参数估计,尝试了几种当前较为流行的参数估计算法(主要正对线性模型)。其实线性参数估计算法的应用不仅仅局限于线性模型,在不少非线性模型的参数估计时,往往先将模型线性化,使用线性方法得到一个线性估计,以此作为非线性参数估计算法的初始输入,以期实现快速收敛(例如引入镜头畸变模型后的摄像机标定)。
    这里参与比较的线性参数估计算法有LS、WLS、Ransac LS、LMedS(其实Ransac的使用并不局限于线性模型,LMedS的思想也可以扩展到非线性模型)。由于已经有大量的文献从数学理论上对这些算法做了分析,所以此处只是用实验结果给大家一个直观的印象。

四种参数估计算法的简单描述:
    LS既是最小方差,以此作为目标函数求解参数估计值的方法称为最小方差估计,SVD分解是目前解决这一问题的最有效手段。
    WLS既是带权重的最小方差,其思想是将每个输入的样本赋予权值,初始时每个样本的权值相等,然后使用所有带权重的样本估计模型的参数,得到参数后,计算每个样本与模型的偏差,再根据偏差决定样本的新权重,偏差越大则权重越小,然后重复模型参数估计与权重更新这个过程,直到样本的带权偏差和收敛为止。
    Ransac是一种随机参数估计算法。Ransac LS从样本中随机抽选出一个样本子集,使用LS对这个子集计算模型参数,然后计算所有样本与该模型的偏差,再使用一个预先设定好的阈值与偏差比较,当偏差小于阈值时,该样本点属于模型内样本点(inliers),否则为模型外样本点(outliers),记录下当前的inliers的个数,然后重复这一过程。每一次重复,都记录当前最佳的模型参数,所谓最佳,既是inliers的个数最多,此时对应的inliers个数为best_ninliers。每次迭代的末尾,都会根据期望的误差率、best_ninliers、总样本个数、当前迭代次数,计算一个迭代结束评判因子,据此决定是否迭代结束。迭代结束后,最佳模型参数就是最终的模型参数估计值。
    LMedS也是一种随机参数估计算法。LMedS也从样本中随机抽选出一个样本子集,使用LS对子集计算模型参数,然后计算所有样本与该模型的偏差。但是与Ransac LS不同的是,LMedS记录的是所有样本中,偏差值居中的那个样本的偏差,称为Med偏差(这也是LMedS中Med的由来),以及本次计算得到的模型参数。由于这一变化,LMedS不需要预先设定阈值来区分inliers和outliers。重复前面的过程N次,从中N个Med偏差中挑选出最小的一个,其对应的模型参数就是最终的模型参数估计值。其中迭代次数N是由样本集子中样本的个数、期望的模型误差、事先估计的样本中outliers的比例所决定。

四种算法的简单分析:
    LS将所有样本参与最后的参数估计计算,不能剔除输入样本中的outliers。这些outliers会给参数估计带来极大的影响,使得估计结果变得很差。
    WLS一定程度上可以削弱outliers对整体的影响,但是WLS有可能陷入局部极值,这与梯度下降法有类似之处。
    Ransac理论上可以剔除outliers的影响,并得到全局最优的参数估计。但是Ransac有两个问题,首先在每次迭代中都要区分inliers和outlieres,因此需要事先设定阈值,当模型具有明显的物理意义时,这个阈值还比较容易设定,但是若模型比较抽象时,这个阈值就不那么容易设定了,而且固定阈值不适用于样本动态变化的应用;第二个问题是,Ransac的迭代次数是运行期决定的,不能预知迭代的确切次数(当然迭代次数的范围是可以预测的)。
    LMedS理论上也可以剔除outliers的影响,并得到全局最优的参数估计,而且客服了Ransac的两个缺点(虽然LMedS也需要实现设定样本中outliers的比例,但这个数字比较容易设定)。但是当outliers在样本中所占比例达到或超过50%时,LMedS就无能为力了!这与LMedS每次迭代记录的是“Med”偏差值有关!

四种算法的实验结果:
    我挑选了一种最简单的情况来测试比较这四种算法——直线参数估计。直线模型为:y=-x-1,输入的100个样本点中加入均值为0,方差为2的高斯噪声,并且再加入20%的随机outliers。进行1000次测试,记录每次的参数估计误差和迭代次数。
    测试关注的数据为:平均误差、误差方差、平均迭代次数。平均误差反映了参数估计算法的精度,误差方差反映参数估计算法的一致性表现,平均迭代次数反映了参数估计算法的时间消耗。

 

LS

WLS

Ransac

LMedS

平均误差

2.5033

1.5799

0.5276

0.6397

误差方差

0.2267

0.3953

0.1081

0.1071

平均迭代次数

1

10

8

7

从上表不难看出LS的估计精度最差;WLS的一致性很差,这与其容易陷入局部极值有关;Ransac与LMedS性能相近,选择哪一个,就要根据具体应用来决定了。当outliers小于50%,样本与模型的偏差的物理含义不明确时,LMedS是个不错的选择。

直线参数估计图形显示如下表:

 

直线参数估计图形显示如下表:

 

 

原文 链接:http://jackchongsun.blog.163.com/blog/static/407160720080511117151/

 

 

 

 


你可能感兴趣的:(几种线性参数估计方法之比较)