SLAM网友面经整理
一、大疆
整体来说,大疆面试官的水平还是非常高的。一面项目技术,二面工程,三面价值观、综合能力。
一面(50min)
- 你实习做了些什么?
- 谈了谈自己的项目相关
- ORBSLAM的哪个部分最耗时?后端H矩阵求解的算法复杂度是多少?如何去加速后端求解?
- 如何求解线性方程Ax=b?SVD和QR分解哪个更快?
二面(30min)
- ORBSLAM怎么克服尺度漂移问题?回环原理讲一下,要估计哪些量?
- 做了一道题,嵌入式编程相关,设计位运算。
- 嵌入式方面,DRAM和SRAM的区别,速度差多少?
- 因为项目用了TX2,问到TX2有哪些模块?
- 对大疆产品有什么看法?
三面(30min)
- 介绍自己最自豪的一个项目
- 团队合作中有什么困难?如何去解决?
- 你对未来无人机的畅想,如果进入大疆,你希望无人机做成什么样子?
- 阐述一下对SLAM未来的看法,在大疆有哪些应用?
- 阐述一下个人性格的优缺点?
二、华为
华为的面试体验非常好,面试官都非常nice一面(30min)
- 做了哪些项目,一个一个讲,讲了很多,主要考察项目有没有做过。
- 做了一道编程题,全排列相关。
二面(30min)
- 聊一聊做过的项目,里面遇到了哪些工程问题?基本也是顺着项目问。
- STL中的内存管理相关。
- 做了一道编程题,字符串相关。
三面(30min)
- 做过的最自豪的项目是什么?项目设计架构图?无人机与无人驾驶相比,架构上有什么异同点?
- 你对无人驾驶的未来有什么看法?为什么要选择来华为?
- 一面(50min):元老级员工,上来先一道手撕代码
- 二面(60min):技术面,聊项目,问一些细节。最后是一套试题,SLAM相关
- 三面(50min):部门主管面,还是聊聊项目,聊聊自动驾驶想法
- 1.熟练掌握 SLAM.VIO.三维重建等算法知识;
- 2.掌握多传感器融合算法;
- 3.掌握多视图几何.图优化等相关算法;
- 4.熟悉常见开源 SLAM 框架,例如 ORB-SLAM2.VINS.OKVIS 等;
- 5.熟悉常见开源工具库,例如 ceres.g2o.Eigen.OpenCV 等
三、海康
一面电话面,二面现场面,三面HR一面(30min)
- 做了哪些项目,多传感器融合了解吗?
- 跑过哪些开源算法,是否做过对比,各有什么优劣?
- 对于光照明暗变化、动态场景,视觉SLAM如何去解决?
- 视觉SLAM的行业应用有哪些,阐述一下语义SLAM的未来应用优势与劣势?
二面(50min)
- 做了哪些项目,问得非常细,会抠项目的细节问。
- 你做的项目未来还有什么改进点?
- 项目合作中,你担任什么角色?如何当好负责人?
- 一道编程题,位运算相关。
三面(15min)
- 项目合作细节,如何处理项目成员之间的关系
- 个人有什么比较黑暗的时期,讲一讲
- 未来职业规划
四、图森
一面技术,二面工程,三面还是技术一面(50min)
- 实习做了什么?
- 长廊问题怎么办?
- 为什要选用yolo这个模型?
- 动态SLAM的思路?与基础矩阵分割相比有什么区别?什么是三角剖分?与深度学习方法相比的优势?
- 霍夫变换的原理? 单应矩阵为什么只有8个自由度?
- RANSAC
- ORBSLAM的初始化步骤
- 怎么用H的稀疏性加速?
- 滑动窗口中的边缘化?
- R的性质,李群
二面(60min)
- 纯代码面,手撕两道编程题。记得其中一道与flood fill类似。
- git的基本原理以及相关操作
- 还有一些C++基本知识
三面(60min)
- PnP求解最少需要几个点?(4个,3个求解,1个验证)只有一个点的自由度是多少?两个点呢?
- 二维码恢复相对位置,六个自由度,哪个自由度上对噪声比较敏感?
- 怎么用EKF融合多传感器信息?
- 单目视觉如何测量深度?
- 相机内参K的单位。
- 如何通过光流一致性剔除动态物体?
五、小马智行
非常nice的一个公司,无论是技术能力还是技术氛围,都称得上是一流水平。
一面代码,二面项目+代码,三面项目+代码,四面boss,五面HR。由于面试得比较早,所以具体内容有些记不清了,反正就是写写写写写代码,代码要求真的高。六、地平线
一面项目,二面代码,三面问得很细一面(60min)
- 聊项目
- 光流原理
- 矩阵求逆的复杂度?矩阵分解有哪些方法,复杂度是多少?工程上哪种方法最通用,为什么?
- H和F矩阵的自由度。
- IMU预积分了解吗?
- MLE和MAP的关系。
二面(60min)
- 三道代码题,hashmap,动态规划相关。
- C++11如何有效防止内存泄***r /> - 智能指针,weak_ptr讲一下
- array和数组有什么区别?
- C++如何高效管理动态内存(关于这个问题我真的很迷)
三面(60min)
- 会顺着项目问。
- opencv、eigen、PCL库了解吗?PCL库里bug挺多,你说说有哪些bug。
- ORBSLAM的代码有哪些需要改进的地方?
- BA中,海塞矩阵的求逆有哪些可以加速的方法,除了边缘化和GPU,有哪些数值计算的方式能够加速?
- ceres库的自动求解雅克比的原理?
- ROS中,node属于多进程,如何把两个node放在一个进程中?
弱版旷视,问项目问细节,问几个slam基本问题。感觉答得还行,最后还是一面挂,可能是不够自信吧。
七、Momenta
实习面试,一面项目,二面工程,三面综合,面试官人都非常nice,面试体验极佳。
一面(60min)
- 介绍项目,项目思想,展开讨论
- 选一个最熟悉的开源框架讲讲
- 当你写BA的时候, 如果发现问题,你一般怎么debug
- ORBSLAM还有什么改进的空间 除了回环检测之外,orbslam怎么消除累计误差
二面(40min)
- 问项目中的code
- 讲一下lamda函数
- 虚函数表
- 两道代码题,一道是用类来实现一个计时器。另一道是动态规划题。
- 根据编程中的知识点问一些问题,类的生存周期,类的内存储存在哪?
三面(30min)
- 基本上是顺着项目问
- 未来职业规划
- 对momenta有什么看法?
八、滴滴
自动驾驶部门,总共四面,一面简历面,剩下三面都是代码+项目。一面(60min)
- 聊项目
- roslaunch和rosrun的区别
- 多个有序链表合并成一个有序链表,写代码。
二、三面(90min)
- 项目+代码
- 高精地图的建图步骤有哪些?
四面(60min)
- 如何设计一个视觉+IMU+RTK+Lidar的定位系统?
- 特征点匹配中,如何避免误匹配?
- 后端BA中,如何存在outlier一般怎么解决?
- 如果给你一个不连续函数,如何求导?
- 代码,手写KD-Tree
旷世SLAM
旷视slam岗一面: - 自我介绍
- 项目介绍过程中比较侧重细节,会探讨项目所用方法的优缺点
- 第一个项目:用到了立体视觉算法和卡尔曼滤波 让我分别介绍这两块。
卡尔曼滤波的部分希望我复述具体过程
(面试官希望我直接阐述卡尔曼的步骤。我是知道的但是没有用公式语言。面试体验大概是从这里开始变差的) - 介绍一个研究过的slam模型
- 介绍实习经历。以及一些c++相关问题。
- 非线性优化:介绍一下BA。讲了重投影误差的原理和优化公式。然后问这个公式是如何具体优化的(开始答偏)我说用了scipy.minimize所以没有手动输入雅各比矩阵。
面试官提示说想问的是具体优化方法。我介绍了牛顿法gn法lm法。面试官说还不是 希望我讲一下从雅各比矩阵到优化的过程。
可能是因为懵逼了的原因 面试官换了同类型的其他问题 问了下icp算法。我讲了icp算法步骤。问icp具体的优化方程。讲了第一步求R第二步求T。面试官说还不是 希望我讲一下R怎么来的。我刚刚都讲完具体方程了 就又懵逼了。。。 - 讲一下SVD分解
- 你了解过传统的图像处理算法么?SIFT算子的尺度空间因子怎么设置。
- Coding 数组中第K个最大元素(leetcode215)& 栈的最小数
- 逻辑数学题:一个半径为R的圆,用多少个R/2的圆可以铺满。
- Coding:求根; 先用牛顿法推了迭代公式写了代码;之后问还有其他做法么?就说了二分法的思路。
- 结合自己负责的一个项目,在该项目中是如何安排整个进度以及项目开展中比较难的部分。
- 给一个数组,给一个值s。判断这个数组里是否存在子数组,其和等于s?如果有的话,有几个? N(n)复杂度
- 一枚硬币,抛n次,问正面数大于反面数的概率? n是常数,不是无穷大。这题分奇数偶数讨论。偶数时写出概率的式子。奇数答案是1/2
- 一副扑克牌54张,给3个人发牌,把大小王发到了同一个人的概率
- 已知矩阵高h,宽w,蛇形矩阵。写代码把他画出来。 第二问,给定矩阵内一点y,x 在O(1)时间内给出该点的值。
- 一个数组,为1, 2, 3, ...n ,现在去掉了一个数,剩下n-1个数。求去掉的是哪个数。注意: 不准改变原数组,原数组无序空间复杂度O(1)。 第二问,如果去掉了2个数呢?
- 动态规划题,矩阵m*n,从左上角到右下角,路径和最大。
一个半小时都是挖简历项目,挖细节问细节,问到打不出来为止,举个例子,如何对齐groundtruth轨迹(用手眼标定),手眼标定的方程是什么样的,如何得出这个方程,如何求解这个方程,最少几个点对能求解,如何提高精度。旷视的面试官水平非常高,面试感觉自己啥也不会的那种,酣畅淋漓。最后也成功领取一面挂。
商汤
问了些SLAM基本问题,然后C++数据结构基本问题