slam技术面试问题(二)

匆匆过客 提交于 2019-11-26 20:53:33

14.特征匹配(稀疏)和稠密匹配区别
1)稀疏匹配可以快速地求解相机的位姿;
2)稠密匹配可以建立完整地图,但是速度慢、效率低,并且像素梯度不明显的地方对运动估计没有什么贡献。

15.EKF与BA的区别
1)EKF只估计当前时刻的机器人位姿,无法纠正历史的机器人位姿;然而BA更加倾向于使用所有的历史数据,因此它利用了更多的信息;
2)EKF在工作点附近用一阶泰勒展开近似整个函数,但是在工作点较远处不一定成立;然而非线性优化每迭代一次,状态发生改变后,重新对新的估计点做泰勒展开,因此在状态变化较大时也能适用;
3)EKF的可扩展性和鲁棒性更强。(多传感器融合)

16.单目、双目、深度相机的对比
1)单目相机具有尺度不确定性;
2)基线距离越大,测量距离越远,可以用于室内和室外;
3)测量范围窄,噪声大,易受日光干扰,主要用于室内。

17.常用的边缘检测算子和优缺点
边缘检测一般分为三步,分别是滤波、增强、检测。基本原理都是用高斯滤波器进行去噪,之后在用卷积内核寻找像素梯度。常用有三种算子:canny算子,sobel算子,laplacian算子。
1)sobel算子是一阶导数算子,对噪声具有平滑作用,抗噪声能力强,计算量较大,但定位精度不高,得到的边缘比较粗,适用于精度要求不高的场合。
2)canny算子抗噪能力强,它使用两种不同的阈值分别检测强边缘和弱边缘。优点是能够检测到真正的弱边缘。
3)laplacian算子是二阶微分算子,容易受噪声干扰,不能检测边缘的方向,一般用于判断明暗变化。

18.为什么SLAM中常用LM优化?
G-N中的H矩阵可能为奇异矩阵或者病态矩阵,导致算法不收敛,而且当步长较大时,也无法保证收敛性。所以采用LM求解增量方程,但是它的收敛速度可能较慢。

19.介绍RANSAC算法
RANSAC算法的优点是能鲁棒的估计模型参数。例如,他能从包含大量局外点的数据集中估计出高精度的参数。缺点是它计算参数的迭代次数没有上限,如果设置迭代次数的上限,得到的结果可能不是最优的结果,甚至可能得到错误的结果。RANSAC只有一定的概率得到的可信的模型,概率与迭代次数成正比。

20.欧式变换、相似变换、仿射变换、射影变换的区别
a.欧式变换:矩阵的形式是[R t;0 1],有6个自由度,在变换前后,保持不变的性质是长度、夹角、体积;
b.相似变换:矩阵的形式是[sR t;0 1],有7个自由度,在变换前后,保持不变的性质是体积比;
c.仿射变换:矩阵的形式是[A t;0 1],有12个自由度,在变换前后,保持不变的性质是平行性、体积比;
d.射影变换:矩阵的形式是[A t;a^t v],有15个自由度,在变换前后,保持不变的性质是接触平面的相交和相切。

21.ICP推导

22.SLAM的常用概率解法有哪几类?分别有什么优缺点?
主要有卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波、粒子滤波等。
1)卡尔曼滤波计算简单,但是只能用于求解线性高斯系统;
2)扩展卡尔曼滤波可以近似非线性问题,但是雅克比矩阵计算量大并且受到高斯噪声约束;
3)无迹卡尔曼滤波计算精度高,并且不需要计算雅克比矩阵,缺点是受到高斯噪声约束;
4)粒子滤波可以表示比高斯分布更广泛的分布空间,但是计算量大并且有粒子耗散现象。

23.推导一下KF、EKF

24.描述一下粒子滤波算法
粒子滤波是一种贝叶斯估计器的具体实现,它能够处理非线性以及多峰分布的情况,它使用粒子的分布来近似机器人位姿的后验概率。
粒子滤波的过程为:
1)对每个粒子进行状态传播;
2)使用观测模型评估每个粒子的权重,越符合观测值的粒子其权重越大;
3)根据权重对粒子进行重采样,以权重的概率接受每个粒子,并将重采样后每个粒子的权重重新赋值为1/N。

25.特征点提取与匹配(sift、orb)
1)sift
首先对图像进行降采样,得到具有不同分辨率的图像金字塔,再对每一层图像用不同尺度的高斯核进行卷积,从而得到LOG图像金字塔;
然后对LOG图像金字塔的每一层的相邻两幅图像进行差分计算,从而得到DOG图像金字塔;
在DOG图像金字塔中,将每个像素与其同层的8个像素以及上一层的9个像素和下一层的9个像素进行比较,如果该像素的值小于或者大于其周围的27个像素值,则该像素就是要找的极值点;
由于是在高斯差分下得到的极值点,因此需要用二次曲线进行插值得到真正的极值点;
然后通过统计特征点附近8*8的邻域内每个像素的梯度方向,从而得到8个方向中每个方向所对应的像素数量,数量最多的方向即是该特征点的主方向;
最后通过将特征点附近16*16的区域划分为4*4的子区域,统计每个子区域中的像素属于8个方向的数量,从而得到4*4*8=128维的二进制描述子向量。
2)orb
对图像中的某个像素,假定其亮度为Ip,设定一个阈值T;
取该像素周围的半径为3的圆上的16个像素点,如果该圆上有连续N个像素的亮度大于Ip+T或者小于Ip+T,则认为该像素为角点,如果N等于12,则可以通过判断是否第1、5、9、13个像素中连续三个像素的亮度大于Ip+T或者小于Ip+T,如果不是则该像素一定不是角点,从而加速角点检测过程;
为了防止角点扎堆现象,可以用非极大值抑制来选取角点;
由于一张图像中特征点数量是固定的,所以可以选取m个harris响应最大的角点;
通过图像金字塔可以解决尺度不变问题,通过灰度质心法可以计算角点的方向;
orb的描述子是一个二进制向量,按照某种该概率分布在角点附近选取两个像素点p、q,如果p>q,则为1,如果p<q,则为0,选取128对点后就可以得到128维的描述子向量。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!