SLAM、3D vision笔试面试问题

一:程序基础
二:数学基础
三:SLAM
四:传统图像处理
五:机器学习以及深度学习
六:参考资料

一:程序基础

考察C++、数据结构

  1. 多线程的了解
  2. stl有什么?
  3. vector扩充方式,size与capacity区别
  4. 顺序存储结构有哪些?
  5. 左值引用与右值引用
  6. map与unordered map区别
  7. const与static、const在函数前与函数后区别
  8. 虚函数与纯虚函数区别,虚函数关键字
  9. 函数memcpy 、memset的实现,手撕代码
  10. 一行代码求平方根
  11. 各种排序时间空间复杂度(快排,归并,桶排,堆排),手撕代码
  12. 二叉树排序、堆排序、希尔排序、桶排序时间复杂度(重要!因此重复)
  13. 最长公共子串、最长公共子序列,手撕代码
  14. 树的DFS与BFS、树的遍历,手撕代码
  15. 对于n个实例的k维数据,建立kd tree的时间复杂度
  16. 哈夫曼树带权路径长度、哈夫曼编码
  17. 长度为n的list,删除、插入与随机访问的计算复杂度
  18. 字符串子串数目
  19. 三维空间最近邻搜索的常用数据结构(八叉树、kd tree)
  20. HashMap和Hashtable的比较
  21. 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
10的答案(张同学的同学很给力)。放到10下面11就变成1了=_=,因此放到最后。
import math
print([n for n in range(2,X) if 0 not in [n%d for d in range(2,int(math.sqrt(n))+1)]])
如果import不算的话…

二:数学基础

考察概率论、线性代数、矩阵分析、数值优化

  1. 一层楼共有n级台阶,一次可以上至少一级但不超过m级台阶,求有多少种不同的上楼方案数。由于结果可能很大,你只需要输出结果对10007取模的值即可
  2. 拟合二维平面中的带噪声直线,其中有不超过20%的样本点远离了直线,另外80%的样本点可能有高斯噪声的偏移,要求输出为ax+by+c=0的形式,其中a>0且a^2+b^2=1
  3. 切比雪夫不等式、协方差与相关系数、各种分布、多元高斯分布
  4. 线性回归推导回归系数(y=kx,y=kx+b)
  5. 甲乙两人约好在某地碰面,时间段为10点到11点。若甲先到,最多会等待10分钟,10分钟内乙未出现则离开;若乙先到,最多会等待15分钟,15分钟内甲未出现则离开,请问两人见面的概率是多少?
  6. ABCDE5个人互相传球,由A开始第一次传球,经5次传球最后回到A的手上,其中A与B不会互相传球,C只会传给D,E不会传给C,共有多少种传球方法?
  7. MLE、MAP和贝叶斯估计
  8. MLE,MAP,EM 和 point estimation 之间的关系是怎样的?
  9. 如何求解Ax=b (非迭代Cholesky分解、QR分解,迭代)
  10. 最小二乘封闭解与迭代解的取舍
  11. 梯度下降法、牛顿法、GN、LM,推导、优缺点
  12. 如何判断点在多边形内
  13. 一阶、二阶优化,Jacobian、hessian矩阵
  14. 1000个数的阶乘,求有多少个0
  15. 递推法求数学期望,反证法,数学归纳法等

三:SLAM

