D2篇——
目录
3. 给一个二值图,求出最大连通区域(可以用深度优先和广度优先算法,现场手写代码)
7. 说一说某个SLAM的工作原理(orb,lsd,svo,ptam)及其优缺点,如何改进
注: 本篇所涉及的几个问题实际上都不是小问题,我尽量较深入地去阐述,但是在实际面试过程中,你需要用更简短的语言来总结凝练一下。如有不当处,请指正。
1. 视差与深度的关系
即双目相机模型,这一部分较简单,十四讲上的图已经具有了很强的解释性,因此转自《视觉slam十四讲》——
上面的这段话已经做了很好的概括。 注意其中计算视差的时候uR为负数,所以d = uL - uR, 也就是两段偏离相机光心的水平距离之和。公式你可以用 z等于fb除d 这样来记忆。d就是disparity,左减右。
2. 闭环检测常用方法
在D1篇的时候简单列了orbslam和lsdslam的论文翻译以及其闭环检测,在这里我查阅了一些资料,对闭环检测再做较详细的阐述——
闭环检测目前较常见的方法就是基于视觉词袋(或者叫视觉字典)DBoW来构建。如果你看下面这篇关于闭环检测方法的综述文献,你就会发现其实闭环检测方法还是有很多的:
来自2019《机器人》期刊: 《复杂环境下视觉 SLAM 闭环检测方法综述》。 这篇文献对闭环检测讲的很全面了!在知网上可以下载。 先来看对闭环检测的简介:
“闭环检测是指在给定当前观测信息和地图信息时,确认机器人是否回到了地图中已经存在的某一位置.典型的基于视觉的闭环检测系统结构如图 2 所示.图像数据库、地图点的拓扑信息和度量信息、路标点的几何信息一起构成了对地图的描述.拓扑信息是指机器人运动的连续性,相邻的图像代表着地图上邻近的地方;度量信息是指场景之间的相对位置和方向信息;几何信息是指图像特征的 3 维信息及其数据关联.当新的观测信息到来时,先将其转化为对场景的描述,然后和地图信息进行比对,最后通过决策模型来对闭环进行识别.在知道机器人的状态转移方程的情况下,同样可以将其加入到决策模型中,但并不是系统必须的(故在图中用虚线箭头表示).此外,如果闭环识别成功,则对地图信息进行 1 次更新.”
如果你不觉得啰嗦或者没有时间看文献,那么我在这里简述一下:
闭环检测涉及到的三个主要问题是:场景描述、决策模型、性能评价。
- 性能检测:常用的标准就是准确率和召回率
,Tp表示检测出的真闭环,Fp表示检测出的假闭环,FN表示未被检测出的真闭环。 性能好的闭环系统应该兼具高的准确率和召回率,但实际上很难满足,一般用准确率召回率曲线来评价其综合性能。目前大多数闭环检测系统仍然将准确率作为主要的优化指标。
- 决策模型: 指的是如何根据当前场景描述和地图信息识别出闭环。 三种:第一基于拓扑信息和图像信