自动驾驶-机器人-slam-定位面经和面试知识系列10之高频面试题(04)

本文主要是介绍自动驾驶-机器人-slam-定位面经和面试知识系列10之高频面试题(04),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个博客系列会分为C++ STL-面经、常考公式推导和SLAM面经面试题等三个系列进行更新,基本涵盖了自己秋招历程被问过的面试内容(除了实习和学校项目相关的具体细节)。在知乎和牛客也会同步更新,全网同号(lonely-stone或者lonely_stone)。
关于高频面试题和C++ STL面经,每次我会更新10个问题左右,每次更新过多,害怕大家可能看了就只记住其中几个点。(在个人秋招面试过程中,面试到后面,发现除了个人项目和实习经历外,个人所记录的内容基本能涵盖面试官能问到的)
(另外个人才疏学浅,如果所分享知识中出现错误,请大家指出,避免误导其他人)

1. ceres solver之三种求导方式

  • 自动求导AutoDiffCostFunction:
    定义仿函数:仿函数必须是模板函数,因为在ceres内部要用到,
    构造CostFunction:
  • 数值求导NumericDiffCostFunction:
    有时,无法定义自动求导的模板仿函数,比如参数的估计调用了无法控制的库函数或外部函数。 这种情况无法使用自动求导了,数值求导便可以派上用场了。
    数值求导用法类似,先定义仿函数,然后传递给NumericDiffCostFunction,然后去构造问题求解
  • 解析求导:如果使用解析求导的方式,就要自行计算残差和雅克比。

2. 如何推导卡尔曼滤波的卡尔曼增益?状态预测过程中的协方差矩阵怎么计算?

我们要估计的是状态变量,希望估计值和真实值越接近越好。进一步,我们假设这个误差是个正态分布,将原问题转化为误差的协方差矩阵的迹最小。然后,将协方差矩阵表达式推导出来,令其对卡尔曼增益的导数为0,进而将卡尔曼增益求出来。

协方差矩阵的对角线是各个状态的方差,其余变量是状态之间的协方差。

3. 描述卡尔曼滤波(Kalman FIlter)的工作原理,并介绍自己曾经用Kalman Filter做状态估计的场景和遇到的困难

  • 卡尔曼滤波就是在测量结果和经验推测两个都不准确的结论下找到则中的,最有可能接近真实值的过程。卡尔曼滤波的优点不在于它的估计的偏差小多少,而在于它巧妙的融合了观测数据与估计数据,对误差进行闭环管理,将误差限定在一定范围
  • 卡尔曼滤波的流程:五大公式,预测和更新。
  • 场景:VIO与LIO位姿融合,困难主要是调试协方差

4. 哪些手段可以提升重复纹理环境的定位感知能力?

  • 调整SGBM的参数,增大平滑项的权重
  • VO后端增加robust norm,降低feature误匹配带来的误差
  • 对原图进行高斯滤波,降低重复纹理的梯度
  • 对depth增加时域的滤波,降低depth误匹配的影响

5. 如何存储稀疏矩阵?特征值和特征向量?

特征值和特征向量是线性代数中的概念,主要用于描述矩阵的性质。特征值是一个标量,表示矩阵在一定条件下的特殊值;特征向量是一个向量,表示矩阵在特征值处的方向。

稀疏矩阵是指矩阵中非零元素的数量远小于矩阵的总元素数的矩阵。在存储稀疏矩阵时,通常采用稀疏矩阵存储格式,以节省存储空间和提高存取效率。 常用的稀疏矩阵存储格式包括:
压缩行存储(Compressed Row Storage,CRS)格式
压缩列存储(Compressed Column Storage,CCS)格式
关于行(Row-Based)存储格式
关于列(Column-Based)存储格式
关于阶段(Level-Based)存储格式

6. 边缘化的意义

vins中,维护了一个窗口,要保证窗口大小就一定要滑窗,而任意划掉帧的话,就会丢失被划掉帧的约束,于是就通过边缘化的方式留下约束,作为下一次的一个先验约束。

另外,VINS中的边缘化和G2O计算过程中的边缘化意义不太相同(处理方法一致)。G2O中对路标点设置边缘化是为了在求解过程中,先消去路标点变量,实现先求相机位姿,然后利用求解出来的相机位姿去计算路标点的过程,目的是为了加速求解,并非真的将路标点给边缘化掉;而VINS中则真正需要边缘化掉窗口中的最老帧或者次新帧。

7. 剔除离散点有哪些方法

  • ORB slam里面采用卡方分布( 卡方=E( pow((O-E),2)/E ),其中O是实际频数,E是期望频数)来剔除离散点。

  • vins中前端采用F基础矩阵(rejectWithF,八点法)剔除;后端是计算重投影误差进行剔除,若大于三个像素就是外点。

8. ORBSLAM单目和双目初始化的区别?

  • 单目初始化:匹配初始帧(连续两帧匹配特征点数为100以上)、位姿计算(在匹配点中使用RANSAC方法抽样选出最佳F和H,得出最佳位姿)、三角测量和地图创建、BA优化。单目初始化是一个对极约束问题。
  • 双目初始化:当前帧的左右目匹配数超过一定量即可(因为本帧位姿为初始0,而双目可以直接测特征点深度)

9. LM算法的流程,以及与高斯牛顿的区别

在这里插入图片描述

这篇关于自动驾驶-机器人-slam-定位面经和面试知识系列10之高频面试题(04)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107619

相关文章

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物