SLAM常见面试题集锦

前言

在备战秋招时,发现SLAM相关的知识点比较庞杂零碎,网上对于常见的面试题也没有全面的集锦可以参考复习,所以参考我找到的一些面试题,自发整理了一些常见的问题及参考答案。参考答案是博主参考大佬的回答及自己的理解给出的,用于自己秋招备战使用的,所以答案都力求准确、简洁。但奈何能力有限,答案仍可能存在错误或者瑕疵,欢迎留言批评指正。

当然这里整理的也不全面,只是略尽绵薄之力,希望对大家有所帮助。另外,希望各位在此基础上进行修改、补充添加,并继续共享给大家,这样慢慢就会有比较全面的复习资料了。

ps:2020年秋招算法岗实在是太难了,相较2019年难的不是一星半点,都说2019年算法岗是“神仙打架”,2020年则是“诸神黄昏”,很多搞算法的都转行做了软开。况且博主还是半路出家,没有相关实习经历(客观原因)、没有项目经验(平台限制),7-8月份提前批折腾了两个月,结果发现毫无进展,最终无奈选择了去*厂搬砖。

最后,给后来者的忠告:想进大厂,项目经验、相关实习经历至关重要!面试官都是通过你的项目、实习内容展开问题,一看没有项目、没有实习,就一票pass了。所以一定要提前找实习,早做打算。

常见面试题
  1. 视觉SLAM框架及组成
    a) SLAM即实时定位建图,按照使用的传感器分为激光SLAM(LOAM、V-LOAM、cartographer、gmapping)与视觉SLAM,其中视觉SLAM又可分为单目SLAM(MonoSLAM、PTAM、DTAM、LSD-SLAM、ORB-SLAM(单目为主)、SVO)、双目SLAM(LIBVISO2、S-PTAM等)、RGBD SLAM(KinectFusion、ElasticFusion、Kintinous、RGBD SLAM2、RTAB SLAM);按照前端方法分为特征点法(稀疏法)、光流法、稀疏直接法、半稠密法、稠密法;按照后端方法分为基于滤波(EKF,UKF,PF原理简介)与基于图优化的方法。
    b) 视觉SLAM由前端(视觉里程计)、后端(位姿优化)、闭环检测、建图图4个部分组成。
    在这里插入图片描述

  2. 如何对匹配好的点做进一步的处理,更好保证匹配效果?或如何滤除外点
    a) 确定匹配的最大距离:先求出所有匹配点最小距离min_dist(Hamming距离吗?),小于2倍的最小距离的点,认为是内点,即30<匹配点距离<=2*min_dist,30是经验值,有些点会特别小。
    b) 基于KNN匹配算法:令k=2,即取最近邻与次近邻距离(.distance(),该距离类似于欧式距离,用于表征匹配质量,距离越小,匹配效果越好)的比值,比值小于一定阈值(如<0.8)则认为是内点;
    c) RANSAC方法。

  3. 对于单目相机,F和H矩阵有何不同,E和F矩阵有何不同,只旋转不平移能不能求F、能不能求H?
    a) F和E描述的都是两帧间的极线约束,只不过坐标系不同:F描述的是同一空间点在不同帧之间像素坐标的几何约束关系,也即极线约束,E描述的是归一化相机坐标之间的几何约束关系,且 , ,其中 ;可知,E只与相机内参有关,F与内外参都有关;而H描述的是一系列共面的3D点到相机成像平面(两个平面间)的投影变换关系;
    b) 三者分解出R,t不同: ,其中(n,d)表示世界坐标系下某个平面的平面方程,因此H只与外参、平面参数有关,而与内参无关。
    c) 在相机只有纯旋转而没有平移时,此时t为0,E、F也将为0,导致无法求解R;此时可以使用单应矩阵H求旋转,但仅无平移t,无法三角化求深度。

  4. 计算H矩阵和F矩阵的时候有什么技巧呢?实际上在问归一化的操作。

  5. ORB-SLAM初始化的时候为什么要同时计算H矩阵和F矩阵?
    a) 当特征点共面或相机间发生了纯旋转时,基础矩阵自由度下降,即发生了所谓的退化,此时如果仍采用八点法估算F矩阵,基础矩阵多出来的自由度将会由噪声决定,对结果造成极大误差。为避免退化现象造成的影响,通常会同时估计基础矩阵F和单应矩阵H,选择重投影误差较小的那个作为最终的运动估计矩阵。

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

  7. 描述BA过程
    a) BA是Bundle Adjustment的简称,又称光束法平差、捆绑调整、集束调整,其本质是一个优化模型,其目的是最小化重投影/光度误差,用于优化相机位姿和路标点。其主要过程为:根据相机的投影模型构造代价函数,利用非线性优化(比如高斯牛顿或L-M(Levenberg-Marquardt)算法)来求最优解,利用Hessian矩阵的稀疏性解增量方程,得到最优的相机位姿和3D特征点。
    b) 局部BA用于优化局部的相机位姿/三维点,提高跟踪的精度;全局BA用于全局过程中的相机位姿/三维点,使相机经过长时间、长距离的移动之后,相机位姿还比较准确。可以直接计算,也可以使用g2o或者Ceres等优化库进行计算。局部BA的约束:相机位姿、三维点,全局BA约束:相机位姿、三维点、回环检测的约束。
    c) Bundle Adjustment :光束指的是三维空间点投影到像平面上的光速,每一个特征点都会反射几束光线,当把相机位姿和特征点位置做出最优的调整后,即使用光束法调整光束以后,这些光线都收束到相机光心。
    在这里插入图片描述

  8. 描述PnP过程
    a) PnP即Perspective-n-Points,它是一种由3D-2D匹配点求解相机位姿的方式,此处的3D点是世界坐标系,2D点是归一化相机坐标(内参已知),对于那些没有3D匹配点的2D-2D匹配点对,求解其3D点仍需采用三角化的方式。
    b) 此时求解出来的位姿均是相机相对世界坐标系的变换关系Twc(Twc是所求目标结果,但一般存储的是Tcw,便于计算)。
    c) 目前遇到的场景主要有两个,其一是求解相机相对于某2维图像/3维物体的位姿;其二就是SLAM算法中估计相机位姿时通常需要PnP给出相机初始位姿。在场景1中,我们通常输入的是物体在世界坐标系下的3D点以及这些3D点在图像上投影的2D点,因此求得的是相机坐标系相对于世界坐标系(Twc)的位姿。在场景2中,通常输入的是上一帧相机坐标系下的3D点(把上一帧视为世界坐标系,本质仍是世界坐标系)和这些3D点在当前帧中的投影得到的2D点,所以它求得的是当前帧相对于上一帧的位姿变换。两种情况本质上是相同的,都是基于已知世界坐标系3D点和对应的归一化相机坐标系2D点求解相机运动的过程。

  9. 描述Gaussian-Newton法、LM法
    a) Gaussian-Newton:是线搜索方法,是将f(x)进行一阶泰勒展开、再平方,最后求解线性方程H△x=b,其中H=J^TJ,b= -JT*f(x_k),G-N法使用JTJ近似Newton法中Hessian矩阵,省略了其H矩阵的计算过程。缺点:H有可能不可逆,导致稳定性差、可能不收敛。

  • 14
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值