如何确定ransac的fluent迭代次数数

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
稀疏分量分析的RANSAC算法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口一种带预处理的RANSAC图像拼接算法-yd_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
一种带预处理的RANSAC图像拼接算法-yd
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
你可能喜欢RANSAC算法详解
iterations&=&0
best_model&=&null
best_consensus_set&=&null
best_error&=&无穷大
while&(&iterations&&&k&)
maybe_inliers&=&从数据集中随机选择n个点
maybe_model&=&适合于maybe_inliers的模型参数
consensus_set&=&maybe_inliers
for&(&每个数据集中不属于maybe_inliers的点&)
if&(&如果点适合于maybe_model,且错误小于t&)
将点添加到consensus_set
if&(&consensus_set中的元素数目大于d&)
已经找到了好的模型,现在测试该模型到底有多好
better_model&=&适合于consensus_set中所有点的模型参数
this_error&=&better_model究竟如何适合这些点的度量
if&(&this_error&&&best_error&)
我们发现了比以前好的模型,保存该模型直到更好的模型出现
best_model&=&&better_model
best_consensus_set&=&consensus_set
best_error&=&&this_error
增加迭代次数
返回&best_model,&best_consensus_set,&best_error
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。随机抽样一致性算法(RANSAC)
[问题点数:20分]
随机抽样一致性算法(RANSAC)
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。下次自动登录
现在的位置:
随机抽样一致性算法(RANSAC)
作者:王先荣
本文翻译自维基百科,英文原文地址是:http://en.wikipedia.org/wiki/ransac,如果您英语不错,建议您直接查看原文。
是“RANdom SAmple Consensus(一致)”的缩写。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法——它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。该算法最早由Fischler和Bolles于1981年提出。
的基本假设是:
(1)数据由“局内点”组成,例如:数据的分布可以用一些模型参数来解释;
(2)“局外点”是不能适应该模型的数据;
(3)除此之外的数据属于噪声。
局外点产生的原因有:噪声的极值;错误的测量方法;对数据的错误假设。
也做了以下假设:给定一组(通常很小的)局内点,存在一个可以估计模型参数的过程;而该模型能够解释或者适用于局内点。
优点与缺点
一个简单的例子是从一组观测数据中找出合适的2维直线。假设观测数据中包含局内点和局外点,其中局内点近似的被直线所通过,而局外点远离于直线。简单的最小二乘法不能找到适应于局内点的直线,原因是最小二乘法尽量去适应包括局外点在内的所有点。相反,能得出一个仅仅用局内点计算出模型,并且概率还足够高。但是,并不能保证结果一定正确,为了保证算法有足够高的合理概率,我们必须小心的选择算法的参数。
左图:包含很多局外点的数据集
右图:找到的直线(局外点并不影响结果)
算法的输入是一组观测数据,一个可以解释或者适应于观测数据的参数化模型,一些可信的参数。
通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:
有一个模型适应于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。
用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。
如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
然后,用所有假设的局内点去重新估计模型,因为它仅仅被初始的假设局内点估计过。
最后,通过估计局内点与模型的错误率来评估模型。
这个过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为比现有的模型更好而被选用。
伪码形式的算法如下所示:
data —— 一组观测数据
model —— 适应于数据的模型
n —— 适用于模型的最少数据个数
k —— 算法的迭代次数
t —— 用于决定数据是否适应于模型的阀值
d —— 判定模型是否适用于数据集的数据数目
best_model —— 跟数据最匹配的模型参数(如果没有找到好的模型,返回null)
best_consensus_set —— 估计出模型的数据点
best_error —— 跟数据相关的估计出的模型错误
iterations = 0
best_model = null
best_consensus_set = null
best_error = 无穷大
while ( iterations & k )
maybe_inliers = 从数据集中随机选择n个点
maybe_model = 适合于maybe_inliers的模型参数
consensus_set = maybe_inliers
for ( 每个数据集中不属于maybe_inliers的点 )
if ( 如果点适合于maybe_model,且错误小于t )
将点添加到consensus_set
if ( consensus_set中的元素数目大于d )
已经找到了好的模型,现在测试该模型到底有多好
better_model = 适合于consensus_set中所有点的模型参数
this_error = better_model究竟如何适合这些点的度量
if ( this_error & best_error )
我们发现了比以前好的模型,保存该模型直到更好的模型出现
best_model =
better_model
best_consensus_set = consensus_set
best_error =
this_error
增加迭代次数
返回 best_model, best_consensus_set, best_error
算法的可能变化包括以下几种:
(1)如果发现了一种足够好的模型(该模型有足够小的错误率),则跳出主循环。这样可能会节约计算额外参数的时间。
(2)直接从maybe_model计算this_error,而不从consensus_set重新估计模型。这样可能会节约比较两种模型错误的时间,但可能会对噪声更敏感。
我们不得不根据特定的问题和数据集通过实验来确定参数t和d。然而参数k(迭代次数)可以从理论结果推断。当我们从估计模型参数时,用p表示一些迭代过程中从数据集内随机选取出的点均为局内点的概率;此时,结果模型很可能有用,因此p也表征了算法产生有用结果的概率。用w表示每次从数据集中选取一个局内点的概率,如下式所示:
w = 局内点的数目 / 数据集的数目
通常情况下,我们事先并不知道w的值,但是可以给出一些鲁棒的值。假设估计模型需要选定n个点,wn是所有n个点均为局内点的概率;1 - wn是n个点中至少有一个点为局外点的概率,此时表明我们从数据集中估计出了一个不好的模型。 (1 - wn)k表示算法永远都不会选择到n个点均为局内点的概率,它和1-p相同。因此,
1 - p = (1 - wn)k
我们对上式的两边取对数,得出
值得注意的是,这个结果假设n个点都是独立选择的;也就是说,某个点被选定之后,它可能会被后续的迭代过程重复选定到。这种方法通常都不合理,由此推导出的k值被看作是选取不重复点的上限。例如,要从上图中的数据集寻找适合的直线,算法通常在每次迭代时选取2个点,计算通过这两点的直线maybe_model,要求这两点必须唯一。
为了得到更可信的参数,标准偏差或它的乘积可以被加到k上。k的标准偏差定义为:
五、优点与缺点
的优点是它能鲁棒的估计模型参数。例如,它能从包含大量局外点的数据集中估计出高精度的参数。的缺点是它计算参数的迭代次数没有上限;如果设置迭代次数的上限,得到的结果可能不是最优的结果,甚至可能得到错误的结果。只有一定的概率得到可信的模型,概率与迭代次数成正比。的另一个缺点是它要求设置跟问题相关的阀值。
只能从特定的数据集中估计出一个模型,如果存在两个(或多个)模型,不能找到别的模型。
算法经常用于计算机视觉,例如同时求解相关问题与估计立体摄像机的基础矩阵。
七、参考文献
Martin A. Fischler and Robert C. Bolles (June 1981). "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography". Comm. of the ACM 24: 381–395. :.
David A. Forsyth and Jean Ponce (2003). Computer Vision, a modern approach. Prentice Hall.
Richard Hartley and
(2003). Multiple View Geometry in Computer Vision (2nd ed.). Cambridge University Press.
P.H.S. Torr and D.W. Murray (1997). "The Development and Comparison of Robust Methods for Estimating the Fundamental Matrix".International Journal of Computer Vision 24: 271–300. :.
Ondrej Chum (2005). . PhD Thesis.
Sunglok Choi, Taemin Kim, and Wonpil Yu (2009). . In Proceedings of the British Machine Vision Conference (BMVC). .
八、外部链接
. A research (and didactic) oriented toolbox to explore the
algorithm in . It is highly configurable and contains the routines to solve a few relevant estimation problems.
as a generic template.
A simple tutorial with many examples that uses the
Toolbox for MATLAB.
本文在翻译的过程中参考了沈乐君的文章《》。Ziv Yaniv已经用C++实现了,您可以源程序。
不过,如果时间允许的话,我打算自己动手用C#去实现算法,原因有两个:
(1)熟悉算法的最佳途径是自己去实现它;
(2)方便使用.net的同志们利用。
【上篇】【下篇】
您可能还会对这些文章感兴趣!
2000人的生物信息学QQ群
生物信息学①群 :(已满)
生物信息学②群 :(已满)
生物信息学③群 :(开放)
请先在注册,凭PLoB的用户名验证入群。
生物信息快速问答社区
百度站内搜索
生物信息培训班推荐
我的收藏夹 &&}

我要回帖

更多关于 如何减少迭代计算次数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信