这部分除了3D视觉基础会结合个人研究方向问,对于泛泛的问题尽量发散

  1. landmark参数化方式、对比,逆深度参数化;点线面因子图优化
  2. 滤波+回环(Trifo-VIO)
  3. outlier+鲁棒核、RANSAC
  4. EKF更新方程
  5. AR系统如何实现
  6. 介绍下VO
  7. Gridmap(网格标0、1)给定起点和终点,求最优路径(A*或其他路径规划算法)
  8. 相似变换、仿射变换、射影变换的区别
  9. E和F的区别,自由度计算
  10. 单应矩阵H的求取
  11. PNP算法、ICP算法(二维码、手眼标定)
  12. 闭环检测常用方法(orb、lsd、深度学习)
  13. 单目的初始化(拓展:双目,RGBD,VIO的初始化及传感器标定),其他:
  14. https://github.com/frobelbest/GSLAM
  15. 简述一下Bundle Adjustment的过程
  16. SVO、LSD中深度滤波器原理
  17. 说一说某个SLAM框架的工作原理(svo、orb、lsd)及其优缺点,如何改进?
  18. RANSAC的框架
  19. 位姿不同表示间的相互转化、旋转矩阵特征值和特征向量物理意义
  20. 真实世界到相机照片的变换可看成射影变换
  21. 直接法与特征点法的优缺点对比
  22. 常见滤波方法的对比(KF、EKF、IEKF、UKF、PF)
  23. 双目测距范围Z=fb/d。问题: 640*480,fov=90°,zmax=10m,最小视差为2,求使zmax稳定的最小基线长度(6.25cm)
  24. 特征点法与直接法误差模型、Jacobian推导
  25. 光流的假设、仿射变换、4种方法,svo采取的方法,优势何在
  26. MSCKF与ROVIO、MSCKF与预积分
  27. 边缘化方式原理
  28. grid_map 
  29. 计算机视觉life总结的:  5、SLAM后端一般有两种方法:滤波方法和非线性优化方法,这两种方法有什么优缺点?

    6、单目视觉slam中尺寸漂移是怎么产生的?有什么解决办法

    7、直接法估计相机位姿时,并不需要 提取特征点,而是通过优化匹配点的像素值误差(也称光度误差)估计位姿,但也会面临快速运动,光照变化等的挑战,如果让你改善该问题,你会采用哪些方法来提高跟踪质量(精度,速度,鲁棒性等)?

    8、什么是PnP算法?请用你的语言描述一下原理,它一般用在什么场景,解决什么问题?

    。。。

     

    此外,我们平时在SLAM的学习工作中也会遇到一些问题,我总结了一些常见的问题,也一并列在这里,并给出了答案(见知识星球)

     

    9、 我们知道相机的内参有 fx, fy, cx, cy, 畸变参数(只考虑k1, k2),相对世界坐标原点外参T。如果我们现在对相机拍摄的图片进行2倍的下采样,那么这些参数会如何变化?

    10、我们知道双目相机两个相机光心的间距我们 称之为 baseline。如果双目相机baseline比较大,我们称之为wide baseline.现在某代码中使用一个单目相机进行SLAM过程,在特征匹配时资料中提到了wide baseline,请问这个wide baseline怎么理解?

    11、RGB-D相机我们知道可以直接输出 RGB + depth两张图比如我们常见的Kinect 是结构光原理,包括一个彩色相机,一个红外发射器,一个红外接收器。另外,Intel的Realsense系列RGB-D相机也非常常用,比如下面Realsense D415,官网说是Active IR stereo,也就是双目深度相机,这个双目和我们平时说的双目有何不同?为什么有如下四个孔?

    12、我们在阅读文献或者代码中误差相关时,经常可以看到一个概念,叫逆深度(inverse depth)。也就是深度的倒数,那么同学们有没有想过,为什么使用逆深度误差而不是深度误差?

    13、我们在看SLAM相关论文的时候,会遇到一个词“kidnap”, 直译过来就是“绑架”,不了解的同学可能感觉怪怪的。你知道这个“绑架”是什么意思吗?可以用哪些方法解决这样的问题?

    14、我们知道(不知道的话,去查一下十四讲)用g2o和ceres库都能用来进行BA优化,这两者在使用过程中有什么不同?

    15、SLAM中回环检测(闭环检测)的目的是什么?简述一下SLAM中可以使用的回环检测方法?

    16、SLAM中为什么要引入李群李代数?

    17、为什么SLAM中常用LM算法而不是高斯牛顿求解优化问题?

    18、讨论一下SLAM应用场景及落地的问题。大家觉得SLAM技术最适合的应用场景是什么?在哪个场景能够最快技术落地呢?

    19、大家都是SLAM方向的研究者,不管是学生还是已经工作,以后都面临找(换)工作的问题,那么你知道哪些做SLAM技术的公司?

    20、什么是ICP 算法?简述一下算法原理,SLAM中一般什么情况下会使用该算法?

https://github.com/ANYbotics/grid_map

