一:程序基础
二:数学基础
三:SLAM
四:传统图像处理
五:机器学习以及深度学习
六:参考资料
一:程序基础
考察C++、数据结构
- 多线程的了解
- stl有什么?
- vector扩充方式,size与capacity区别
- 顺序存储结构有哪些?
- 左值引用与右值引用
- map与unordered map区别
- const与static、const在函数前与函数后区别
- 虚函数与纯虚函数区别,虚函数关键字
- 函数memcpy 、memset的实现,手撕代码
- 一行代码求平方根
- 各种排序时间空间复杂度(快排,归并,桶排,堆排),手撕代码
- 二叉树排序、堆排序、希尔排序、桶排序时间复杂度(重要!因此重复)
- 最长公共子串、最长公共子序列,手撕代码
- 树的DFS与BFS、树的遍历,手撕代码
- 对于n个实例的k维数据,建立kd tree的时间复杂度
- 哈夫曼树带权路径长度、哈夫曼编码
- 长度为n的list,删除、插入与随机访问的计算复杂度
- 字符串子串数目
- 三维空间最近邻搜索的常用数据结构(八叉树、kd tree)
- HashMap和Hashtable的比较
- 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
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不算的话…
二:数学基础
考察概率论、线性代数、矩阵分析、数值优化
- 一层楼共有n级台阶,一次可以上至少一级但不超过m级台阶,求有多少种不同的上楼方案数。由于结果可能很大,你只需要输出结果对10007取模的值即可
- 拟合二维平面中的带噪声直线,其中有不超过20%的样本点远离了直线,另外80%的样本点可能有高斯噪声的偏移,要求输出为ax+by+c=0的形式,其中a>0且a^2+b^2=1
- 切比雪夫不等式、协方差与相关系数、各种分布、多元高斯分布
- 线性回归推导回归系数(y=kx,y=kx+b)
- 甲乙两人约好在某地碰面,时间段为10点到11点。若甲先到,最多会等待10分钟,10分钟内乙未出现则离开;若乙先到,最多会等待15分钟,15分钟内甲未出现则离开,请问两人见面的概率是多少?
- ABCDE5个人互相传球,由A开始第一次传球,经5次传球最后回到A的手上,其中A与B不会互相传球,C只会传给D,E不会传给C,共有多少种传球方法?
- MLE、MAP和贝叶斯估计
- MLE,MAP,EM 和 point estimation 之间的关系是怎样的?
- 如何求解Ax=b (非迭代Cholesky分解、QR分解,迭代)
- 最小二乘封闭解与迭代解的取舍
- 梯度下降法、牛顿法、GN、LM,推导、优缺点
- 如何判断点在多边形内
- 一阶、二阶优化,Jacobian、hessian矩阵
- 1000个数的阶乘,求有多少个0
- 递推法求数学期望,反证法,数学归纳法等
三:SLAM
这部分除了3D视觉基础会结合个人研究方向问,对于泛泛的问题尽量发散
- landmark参数化方式、对比,逆深度参数化;点线面因子图优化
- 滤波+回环(Trifo-VIO)
- outlier+鲁棒核、RANSAC
- EKF更新方程
- AR系统如何实现
- 介绍下VO
- Gridmap(网格标0、1)给定起点和终点,求最优路径(A*或其他路径规划算法)
- 相似变换、仿射变换、射影变换的区别
- E和F的区别,自由度计算
- 单应矩阵H的求取
- PNP算法、ICP算法(二维码、手眼标定)
- 闭环检测常用方法(orb、lsd、深度学习)
- 单目的初始化(拓展:双目,RGBD,VIO的初始化及传感器标定),其他:
- https://github.com/frobelbest/GSLAM
- 简述一下Bundle Adjustment的过程
- SVO、LSD中深度滤波器原理
- 说一说某个SLAM框架的工作原理(svo、orb、lsd)及其优缺点,如何改进?
- RANSAC的框架
- 位姿不同表示间的相互转化、旋转矩阵特征值和特征向量物理意义
- 真实世界到相机照片的变换可看成射影变换
- 直接法与特征点法的优缺点对比
- 常见滤波方法的对比(KF、EKF、IEKF、UKF、PF)
- 双目测距范围Z=fb/d。问题: 640*480,fov=90°,zmax=10m,最小视差为2,求使zmax稳定的最小基线长度(6.25cm)
- 特征点法与直接法误差模型、Jacobian推导
- 光流的假设、仿射变换、4种方法,svo采取的方法,优势何在
- MSCKF与ROVIO、MSCKF与预积分
- 边缘化方式原理
- grid_map
-
计算机视觉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
四:传统图像处理
- 图像平滑算子、边缘检测算子
- 图像去噪滤波算法(高斯、均值、双边、Guide filter)
- 三个度量patch相似度的方法(SSD、SAD、NCC)
- 二进制描述子
- 计算描述子距离函数
- 描述一下SIFT或者SURF特征检测、匹配
- SIFT的4个不变性
- 特征点、描述子ORB、SIFT、SURF、BRIEF等等 。geometric invariance:平移,旋转,尺度……; photometric invariance:亮度,曝光……
- Mat实现、Mat类指针引用复制函数
- 颜色直方图统计,手撕代码
- 形态学操作,手撕代码
- 积分图,手撕代码
- 连通区域算法,给二值图,求出最大联通区域(用深度优先和广度优先算法,手撕代码)
- Mser、Swt检测
- 图像分割(Grabcut)
- 目标跟踪(相关滤波KCF)
五:机器学习以及深度学习
这部分会很随意,根据项目
- IOU、NMS,手撕代码
- Kmeans伪代码
- SVM的优缺点
- 随机森林的训练过程
- 优化方法SGD、Batch GD、Adadelta、Momentum对超参数的敏感程度
- CNN中feature map维度计算、图中每一个特征点在原图的感受野大小
- Segmatch
- 目标分割、目标检测(one stage、two stage),YOLO三代的发展,小目标检测
- 模型压缩与加速 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