1、(问答题)  双目视差测距的应用。

利用双目视差可以实现很多实用的功能,比如在军事中可以用跳眼法进行测距。很多人应该记得在电视剧《亮剑》中的名场面,李云龙在和坂田作战时,迫击炮炮手王承柱同志用大拇指利用跳眼法测量了坂田指挥部的距离,然后用仅有的一颗炮弹干掉了坂田的指挥部。

这其中就用到了双目视差实现测距的原理。请问电视剧中的情节是否有科学依据,请结合双目视差分析它背后的原理及限制条件。

答:该情节有科学依据,这种方法称为“跳眼法”,原理如下:

人两眼距离和手臂的长度已知,根据相似三角形等比公式,只需估计出被测物到大拇指所指位置的横向距离就可以计算出拇指到目标的距离,一般为10倍的横向距离,精度取决于估计的横向距离。有较大的误差。

双目相机的测距同样也是利用相似三角形,但是不存在估计值,精度取决于左右眼像素坐标值是否精确,以及基线的宽度。

2、(问答题)  SLAM中为什么要引入李群李代数,有什么作用?

答:SLAM问题是一个优化问题,我们要根据当前的观测求解一个最优的相机位姿,然而位姿的描述(R,t)是有约束的,这样一个带有约束的优化问题不便于求解,因此要引入李群李代数把原问题转化为无约束的优化问题。

优化问题少不了求导,李群不是线性空间,不满足加法,不能求导,而李代数可以,所以要用李代数来建立关系。

3、(问答题)  为什么单目视觉SLAM 会有尺度不确定性,而双目视觉SLAM却不会有?简述单目视觉SLAM尺度不确定的原因?

答:单目相机只是三维空间的二维投影,丢失的距离维度凭借单张图像理论上是无法恢复的,单目 SLAM 估计的轨迹和地图,将与真实的轨迹、地图,相差一个因子,也就是所谓的尺度(Scale)。由于单目 SLAM 无法仅凭图像确定这个真实尺度,所以又称为尺度不确定性。

双目视觉可以得到物体的距离,知道了距离,场景的三维结构就可以通过单个图像恢复出来,也就消除了尺度不确定性。

4、(问答题)  SLAM中为什么需要用关键帧?选择关键帧需要考虑哪些因素?你知道有哪些选择关键帧的方法,分别来自哪个SLAM的框架?

答:关键帧可以减少待优化的帧数,在保证跟踪质量的前提下,减少冗余,提高了计算速度。

  • 距离上一关键帧的帧数是否足够多(时间)。

比如我每隔固定帧数选择一个关键帧,这样编程简单,但效果不好。比如运动很慢的时候,就会选择大量相似的关键帧,冗余,运动快的时候又丢失了很多重
要的帧。

  • 距离最近关键帧的距离是否足够远(空间)/运动

比如相邻帧根据pose计算运动的相对大小,可以是位移也可以是旋转或者两个都考虑,运动足够大(超过一定阈值)就新建一个关键帧,这种方法比第一种好。但问题是如果对着同一个物体来回扫就会出现大量相似关键帧。

  • 跟踪局部地图质量(共视特征点数目)

记录当前视角下跟踪的特征点数或者比例,当相机离开当前场景时(双目或比例明显降低)才会新建关键帧,避免了第2种方法的问题。缺点是数据结构和逻辑比较复杂。

参考:https://www.cnblogs.com/CV-life/p/11159820.html

5、(问答题)  学习源码,请分析ORB-SLAM2如何保证稳定跟踪?

  • 关键帧。

大部分情况下使用恒速跟踪模型,对应函数Tracking::TrackWithMotionModel(),当使用运动模式匹配到的特征点数较少时,就会选用参考关键帧来跟踪,对应函数函数 Tracking::TrackReferenceKeyFrame()。

  • 重定位。

当TrackWithMotionModel 和 TrackReferenceKeyFrame 都没有跟踪成功,位置丢失后,需要重定位,对应函数Tracking::Relocalization()

跟六哥学习ORB-SLAM2作业(三)相关推荐

  1. PMBOK(第六版) 学习笔记 ——《第七章 项目成本管理》

    系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...

  2. PMBOK(第六版) 学习笔记 ——《第一章 引论》

    系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...

  3. PMBOK(第六版) 学习笔记 ——《考试、成绩、PDU》

    系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...

  4. PMBOK(第六版) 学习笔记 ——《第六章 项目进度管理》

    系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...

  5. PMBOK(第六版) 学习笔记 ——《第十章 项目沟通管理》

    系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...

  6. 《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.2 Torvalds的Linux开发

    本节书摘来自异步社区<鸟哥的Linux 私房菜 基础学习篇(第三版)>一书中的第1章,第1.2节,作者:鸟哥著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1. ...

  7. 20155303狄惟佳预备作业三Linux学习笔记

    20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...

  8. ORB SLAM2源码解读(三):Frame类

    文章目录 前言 构造函数 双目相机 RGBD相机 单目相机 ExtractORB:提取特征点 ComputeBoW:计算词袋数据 SetPose:设置相机外参 isInFrustum:判断一个MapP ...

  9. # 20155337 2016-2017-2 《Java程序设计》第六周学习总结

    20155337 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 •串流(Stream): 数据有来源及目的地,衔接两者的是串流对象.如果要将数据从来源取出, ...

最新文章

  1. 你太菜了,竟然不知道Code Review...
  2. 蓝牙耳机和蓝牙鼠标相互干扰_TWS蓝牙耳机哪个牌子好?主流无线蓝牙耳机推荐...
  3. 2017年程序媛和工程狮绝对不能忽视的编程语言、框架和工具
  4. oracle schema_了解Oracle备份恢复的知识
  5. [Swift]LeetCode978. 最长湍流子数组 | Longest Turbulent Subarray
  6. 无ide编译java_无IDE编译和运行java
  7. px2rem-loader(Vue:移动端自适应,px自动转化)
  8. SQL查询语句精华 笔记
  9. 施密特:乔布斯影响力还没有完全释放
  10. 带你穿越古罗马,元宇宙巴士来啦 #Invisible Cities
  11. 计算机流体仿真,计算机流体模拟仿真及其工程应用
  12. 红外光通信装置数字部分思路点睛 2013年国赛f题
  13. 学计算机网络布线图片,从业必看!直观的弱电各子系统图!
  14. 已有的事,后必再有。已行的事,后必再行。
  15. 一键加速去不掉加锁的_三种方法让你的Service不被“一键加速”和系统杀掉
  16. 微信小程序获取手机号登录流程
  17. 欢迎访问4W家庭理财主页!
  18. asp.net分页查询
  19. Vue路由(vue-router)详细讲解
  20. 【音视频开发系列】一学就会,快速掌握音视频开发的第一个开源项目FFmpeg

热门文章

  1. 2023计算机四非保研(复试:东北大学,成电,西电,浙软,中海洋,天大)
  2. matlab声音的滤波处理,matlab声音信号的采集与滤波处理.doc
  3. 极客日报:华为诉争“鸿蒙HongMeng”商标再被驳回;比尔盖茨夫妇正式离婚;iOS 15“查找”新功能,关机也能用
  4. anaconda目录下的pkgs文件夹很大,可以删除吗?
  5. Tinyproxy 搭建代理记录
  6. mySQL基础之子查询
  7. css设置li隐藏,css怎么隐藏li
  8. 学校计算机设备报废记录表,报废固定资产登记表
  9. vscode插件快捷键Ctrl+shift+T不能用,koroFileHeader插件捷键无效
  10. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】下 ~ Net程序员的福利...