四:传统图像处理

  1. 图像平滑算子、边缘检测算子
  2. 图像去噪滤波算法(高斯、均值、双边、Guide filter)
  3. 三个度量patch相似度的方法(SSD、SAD、NCC)
  4. 二进制描述子
  5. 计算描述子距离函数
  6. 描述一下SIFT或者SURF特征检测、匹配
  7. SIFT的4个不变性
  8. 特征点、描述子ORB、SIFT、SURF、BRIEF等等 。geometric invariance:平移,旋转,尺度……; photometric invariance:亮度,曝光……
  9. Mat实现、Mat类指针引用复制函数
  10. 颜色直方图统计,手撕代码
  11. 形态学操作,手撕代码
  12. 积分图,手撕代码
  13. 连通区域算法,给二值图,求出最大联通区域(用深度优先和广度优先算法,手撕代码)
  14. Mser、Swt检测
  15. 图像分割(Grabcut)
  16. 目标跟踪(相关滤波KCF)

五:机器学习以及深度学习

这部分会很随意,根据项目

  1. IOU、NMS,手撕代码
  2. Kmeans伪代码
  3. SVM的优缺点
  4. 随机森林的训练过程
  5. 优化方法SGD、Batch GD、Adadelta、Momentum对超参数的敏感程度
  6. CNN中feature map维度计算、图中每一个特征点在原图的感受野大小
  7. Segmatch
  8. 目标分割、目标检测(one stage、two stage),YOLO三代的发展,小目标检测
  9. 模型压缩与加速 mobilenet v1、mobilenet v2、shufflenet

https://github.com/memoiry/Awesome-model-compression-and-acceleration

六:参考资料

大疆算法工程师笔试(计算机视觉部分)

https://wenku.baidu.com/view/9aacf48ea21614791611282a.html

网易3D视觉方向

https://www.nowcoder.com/test/10780247/summary

谢晓佳学长“SLAM求职经验帖”

http://paopaorobot.org/bbs/read.php?tid=87&fid=7

http://paopaorobot.org/bbs/read.php?tid=88&fid=7

VO、SLAM、VIO基础论文

VO

rpg.ifi.uzh.ch/visual_o

《VO_Part_I_Scaramuzza》、《VO_Part_II_Scaramuzza》

光流

《Lucas-Kanade 20 Years On: A Unifying Framework》

图优化SLAM

《A Tutorial on Graph-Based SLAM》

《g2o: A General Framework for Graph Optimization》

参数化

《Impact of Landmark Parametrization on Monocular EKF-SLAM with Points and Lines》

边缘化

《Null-Space-based Marginalization》

VIO

《Quaternion kinematics for the error-state Kalman filter》

《Information Sparsification in Visual-Inertial Odometry》

其他常见SLAM、VIO系统相关论文(结合自己研究方向)

综述性质论文

下面第一篇论文总结了如下几点,感觉总结的很好

  • 数据关联
  • 初始化
  • 位姿估计
  • 地图生成
  • 地图维护
  • 失效恢复
  • 回环检测

《Keyframe-based monocular SLAM: design, survey, and future directions》

《Past, Present, and Future of Simultaneous Localization And Mapping: Towards the Robust-Perception Age》

《Visual Place Recognition: A Survey》

《Simultaneous Localization and Mapping: A Survey of Current Trends in Autonomous Driving》

《Visual SLAM and Structure from Motion in Dynamic Environments: A Survey》

《A Benchmark Comparison of Monocular Visual-Inertial Odometry Algorithms for Flying Robots》

《GSLAM: A General SLAM Framework and Benchmark》

https://github.com/zdzhaoyong/GSLAM

《Survey on Computer Vision for UAVs: Current Developments and Trends》

《Semantic mapping for mobile robotics tasks: A survey》

《A Review on Deep Learning Techniques Applied to Semantic Segmentation》

《Deep Learning for Generic Object Detection: A Survey》

轨迹评估算法

https://github.com/MichaelGrupp/evo

https://github.com/raulmur/evaluate_ate_scale

ROVIO

SVO

《A Tutorial on Quantitative Trajectory Evaluation for Visual(-Inertial) Odometry》

VO、SLAM、VIO参考书籍

《SLAM十四讲》、《因子图在SLAM中的应用》

《state estimation for robotics》

《An Invitation to 3D Vision》、《Multi View Geometry》

深度学习参考

《解析卷积神经网络——深度学习实践手册》 lamda.nju.edu.cn/weixs/

《神经网络与深度学习》 nndl.github.io/

Shirley Snow 刘同学总结

https://zhuanlan.zhihu.com/p/42807023

《AI算法工程师手册》

https://zhuanlan.zhihu.com/p/63638229

本文转自 微信公众号:计算机视觉life

你可能感兴趣的:(SLAM工作)