ORB-SLAM中的RANSAC算法解析

RANSAC算法解析

RANSAC是一种在具有噪声的模型中去估计最优的一个算法,其核心思想是采用不断迭代的方法去选择一组全是内点的集合,并采用该集合进行模型估计的一种方法,可以提高模型估计的鲁棒性。

RANSAC算法流程

假设目前有 K K K组采集到的数据,但是数据中的一些点是噪声点,如何使用RANSAC去根据这些有噪声的数据去估计一个比较好的模型呢?

  1. 选择任意一种能够根据当前采集的数据进行模型评估的方法。
  2. 使用有放回抽样的方式抽取 S i S_i Si个数据,使用上述方法进行模型评估。
  3. 根据当前模型,进行数据点的回代
  4. 根据计算误差的自由度和置信区间查卡方检验表== χ 2 \chi^2 χ2和指定的方差的乘积==作为阈值 t t t
  5. 使用阈值 t t t设置内点标识,统计内点数目 K i n K_{in} Kin
  6. 根据给定的内点百分比 ω \omega ω和数据总数 K K K乘积为阈值 T T T,判断这次RANSAC迭代的模型是否有效。
  7. 根据计算得出的迭代次数 N N N

1 外点阈值 t t t

  1. RANSAC算法的模型估计后,进行数据回代判断内点时,所使用到的参数。
  2. 这个参数的选择是根据模型误差计算的自由度和置信区间查卡方检验表确定的。
  3. 在卡方检验中,假设误差符合高斯分布, e 2 < k 2 e^2<k^2 e2<k2的概率为 P ( k 2 ) = ∫ 0 k 2 χ m 2 ( ξ ) d ξ P(k^2)=\int_{0}^{k^2}{\chi^2_m(\xi) d\xi} P(k2)=0k2χm2(ξ)dξ,其中 e e e为误差, χ 2 \chi^2 χ2为高斯分布的平方表示, ξ \xi ξ为置信区间, m m m为高斯分布的自由度, t = k 2 = P − 1 ( ξ ) σ 2 t=k^2=P^{-1}(\xi)\sigma^2 t=k2=P1(ξ)σ2,其中 σ \sigma σ为高斯分布标准差。
  4. 在这一部分,一般是需要95%的置信区间,也就是说如果满足假设的高斯分布的话,我需要去掉5%的离群点,但是往往并不是这样,这是因为误差往往都是不满足高斯分布的。
  5. 这里计算阈值 t t t时,也需要确定方差的 σ 2 \sigma^2 σ2的大小,这就需要一定的先验内容了,在ORB-SLAM中,以金字塔层级的缩放因子的平方作为误差分布的先验方差,金字塔层级越高,认定的方差越大,所对应的误差阈值越大。

2 模型合格阈值 T T T

  1. 在判断这次RANSAC算法是否合格时,需要的阈值 T T T
  2. 这个 T T T能接受数据中最少内点的内点个数,是人为定义的一个数值,但是这个数值一般不少于采集数据总数的50%。

3 迭代次数 N N N

当RANSAC进行N次抽样时,至少有一次全为内点。或者说至少有一次全为内点的概率是 P P P。确定迭代次数的方式主要有两种:

  1. 假设采集到的数据中,内点的比例为 ω \omega ω,则进行 N N N次抽样时,至少有一次全为内点的概率计算公式为 P = 1 − ( 1 − ω s i ) N P=1-(1-\omega^{s_i})^N P=1(1ωsi)N
    1. 进行 s i s_i si次有放回抽样,抽到全是内点的概率为 ω s i \omega^{s_i} ωsi,则抽不到全是内点的概率为 1 − ω s i 1-\omega^{s_i} 1ωsi
    2. 进行N次上述抽样,抽不到全是内点的概率为 ( 1 − ω s i ) N (1-\omega^{s_i})^N (1ωsi)N,则至少有一次全是内点的概率为 P = 1 − ( 1 − ω s i ) N P=1-(1-\omega^{s_i})^N P=1(1ωsi)N
    3. 这种计算方式计算的迭代次数比较粗糙,在很大程度上依赖于内点占比的假设,在ORB-SLAM中也是用的这种方法。
  2. 使用迭代的方式进行迭代次数N的确定
    1. 迭代次数N是用于设置迭代终止条件的,因此重要的并不是求迭代次数N是多少,而是需要一个RANSAC迭代停止的条件
    2. 在RANSAC进行数据回代时,会统计一个内点的占比 ω i \omega_i ωi,可以根据 ω i \omega_i ωi来动态的计算和更新迭代次数 N N N
    3. 若当前更新的迭代次数 N N N小于目前真实的迭代次数,那么退出迭代即可。

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

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

