Ransac算法简介

给定两个点p1与p2的坐标,确定这两点所构成的直线,要求对于输入的任意点p3,都可以判断它是否在该直线上。初中解析几何知识告诉我们,判断一个点在直线上,只需其与直线上任意两点点斜率都相同即可。实际操作当中,往往会先根据已知的两点算出直线的表达式(点斜式、截距式等等),然后通过向量计算即可方便地判断p3是否在该直线上。 

生产实践中的数据往往会有一定的偏差。例如我们知道两个变量X与Y之间呈线性关系,Y=aX+b,我们想确定参数a与b的具体值。通过实验,可以得到一组X与Y的测试值。虽然理论上两个未知数的方程只需要两组值即可确认,但由于系统误差的原因,任意取两点算出的a与b的值都不尽相同。我们希望的是,最后计算得出的理论模型与测试值的误差最小。大学的高等数学课程中,详细阐述了最小二乘法的思想。通过计算最小均方差关于参数a、b的偏导数为零时的值。事实上,在很多情况下,最小二乘法都是线性回归的代名词。 

遗憾的是,最小二乘法只适合与误差较小的情况。试想一下这种情况,假使需要从一个噪音较大的数据集中提取模型(比方说只有20%的数据是符合模型的)时,最小二乘法就显得力不从心了。例如下图,肉眼可以很轻易地看出一条直线(模式),但算法却找错了。 



RANSAC算法的输入是一组观测数据(往往含有较大的噪声或无效点),一个用于解释观测数据的参数化模型以及一些可信的参数。RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证: 

  • 有一个模型适应于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。
  • 用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。
  • 如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
  • 然后,用所有假设的局内点去重新估计模型(譬如使用最小二乘法),因为它仅仅被初始的假设局内点估计过。
  • 最后,通过估计局内点与模型的错误率来评估模型。
  • 上述过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为比现有的模型更好而被选用。


在模型确定以及最大迭代次数允许的情况下,RANSAC总是能找到最优解。经过我的实验,对于包含80%误差的数据集,RANSAC的效果远优于直接的最小二乘法。 

RANSAC可以用于哪些场景呢?最著名的莫过于图片的拼接技术。由于镜头的限制,往往需要多张照片才能拍下那种巨幅的风景。在多幅图像合成时,事先会在待合成的图片中提取一些关键的特征点。计算机视觉的研究表明,不同视角下物体往往可以通过一个透视矩(3X3或2X2)阵的变换而得到。RANSAC被用于拟合这个模型的参数(矩阵各行列的值),由此便可识别出不同照片中的同一物体。如下图:

提取两幅图片的特征点后,进行图片拼接,结果如下:



另外,RANSAC还可以用于图像搜索时的纠错与物体识别定位。下图中,有几条直线是SIFT匹配算法的误判,RANSAC有效地将其识别,并将正确的模型(书本)用线框标注出来: 




转载自:http://grunt1223.iteye.com/blog/961063


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018年AI和ML(NLP、计算机视觉、强化学习)技术总结和2019年趋势

来源:网络大数据1、简介过去几年一直是人工智能爱好者和机器学习专业人士最幸福的时光。因为这些技术已经发展成为主流,并且正在影响着数百万人的生活。各国现在都有专门的人工智能规划和预算,以确保在这场比赛中保持优势。数据科学从业人员也…

HDU 2421

由算术基本定理Np1^e1*p2^e2....ps^es,可知一个素的因子个数为(e11)*(e21)*...*(es1)。 而N的一人因子必定也有np1^k1*p2^k2。。。。*ps^ks的形式。因子个数形式同上。 而事实上,即是从ei中选取其中一些来充当k1。那么,所有的因子的个数之和必…

仿射变换的原理

在条形码识别软件中有图像预览的功能。有时预览的图像需要进行转置(旋转180度或者90度)、缩放、镜像(左右反转)等操作。OpenCV提供了相应的函数进行以上操作。例如: 转置:cv::WarpAffine() 缩放&#xff…

拯救顽疾大作战!IDC绘中国医疗AI生态图谱,英伟达献医疗影像新杀器

来源:智东西摘要:中国千家医院部署AI系统!IDC医疗AI报告详解行业趋势和五大药方。2018年是令人唏嘘的一年,台湾作家李敖、动画大师高畑勋、相声表演艺术家师胜杰、央视主持人李咏、微软联合创始人保罗艾伦、武侠小说宗师金庸等一个…

设计模式之适配器模式(Adapter Pattern)

在正式开始之前,让我们先思考几个问题: 如果现有的新项目可以利用旧项目里大量的遗留代码,你打算从头开始完成新项目还是去了解旧项目的模块功能以及接口?如果你了解过遗留代码之后,发现有几个重要的功能模块接口不同&…

错位排列-信封问题

