SLAM求职经验贴收藏

转载知乎https://zhuanlan.zhihu.com/p/28565563

大家知道,近几年 SLAM 开源算法越来越多,市面上也已经有了一些初步的应用。每当出现新的应用场景,就有着相应人才的需求,也就有了一些新的就业机会。如果同学们和我方向相近,也希望从事类似的岗位。我觉得读完下面的这些,你会有所收获的。

前期准备:

-----------------------------------------------

一、确立求职意向

研二下的寒假期间还是比较空闲的。在这个期间,可以关注一些微信公众号、多刷刷知乎、看一些资讯类网站,并结合自己的学习方向,初步确定想要从事的领域和工作。这一点是很重要的,不至于在后期盲目投简历,造成时间经历的浪费。就我而言,由于本科参加了一些机器人类的比赛,研究生研究视觉这一块,初步将方向定为:机器人、计算机视觉、无人车和 AR/VR。在后面投简历的时候也是投了对口方向的,并没有计算机算法、测试等岗位。

二、制作简历

寒假返校,这时候该制作第一份简历了。简历的排版还是比较讲究的,简介大方、突出重点,最重要的是要将参与项目中核心的工作清晰的展示出来。如果项目方便展示,可以截图或拍照保存下来,在投简历的时候可以附上作品

三、参加实习

很多公司还是比较看中实习经历的,而且有的公司可以实习转正。所以如果时间以及各方面条件允许的话,参加实习是一个不错的选择。大部分公司也是3、4月开始招实习生的,后面也陆陆续续会有。实习时间一般是2~3个月,尽量在秋招之前实习。实习的信息可以在自己学校的论坛和微信公众号“校招日历”中查看,关于实习就不细说了,因为我没有参加。

四、巩固知识与技能

在一大波校招笔试面试来临前,最重要的还是得增加自身的竞争力,学习以及巩固与知识。这里将其分为两类:计算机基础知识与技能,专业知识与技能。

1. 计算机基础知识与技能

计算机基础知识与技能包括:

1) 编程语言;2) 数据结构和算法;3) 操作系统;4) 网络编程;5) 数据库。

这个排序按重要程度排下来的,其中前两个尤为总要,至于操作系统、网络和数据库仅在笔试中会涉及,面试的时候一般不会问。在计算机视觉中,绝大部分的代码还是基于 c/c++ 实现的,所以这里主要强调 c/c++,当然如果你会 python 之类的脚本语言也是极好的。