相关文章

2024年人工智能产业十大发展趋势

2024年人工智能产业十大发展趋势 技术变革1. 多模态预训练大模型将是人工智能产业的标配2. 高质量数据愈发稀缺将倒逼数据智能飞跃3. 智能算力无处不在的计算新范式加速实现 应用创新4. 人工智能生成内容&#xff08;AIGC&#xff09;应用向全场景渗透5. 人工智能驱动科学研究&…

仅使用 Python 创建的 Web 应用程序(前端版本)第07章_商品列表

在本章中,我们将实现一个产品列表页面。 完成后的图像如下 创建过程与User相同,流程如下。 No分类内容1Model创建继承BaseDataModel的数据类Item2MockDB创建产品表并生成/添加虚拟数据3Service创建一个 ItemAPIClient4Page定义PageId并创建继承自BasePage的页面类5Applicati…

ElasticSearch7.7.1集群搭建

前言 Elasticsearch&#xff08;ES&#xff09;是一个基于Apache Lucene的分布式、高扩展、近实时的搜索引擎&#xff0c;主要用于海量数据快速存储、实时检索、高效分析的场景。通过简单易用的RESTful API&#xff0c;Elasticsearch隐藏了Lucene的复杂性&#xff0c;使得全文搜…

DDT数据驱动测试

简单介绍 ​ DDT&#xff08;Date Driver Test&#xff09;&#xff0c;所谓数据驱动测试&#xff0c; 简单来说就是由数据的改变从而驱动自动化测试的执行&#xff0c;最终引起测试结果的改变。通过使用数据驱动测试的方法&#xff0c;可以在需要验证多组数据测试场景中&…

齐俊元或转岗至Flow,童遥升任飞书产品负责人;霍启刚赴天津履职 ;广州放开120平方米以上住房限购

今日精选 • 齐俊元或转岗至Flow&#xff0c;童遥升任飞书产品负责人• 霍启刚赴天津履职• 广州放开120平方米以上住房限购 科技动态 • 年轻人的第一个多模态大模型: Vary-toy ,模型大小不到2B,代码和模型均已开源&#xff0c;并有在线demo可试玩。 地址&#xff1a; htt…

Topaz Video AI:无损放大,让你的视频更清晰!

在当今的数字时代&#xff0c;视频内容的重要性越来越受到人们的关注。无论是在社交媒体上分享生活片段&#xff0c;还是在商业领域中制作宣传视频&#xff0c;人们都希望能够展现出更高质量的视频内容。 然而&#xff0c;由于各种原因&#xff0c;我们经常会面临一个问题&…

网络基础---初识网络

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、局域网…

springboot 整合 Activiti6

1.添加maven依赖 <dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter-basic</artifactId><version>6.0.0</version> </dependency>2.添加配置 spring:activiti:check-process-definitio…

Linux:命名管道及其实现原理

文章目录 命名管道指令级命名管道代码级命名管道 本篇要引入的内容是命名管道 命名管道 前面的总结中已经搞定了匿名管道&#xff0c;但是匿名管道有一个很严重的问题&#xff0c;它只允许具有血缘关系的进程进行通信&#xff0c;那如果是两个不相关的进程进行通信&#xff0…

幻兽帕鲁服务器(Palworld)腾讯云配置价格表,2024新版报价

腾讯云幻兽帕鲁服务器4核16G、8核32G和16核64G配置可选&#xff0c;4核16G14M带宽66元一个月、277元3个月&#xff0c;8核32G22M配置115元1个月、345元3个月&#xff0c;16核64G35M配置580元年1个月、1740元3个月、6960元一年&#xff0c;腾讯云百科txybk.com分享腾讯云幻兽帕鲁…

机器学习_集成学习之Bagging(集成多个模型,以降低整体的方差)

文章目录 Bagging 算法 —— 多个基模型的聚合决策树的聚合从树的聚合到随机森林从随机森林到极端随机森林 Bagging 算法 —— 多个基模型的聚合 Bagging 是我们要讲的第一种集成学习算法&#xff0c;是Bootstrap Aggregating 的缩写。有人把它翻译为套袋法、装袋法&#xff0…

MySQL 联合索引

文章目录 1.简介2.最左匹配3.最左匹配原理4.如何建立联合索引?5.覆盖索引参考文献 1.简介 联合索引指建立在多个列上的索引。 MySQL 可以创建联合索引&#xff08;即多列上的索引&#xff09;。一个索引最多可以包含 16 列。 联合索引可以测试包含索引中所有列的查询&#…