五个编号为1~5的小球放进5个编号为1~5的小盒里面,全错位排列(即1不放1,2不放2,依次类推)一共有多少种放法 这是著名的信封问题,很多著名的数学家都研究过瑞士数学家欧拉按一般情况给出了一个递推公式: 用A…

存在描述所有生命的方程吗?

○ 生物体既复杂又有序,就像这片亚麻茎的横截面。研究人员希望最终发展出描述所有生命的基本方程。来源:原理关于生命,没有什么是简单的。每一秒钟,都有数百万个缜密有序的化学反应发生在一个细胞内;数十亿个单细胞生物…

asp.net(C#)写SQL语句技巧

/*添加SQL*/string fields "";string values "";fields "xm"; values "" Request.Form["xm"].ToString() "";fields ",xb"; values "," Request.Form["xb"].ToString() …

Python函数参数值传递

Python的函数参数是通过值传递的,但是如果变量是可变对象,返回到调用程序后,该对象会呈现被修改后的状态 测试程序如下: # 值传递不改变变量 def addInterest(balance, rate):newBalance balance * (1rate)return newBalance de…

CSS3滤镜

今天在办公室亲眼目睹了同事使用CSS3滤镜为一张漂亮的照片轮廓加上了阴影,瞬间亮瞎了我的的双眼,见笑了。 所以也迅速尝试使用CSS3滤镜让最新出炉的MUI LOGO也性感一把,试图来愉悦一下大家的双眼。已经等不及了,赶紧奉上今天的测试…

Python中递归字符串反转

我们可以用Python轻松的反转字符串,代码如下: def reverse(s):if s :return selse:return reverse(s[1:]) s[0]print(reverse(hello))运行结果如下:Connected to pydev debugger (build 143.1559) ollehProcess finished with exit code 0

全面认识“边缘云”,中国首份边缘云白皮书发布

来源:中国电子技术标准化研究院、阿里云摘要:《边缘云计算技术与标准化白皮书》近期发布,定义了边缘云计算的概念和标准等。中心云和边缘云相互配合,实现中心-边缘协同、全网算力调度、全网统一管控等能力,真正实现“无…

Python中异常处理

Python使用try...except...来处理异常,当Python遇到一个try语句,他会尝试执行try语句体内的语句,如果执行这些语句没有错误,控制转移到try...except...后面的语句,如果语句体内发生错误,python会寻找一个符…

【Tech】Mac上安装MAMP打开本地网页

不知道为什么实验室老是用些奇葩的东西,这次是madserve,主要是用来统计移动端广告点击率的,基于PHP/MYSQL实现。 昨天很快在Windows上搭好一个xampp,并用它建立了一个virtual host把madserve跑起来了。但是在mac上xampp建立virtua…

中国10大最震撼的无人工厂,你吃的用的都是这么来的!

来源:工业机器人摘要:你吃的用的那么多东西,早已不是“人造”的!1.上海通用金桥工厂:386台机器人图中展示的是上海通用金桥工厂。这里号称中国最先进的制造业工厂、中国智造的典范。即使从全球来看,这个水平…

图像拼接2 特征匹配

特征匹配旨在从两幅图像所提取的特征集中寻找对应关系,匹配过程是从前面的图像特征描述符的相似性来进行判断。 判断两个图像特征集中的特征点的相似程度存在两种基本方式: 1:给定阈值,即从特征集中找出所有与待匹配点距离小于阈…

状态压缩 之 UVA 10944 - Nuts for nuts..

// [9/19/2014 Sjm] /* dis[j][k] : 从 j 点到 k 点的最少步数,由于They can travel in all 8 adjacent direction in one step.故而 dis[j][k] max( abs(Xj - Xk), abs(Yj - Yk) )f[j][i] : 在 i 状态下,最后收集坚果 j 的最少步数n 代表坚果的数目。…

对人工神经网络“开刀”,利用神经科学消融法检测人工神经网络

来源:DeepTech深科技摘要:当谈及人工神经网络,黑箱问题总会引起热议,人们对黑箱问题的评价褒贬不一。有人认为黑盒是神经网络的优势,这代表神经网络的自主学习性,代表其自动学习以及自动完善的特性。但大部…

wp8数据存储--独立存储文件 【转】

出自 : http://www.cnblogs.com/MyBeN/p/3339019.html 文章篇幅有点大,建议去源网看看 1.调用手机的独立存储 例如:IsolatedStorageFile storage IsolatedStorageFile.GetUserStoreForApplication() 2.创建独立存储文件流 例如:I…

从车联网到工业智联网

来源:智车科技摘要:本文从工业互联网的典型应用—车联网谈起,从工业网联技术发展过程的视角分析了工业智联网的构架、关键技术和前沿趋势,对智联网视域下的未来智联交通作出了展望。随着智能技术的发展,从工业互联网发…