就前面两点推荐一些相关书籍:

  • 语言篇:《C++ Primer 第5版》,《Effective C++》(https://www.zhihu.com/question/20410487这里有个详细的五阶学习计划)
  • 数据结构与算法篇:《数据结构(C++ 语言版)》,《算法(第4版)》,《STL 源码剖析》(https://www.zhihu.com/question/34390525见罗必成同学的回答)
  • 实战篇:《剑指 offer》、《编程之美》、《编程珠玑》

在本次秋招中,c++11 问的比较少,不过个人觉得还是很重要的,特别是多线程这一块,推荐看看《C++ Concurrency in Action》以及《Effective Modern C++》。除了看书,当然还要刷题,个人比较推荐 leetcode 和牛客网。时间来不及的可以先刷刷这个帖子里(http://www.nowcoder.com/discuss/19305?type=0&order=1&pos=14&page=1)的题目以及牛客网中的历年题。

2. 专业知识与技能

专业知识与技能涉及的就比较多了,包括高等数学、线性代数、概率论、最优化、计算机视觉等,以及需要熟练掌握相关的函数库和工具。SLAM 的框架基本都差不多,前端更倾向于计算机视觉、通过图像的信息来估计帧间的位姿变化;后端更数学一些,通过给定观测来估计最优状态。首先推荐 Joan Sola 的《Course on SLAM》,前端后端都讲了一些,如果对其中某一部分有问题可以再分类别深入学习。当然了,高博撰写的《视觉SLAM 十四讲》,首推的入门材料。

3.视觉学习

视觉方面,我觉得CSE486是一个比较好入门的材料,在湘厦人的博客中有部分中文翻译(http://www.cnblogs.com/gemstone/category/409734.html)。多视图几何则是进阶教材,配合计算机视觉中的数学方法以及Daniel Cremers的MVG课程视频一起学习,效果会更好。An Invitation to 3-D Vision没看过,但小伙伴觉得写得比多视图几何要易懂一些。

4. 数学基础

数学方面,大学应该教了很多相关的知识,至少在我们本科就有微积分线性代数概率论之类的,不过在SLAM又显得捉襟见肘,还是需要适当地补充一些。

Tim.Barfoot 的状态估计绝对是很好的书,应该全本通读。至于后端中的非线性优化,Methods fornonlinear least squares problems 是一篇比较短的介绍文章,深入的可以看看 NumericalOptimization。除此之外,线性代数、控制理论相关的就不推荐了,具体可以参考YY硕的回答。(https://zhuanlan.zhihu.com/p/22266788)

  • 数学:Numberical Linear Algebra(ceres slover推荐书籍http://ceres-solver.org/faqs.html)、Numerical Optimization
  • SLAM:Course on SLAM(Joan Sola关于Graph-SLAM的教程)、

State Estimation For Robotics(Tim.Barfoot)、概率机器人

  • 计算机视觉:An Invitation to 3-D Vision,计算机视觉中的多视图几何,

计算机视觉中的数学方法(更多参考:https://www.zhihu.com/question/28813777)

  • 实战篇:OpenCV2计算机视觉编程手册、深入理解OpenCV:实用计算机视觉项

5. 编程练习

在学习以上的书籍的过程中,最重要的还是要练练手写写代码。

  • Eigen、OpenCV、PCL、ROS这些基础的工具需要掌握.OpenCV推荐2本比较practical的书。
  • 后端优化的库g2o、GTSAM、Ceres solver可以先选一个开始学,工程上推荐用g2o,大家用的比较多,不过注释很少需要一定的功力才能看懂。
  • GTSAM代码写得要好读一些,而且具有优秀的编程规范,十分适合学习,GTSAM的doc目录下也有很多写得很好的文档,相比与其他两个库,其 iSAM 求解器是一大亮点。
  • Ceres 是谷歌出的优化库,代码注释十分良心,配合一些最优化的书学习最适合不过了。同时注意多写博客分享自己的心得体会,这个在招聘时也是加分项。
  • 最后对于SLAM这一块,还需要读综述以及跑跑Demo,如ORBSLAM、SVO、LSD-SLAM 等。

以上列出的这几个开源SLAM算法目前在网上已经有了很完善的解读,在阅读的过程中即可以疏通整个流程,又可以看到计算机视觉和数学的具体应用,对今后自己改进以及实现一个SLAM算法是非常有帮助的。

这里再推荐一下我和吴博一起注释的ORBSLAM (http://git.oschina.net/paopaoslam/ORB-SLAM2)。到了这里,后面的路就要靠自己探索了,相信读者也会有自己的想法。

 

秋招:

6月份之后很多公司开始内推了,多与学长学姐联系,因为大部分内推可以省掉线上笔试,直接进入面试环节。正式校招一般8月底开始,到10月底会陆续结束。秋招时,信息渠道很重要,宣讲会、论坛、学校的就业网、同学等等都不能错过,这里推荐微信公众号“校招日历”,以及校园招(http://xiaoyuanzhao.com)。

这一时期最重要的是完善简历,将简历中设计到的核心工作从头到尾再过一遍,主要设计思路、流程都要烂熟于心。每次投简历之前要慎重考虑,找准想要的职位投递。每经历一次笔试或者面试,就要总结一下,看看还有哪些遗漏的知识点再补起来。

我投递的公司并不是很多,这里稍微列举一些面试中常考的题目。大部分问题的答案在前面提到的书中都可以找到。

1.连通区域算法(可以将 图像简化为二值图来考虑

http://blog.csdn.net/icvpr/article/details/10259577)

2. 实现RANSAC的框架(MRPT写得是比较好的,注意每次此迭代后需要更新

迭代次数。见libs/base/src/math/ransac.cpp)

3. Homography和Fundamentalmatrix的性质与区别

4. 简单实现cv::Mat()

5. 简述一下GN、LM等优化方法的区别

6. 推导一下卡尔曼滤波,描述一下粒子滤(http://blog.csdn.net/heyijia0327)

7. 描述一下SIFT或者SURF特征检测,匹配

8. 如何求解Ax=b (非迭代、迭代,其中非迭代的方法可以参考eigen手册,上面 列了一些(http://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html)

9. 简述一下Bundle Adjustment的过程

10. 对熟悉的某一个开源SLAM,简述其流程

HR面我没有特别准备,不过自我介绍、性格缺点、最有成就感的经历、最大的挫折之类、职业规划、为什么选择我们公司等问题,一定要准备到滚瓜烂熟。最后,当你拿到几个offer的准备签约时候,多调研调研情况,参考老师同学的意见以及结合个人情况,做出最后的决定吧。

 

最后预祝大家找到满意的工作!!!

 

--------------- 我是分隔符 -------------

你可能感兴趣的:(Job,Interview,VSLAM)