视觉SLAM | SLAM面试专题

1. 什么是闭环检测

回环检测的意义?

SLAM前端使用相邻帧估计位姿,导致整个SLAM出现累计误差。回环检测能够提供除相邻帧之外的跟多的约束,如0-n帧的位姿变换。通过这些约束进行优化减小累计误差,构建全局一致的轨迹和地图。

常用的方法有哪些?

回环检测的关键是如何高效的检测出相机经过同一个地方这件事,方法如下:
[1] 对任意两幅图像都做特征匹配 ——计算量大
[2] 随机抽取历史数据进行回环检测——抽到回环的概率小,检测效率低
[1]和[2]过于盲目,我们至少希望有一个“哪里可能出现回环”的预测,方法归类如下:
[1] 基于里程计的几何关系:当发现机器人运动到之前某个位置时,检测是否出现回环。
[2] 基于外观:仅根据两幅图像的相似性确定是否出现回环,核心问题是如何计算图像间的相似性。词袋法(Bag of Word)

你用的哪种方法?

词袋法:根据特征点的匹配确定图像的相似性,词袋法加速特征匹配。

有没有创新?

重新生成字典

2. 描述Gauss-Netwon和LM

对于用迭代法求解最优化问题,都涉及到最迭代的步长和方向。高斯牛顿和列文伯格_马夸尔特都是用来确定步长的方法。
高斯牛顿对目标函数做二阶泰勒展开,展开项对增量🔺X求导,令导数为0求出最优的增量得到Xk+1。高斯牛顿存在锯齿现象,LM再GN的基础上添加系数,计算最优的步长。解决了锯齿现象,加快了收敛的速度。

3. ceres库

熟悉Ceres优化库吗?说一下。

4. 滤波方法

描述(扩展)卡尔曼滤波与粒子滤波,你自己在用卡尔曼滤波时遇到什么问题没有?

5. 除了视觉传感,还用过其他传感吗?

比如GPS,激光雷达。。

6. 紧耦合、松耦合

什么是紧耦合、松耦合?优缺点。

6. 你认为室内SLAM与自动驾驶SLAM有什么区别?
7. 地图点的构建方法有哪些?
8. 当前帧新提取的特征点,如何恢复3D点?

像素坐标由内参矩阵得到相机坐标,相机坐标由R|t得到世界坐标

9. 如何对匹配好的点做进一步的处理,更好保证匹配效果 ?

(1)确定匹配最大距离,汉明距离小于最小距离的两倍
(2)使用KNN-matching算法,令K=2。则每个match得到两个最接近的descriptor,然后计算最接近距离和次接近距离之间的比值,当比值大于既定值时,才作为最终match。
(3)RANSAC(使用RANSAC找到最佳单应性矩阵。由于这个函数使用的特征点同时包含正确和错误匹配点,因此计算的单应性矩阵依赖于二次投影的准确性)

10. 单目相机,F和H矩阵有何不同,E和F矩阵有何不同,只旋转不平移能不能求F,只旋转不平移能不能求H

E=t^R
[公式]
H=R-t*nT/d
在相机只有旋转而没有平移的情况,此时t为0,E也将为0,导致无法求解R,这时可以使用单应矩阵H求旋转,但仅有旋转,无法三角化求深度。

11. 描述BA

**BA的本质是一个优化模型,其目的是最小化重投影/光度误差,用于优化相机位姿和世界点。**局部BA用于优化局部的相机位姿,提高跟踪的精确度;全局BA用于全局过程中的相机位姿,使相机经过长时间、长距离的移动之后,相机位姿还比较准确。BA是一个图优化模型,一般选择LM(Levenberg-Marquardt)算法并在此基础上利用BA模型的稀疏性进行计算;可以直接计算,也可以使用g2o或者Ceres等优化库进行计算。
Bundle Adjustment : 从视觉重建中提炼出最优的3D模型和相机参数(内参和外参),好似每一个特征点都会反射几束光线,当把相机位姿和特征点位置做出最优的调整后,这些光线都收束到相机相机光心。也就是根据相机的投影模型构造构造代价函数,利用非线性优化(比如高斯牛顿或列文伯格马夸而尔特)来求最优解,利用雅克比矩阵的稀疏性解增量方程,得到相机位姿和特征点3D位置的最优解。
BA可以分为基于滤波器的BA和基于迭代的BA

12.描述PnP

Perspective-n-Points, PnP(P3P)提供了一种解决方案,它是一种由3D-2D的位姿求解方式,即需要已知匹配的3D点和图像2D点。目前遇到的场景主要有两个,其一是求解相机相对于某2维图像/3维物体的位姿;其二就是SLAM算法中估计相机位姿时通常需要PnP给出相机初始位姿。
在场景1中,我们通常输入的是物体在世界坐标系下的3D点以及这些3D点在图像上投影的2D点,因此求得的是相机坐标系相对于世界坐标系(Twc)的位姿
在场景2中,通常输入的是上一帧中的3D点(在上一帧的相机坐标系下表示的点)和这些3D点在当前帧中的投影得到的2D点,所以它求得的是当前帧相对于上一帧的位姿变换,如图所示:
两种情况本质上是相同的,都是基于已知3D点和对应的图像2D点求解相机运动的过程。

13. 如何处理关键帧

关键帧选取的指标主要有:
(1)跟踪质量(主要根据跟踪过程中搜索到的点数和搜索的点数比例)/共视特征点
(2)距离最近关键帧的距离是否足够远(空间)/运动
(3)距离上一关键帧的帧数是否足够多(时间)

14. 为什么要引入李群李代数

旋转矩阵自身是带有约束的,正交且行列式为1,他们作为优化变量时,会引入额外的约束,时优化变的困难,通过李群李代数的转换关系,把位姿估计变成无约束的优化问题。

15. 什么是极限约束

所谓极线约束就是说同一个点在两幅图像上的映射,已知左图映射点p1,那么右图映射点p2一定在相对于p1的极线上,这样可以减少待匹配的点数量。(画图解释)

16. 单目视觉slam中尺寸漂移是怎么产生的

单目相机根据一张图片无法得出一张图片中物体的实际大小,同理也就无法得出运动的尺度大小,这是产生尺度漂移的根源。而在优化过程中,单目相机使用对极几何中的三角测量原理,而三角测量中,极小的角度误差在累积之后深度不确定都会变得很大,从而无法保证尺度一致性。

17. SLAM中的绑架问题

绑架问题就是重定位,是指机器人在缺少之前位置信息的情况下,如何去确定当前位姿。例如当机器人被安置在一个已经构建好地图的环境中,但是并不知道它在地图中的相对位置,或者在移动过程中,由于传感器的暂时性功能故障或相机的快速移动,都导致机器人先前的位置信息的丢失,在这种情况下如何重新确定自己的位置。

参考blog

[1] SLAM、3D vision求职经历
[2] 2019 最新SLAM、定位、建图求职分享,看完感觉自己就是小菜鸡!
[3] 干货总结 | SLAM 面试常见问题及参考解答
[4] orb_slam2易忘知识点总结,改代码关掉局部BA,全局BA
[5] 2021届找slam传感器融合方向的工作需要达到什么水平?
[6] SLAM十四讲重要公式定理整理(上)
[7] ICRA20中的SLAM论文汇总(二)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值