当前位置: 首页 > article >正文

sim3相较于se3的好处

0. 前言

最近一直在啃SLAM优化方面的相关知识,发现以前对于se3与sim3之间的理解不太深入,这里专门开一篇文章来整理这两者之间的区别。
相似变换sim(3),尺度s与R相乘,而不是t。ORB-SLAM2中使用sim3的主要原因是考虑到单目尺度漂移,这个在第一版系统的论文中的VII。 LOOP CLOSING的Compute the Simlilarity Transformation部分有提到。
只有在单目输入的时候,闭环的部分才回使用sim3;其实在双目和RGBD输入的时候虽然也用到了但是其尺度因子被强制设置为1了。

1. 单目尺度漂移

单目SLAM的尺度漂移,简单来说就是单目获得的单张图片无法知道拍摄物体到相机的距离,必须通过对极几何求的两张图片的位姿,然后三角化出来尺度信息。而这些都依赖的是两帧图像之间的逆深度求解。
在这里插入图片描述

  1. 任选两张图(设为第0帧和第1帧),先提取关键点并匹配,再根据对极几何求本质矩阵E,再从E中恢复R,t。这个在单目VO里属于初始化的部分,其中得到的t是个单位向量,因为任意缩放t,极线约束都成立。你可以对t进行任意缩放。缩放完后,设第0帧的位置为相机坐标系原点,则第1帧的位置就可以由R, t得到。虽然这个t不是真值,但是可以固定下来。然后根据两帧的位置,可以对图像帧0和1中匹配的三维点进行三角化。(多点获取本质矩阵;恢复R,t;并根据R,t三角化计算出伪深度; )。
    在这里插入图片描述

  2. 对之后的图像帧,就不再是利用对极几何求R,t了。依旧是先提取关键点再匹配哈, 但是这次匹配的上一帧的特征中,有些是已经被三角化过的,因此可以像之前答主说的用运动模型加BA求该图像帧与上一帧的位置关系,也可以用PnP求R,t。求出来R,t之后,再三角化该帧与上一帧的没被三角化过的匹配点。
    在这里插入图片描述

我们可以发现在尺度漂移就是出现在第二步。因为对于新的图像帧,都是先计算其R,t,再利用该R,t三角化与之前图像帧匹配的点。问题就是,如果第一步算的R,t有误差,那么第二步三角化的三维点的深度就存在误差,也就是说其深度会存在一个缩放。对于新来的每一帧,都会有这样的问题

2. SE3与SIM3对比

…详情请参照古月居

http://www.lryc.cn/news/2414257.html

相关文章:

  • 百度分享代码
  • Socket Error # 10054
  • windows update更新返回错误码统计(WUSA.exe)
  • Windows系统的VPS做301重定向新手操作详解
  • pwntools:类型转换
  • mysql distinct和group by以及having用法
  • 信号频谱、幅度、功率和能量
  • 基于深度学习方法的图像分割
  • Windows+C语言 共享内存与互斥量
  • C#之读取数据:DataReader对象
  • 找资源网站
  • [QQAI机器人]-接入腾讯AI接口
  • 转让对战平台~~
  • Windows 11中无法使用小键盘的问题及其解决方法
  • kinect 1 for windows
  • 云远程调试工具V1.0.0
  • VC——线程同步
  • 智能音乐推荐系统(开题+源码)
  • 入门级 如何编写第一个网页
  • 【实验学习】思科模拟器学习
  • Windows系统shdocvw.dll文件丢失导致功能异常问题
  • 在线辞源辞海
  • 潇洒郎:用cxfreeze打包py文件为exe文件全过程——呕心吐血经验——安装、调试、解决KeyError: 'TCL_LIBRARY'问题、最终成功、打包方便技巧
  • 【Google论文】The Google File System 译文
  • 推荐一款国内好用的Java CMS内容管理软件,功能强大,灵活好用(附源码)
  • 爬虫有用的数据网站
  • MySql触发器介绍及应用
  • 【NLP】语义分析
  • 【算法合集】学习算法第二天(二分与排序篇)
  • SSM宠物店管理系统-计算机毕业设计源码93755