计算机视觉基本原理——RANSAC
公众号【视觉IMAX】第31篇原创文章
一 前言
对于上一篇文章——一分钟详解「本质矩阵」推导过程中,如何稳健地估计本质矩阵或者基本矩阵呢?正是这篇文章重点介绍的内容。
基本矩阵求解方法主要有:
1)直接线性变换法
a)8点法
b)最小二乘法
2)基于RANSAC的鲁棒方法。
先简单介绍一下直接线性变换法:
注:
三个红线标注的三个等式等价。
在上述分析过程中,如果n>=8时,最小二乘法求解是否是最优估计呢?
接下来,我们重点探讨一下这个问题。
二 稳健估计
2.1 稳健的定义
稳健(robust):对数据噪声的敏感性。
对于上述采样,如果出现外点(距离正确值较远),将会影响实际估计效果。
2.2 RANSAC——随机一致性采样
RANSAC主要解决样本中的外点问题,最多可处理50%的外点情况。
基本思想:
RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:
有一个模型适用于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。
用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。
如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
然后,用所有假设的局内点去重新估计模型,因为它仅仅被初始的假设局内点估计过。
最后,通过估计局内点与模型的错误率来评估模型。
这个过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为它比现有的模型更好而被选用。
对上述步骤,进行简单总结如下:
举个例子:使用RANSAC——拟合直线
2.3 关于OpenCV中使用到RANSAC的相关函数
1. solvePnPRansac
2. findFundamentalMat
荐读
Homography matrix(单应性矩阵)在广告投放中的实践
最新文章
- TimerToPdf
- git push免输入账号和密码方法
- 工作需求----表单select多选交互
- C#复习①
- mysql查看存储过程
- guava学习--hashing
- [算法]树上倍增求LCA
- 应用Spring MVC发布restful服务是怎样的一种体验
- ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor.error:34 - Developer Notification
- JAVA的文件创建
- 【开源项目5】测滑菜单MenuDrawer的使用以及解析
- Codeforces Gym 100342C Problem C. Painting Cottages 暴力
- js post传值
- python查询mysql中文乱码问题
- 记录一下从懵懂到理解RESTful的过程
- 如何创建Filter的属性页
- Cesium 实现粒子效果贴地(伪)
- div、span内容超出省略号
- Centos下DNS+NamedManager高可用部署方案完整记录
- Spark学习之路 (二十八)分布式图计算系统
热门文章
- 最近做的一个Spring Boot小项目,欢迎大家访问 http://39.97.115.152/
- 【ThinkPHP6:从TP3升级到放弃】1. 前言及准备工作
- 目标用户偏好指数Target Group Index分析
- 黑客必学之“网页木马webshell”
- LeetCode--链表1-单链表
- 全网最详细的一篇Flutter 尺寸限制类容器总结
- 搭建Flutter开发环境需要注意的几个小Tips
- python框架Django实战商城项目之工程搭建
- W3C的盒子模型和IE的盒子模型
- JavaFX之多个FXML加载和通信