自动化专业如何转SLAM或机器学习岗?
由于不方便放链接,更好的阅读体验请查看:自动化专业如何转SLAM或机器学习岗?
本文来自知乎上的同名问题,原文链接:
https://www.zhihu.com/question/266685012/answer/336327001
题主是北京某985理工类高校自动化专业本硕(硕士专业是控制工程),刚刚毕业半年左右,第一份工作是在一家创业型机器人小公司做控制工程师。工作内容很杂,主要是一些stm32开发和信号处理之类的工作,这家公司管理混乱,而且公司缺乏技术上经验丰富的老员工,作为一个刚刚毕业的新人,感觉完全学不到什么东西,成长性不足,而且分配的工作也不是自己兴趣所在,于是我工作了半年不到就辞职了,打算趁着过年准备一下换一个靠谱点的工作。主要想转到slam方向和机器学习方向。
我自己本身的情况是这样的:
项目经历:
没有实习经历,自己在实验室的项目基本上和slam和机器学习没关系,主要是调PID什么的,纯工程任务。本科毕设是用支持向量机做信号识别,但是本科毕设非常简单。
个人知识储备:
1、机器学习这块我是一直从本科就在学,吴恩达的课看过前面一半,《统计学习方法》全部看过一遍,里面的算法也大都推过一遍。周志华的西瓜书也看过。但是没有实际的项目经历(不知道泰坦尼克幸存者预测和TensorFlow手写数字识别算不算)。
2、slam这一块我是自学的《视觉slam十四讲》一书,原理都看懂了,书上的代码的大约70%都自己亲手敲过一遍,orb-slam2论文看过,代码细细读过。
请slam和机器学习行业的职场老司机解答一下我的问题:
我这样没有实习经历和项目支撑的情况下,转去slam或机器学习岗位,是否能够被公司接受呢?或者说我要达到什么样的程度,才能被相关公司接受?会有公司愿意接受从0培养新人吗?(我算从0.5吧)
职场老司机可否给一些转行的可操作的建议呢?
本文对几个优秀的回答进行了整理,解释权归答主所有。如有侵权,请联系删除
以下观点并不代表计算机视觉life观点,仅作为参考。
半闲居士:
在下也是自动化系毕业,好像并不存在转行一说,自动化搞控制、搞机器学习或者slam都很正常。
机器学习应用范围宽,门槛低,目前学习资料很丰富,学起来并不费劲。相比来说slam资料少很多,书籍还都是大部头的书,学起来还是挺花时间的。slam背后牵扯到的数学知识比较广,能吃透并不容易(deep learning除了梯度下降之外还有别的数学吗)。
slam岗位目前看来还是不太招的到人的阶段。虽然有人觉得Slam在理论上已经解决了,然而现实是:
大部分人从零开始写一个slam程序,多半写不到现在开源方案的水平;
开源方案不满足需求的情况下,大部分也不会改(对方案的了解并不深入);
slam应用主要在自动驾驶、机器人、AR/VR上。国内自动驾驶近年很活跃,BAT和各车厂都有布局,创业公司有名一点的都可以数出30多家。机器人的话,园区物流需求也比较明显,京东、菜鸟以及许多创业公司都在做,ARVR不太好说,内容和生态能不能起来还是个问题。在你有硕士学位情况下,应该不难找到对应岗位。如果你自己能够写出完整一套slam,或者对某个开源方案有很深入的理解(看的懂,改的动),多数公司都应该会要你(据我了解许多公司里的人员对slam了解也是这个深度)。如果你的理论基础再扎实一些就更好。
作为建议,你可以尝试自己写个简单的slam project,在kitti,euroc等数据集上与开源方案对比测试后,把结果放到简历里,会让你找到合适岗位的几率增加不少。
Pickles Husky:
SLAM方向的博士生,最近也在找工作,简单说两句。
首先澄清一点,SLAM和机器学习完全不是一个量级的领域。机器学习对于很多公司和业务都是非常基础的工具,而且这一趋势越来越明显,以后非常多的岗位都需要掌握机器学习的技术。机器学习跟很多领域都有交叉,比如现在在SLAM中应用机器学习的地方也越来越多。不客气的说,掌握机器学习和数据处理技能的重要性,等同于掌握领域内的重要编程语言,比如C++。
而SLAM的应用面窄的多。SLAM的主要需求现在在机器人、自动驾驶和ARVR领域,如果SLAM是你的focus的话,你的就业面仅限这些行业。
而且说的不客气一点,就算在以上这些领域,SLAM也不是驱动这些应用的最核心技术,SLAM仅仅作为一个提供定位与建图的子模块而已。当前很多应用中的SLAM问题尚未完全解决好,大家在SLAM上花很多精力解决问题;而一旦SLAM问题得到比较好的解决,SLAM将只是系统中提供定位以及建图的工具而已,大家的精力将更多的放在更重要的问题上,比如自动驾驶中的perception、semantic information以及behavior prediction问题、机器人领域中的manipulation问题,等等。虽然我自己是做SLAM的,但是不负责任预测SLAM领域的热度很难长时间持续下去,至少以十年量级来看以后衰落是必然的。而机器学习与数据科学现在的机会以及未来的潜力都是很难限量的。
讨论完SLAM这个行业,再来看一下题主的背景。SLAM技能掌握上的特点与机器学习有点像,就是这个领域显性门槛比较低,但是隐形门槛比较高。down一些opensource的code下来大家都可以跑比较好的demo,就像机器学习里面大家顺着tutorial去跑mnist的example非常简单一样。但是opensource的东西没有应用背景,在真实的应用场景下出现一定比例、甚至大面积不work是非常常见的。当你真正到了企业里面,企业需要你做能够在应用场景下稳定工作的SLAM模块,这时候无论是自己从零写,还是改opensource,你都需要有很好的对SLAM原理及系统的理解,来调整系统去处理一些fail的cases。能够为企业处理这样的问题,一两年的实际项目经验加上相当量的阅读(经典的大部头比如MVG和paper,至少是传统的paper)是必须的。
我非常不看好题主在家里自行修炼。家里能做的SLAM项目一般都没有业界背景(这一点比机器学习条件更恶劣,机器学习起码存在kaggle这样“接近于”业界的项目可以做,SLAM除了kitti外别的和业界完全不沾边),而业界非常看重实际相关的项目背景。而且企业从零培养新人的意愿非常低,首先公司招你就是希望你有实际产出,而不是花钱培养你;其次如之前所说SLAM方向培养时间还是偏长的。
如果题主执意要走以SLAM为核心的技能路线,有两条可能的路题主可以考虑:1. 读相关方向的硕士后者博士,毕竟研究生招零基础学生的概率远高于企业。2. 走开发线路,需要题主有很强的C++背景(SLAM开发中C++目前是绝对主流),然后以软件开发的身份进入相关公司SLAM的团队,在有经验的人指导下进行SLAM的软件开发,这是我能想到的能在企业里面学习SLAM的唯一渠道吧。。。
CLEMENT HUANG:
我司正在找一名自动化背景, 愿意学习SLAM,编程能力强的工程师。坐标上海。所以看到这个问题, 忍不住来回答几句。
先介绍本人, 自动化专业本硕,学校都是985,在国企呆过三年, 外企12年,创业2年半。所以对于控制专业的学生的困惑应该是很有切身的体会的。控制专业的学生学的东西很多,但是到了工作中总有一种有力使不出来的感觉,关键是自动控制的应用是太广泛了, 运动控制, 拖动, 过程控制, 微机原理,DSP或者算是Soc(System on Chip), 电力电子, 各种编程语言,软件工程,到了研究生还要学数字信号处理, 各种优化控制算法, 甚至统筹学, 包括最近火起来的机器人, SLAM, 人工智能, 博弈论。你说一个在学校学校的学生,或者刚毕业三年的新人到哪里摸得到门,行业里的随便一个小障碍就可以阻挡住一个信心满满的年青人,更别说如果单拿出一项武器来, 我们还干不过别的专业。比如电力电子功率电路, 肯定干不过学电力系统的, 软件干不过计算机的,算法没应用数学的强, 搞通信和通信工程的也有差距。即使是电机控制, 要知道高校也有专门的电机系。控制专业的学生可能学了一年的电力拖动没见过真正的电机,更分不清直流,交流, 直流无刷, 交流永磁,交流同步。然我见过无数自动化的大牛,后来在选择的方向(非自动化)上都干成了最优秀,那是在开始的三年甚至整个职业生涯花了更多的时间, 精力,伤了无数的脑细胞才取得的成就。
回到正题, 我能给的建议是, 找到一个适合自己的方向和平台, 保持旺盛的学习欲望,扎下来干个三年,短期的职业空窗期是可以接受的,但超过半年以上,基本上很难得到面试机会,公司评估一个这样的候选人风险太高。并且你在家里学习和在工作中学习完全是两回事, 读了多少书不代表你已经入了行。
不要给自己太窄的定位, 真正研究算法的人在一个公司里是少之又少的, 算法需要自己去用代码实现吧。要会测试吧,要能理解底层给你的接口吧。还要懂一些行业背景应用吧, 我只能说学习才刚刚开始。
刘畅:
知乎小透明首答,想借贵宝地写下给新进入SLAM 领域或者犹豫是否进入SLAM 领域的在读研究生(注意,是研究生,为什么?因为其实研究生做SLAM 时间还是挺紧的)一些忠告:
1.能不碰实体机器人就不碰实体机器人
2.找好部分开始做
因为SLAM 范围太广,涉及内容也很深,学校又是一个要求创新点的地方,所以在读完十四讲(已被圈内封为SLAM 圣经,感谢高灯塔)之后,跑完全书的大部分代码的时候,不要说,啊~好兴奋~我已经全部掌握SLAM 啦~而是冷静下来,仔细想一想,我想研究哪部分,是基于多视图几何的前端?还是对优化问题比较感兴趣,想从概率机器人和凸优化两本书入手?又或者是我想用机器学习做做回环?还是说我要摒弃现有的一套方案直接用深度学习来个端对端的VO(这个已经有了,一个比较出名的大学做的,但是想做深入的研究应该也是可以的吧),带着问题做研究,把问题抽象。如果你只是要优化下定位精度,真的不用非要找个实体机器人,学好使用数据集测试自己的方案,将更多的精力放在C++上和优化的方法上(尤其是对于答主这种本来是机械的,编程也就是C++ primer 第一章的水平~).今天先答这些吧,太晚了,以后有时间接着答。
slamer:
本人恰好也是自动化,刚毕业就进入一家机器人公司,做定位制图相关工作,机器学习稍微了解,主要说说slam。以上背景
slam方向是工程与科研相结合学科,在有很好的数学基础前提下也需要很强的工程(尤其是c++)能力。如果题主想从事slam方向,首先可以先了解目前比较流行的slam解决方案,阅读相关开源项目,比如激光slam中gmapping、cartographer,开源项目不仅能让你对slam有一个宏观的了解,也能够学习好的代码风格和代码技巧。其次,学习相关理论知识,像非线性最小二乘法、卡尔曼滤波、粒子滤波、数值优化、自动求导等,有了这些基础,slam入门才刚刚开始。如果想要进阶,尝试结合自己学到的理论知识,写一个slam,这个时候对这些理论知识会有比较深刻的认识,写工程的同时,你可能会发现有些书本中学不到的东西,比如调参,掌握调参技巧,好的参数就像整容手术,能让机器人很好的work,后面要跟紧时代步伐,多阅读slam相关paper。最后做slam不要急躁,在slam工程中会有很多小问题,保持好心态,祝你好运。
欢迎关注公众号:计算机视觉life,一起探索计算机视觉新世界~早就是优势,学习切忌单打独斗,这里有教程资料、练习作业、答疑解惑等,优质学习圈帮你少走弯路,快速入门!
自动化专业如何转SLAM或机器学习岗?的更多相关文章
- 如何准备算法工程师面试,斩获一线互联网公司机器学习岗offer?
原文:https://zhuanlan.zhihu.com/p/76827460?utm_source=wechat_session&utm_medium=social&utm_oi= ...
- Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘
Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...
- [SLAM] 01 "Simultaneous Localization and Mapping" basic knowledge
发信人: leecty (Terry), 信区: ParttimeJobPost标 题: 创业公司招SLAM 算法工程师发信站: 水木社区 (Thu Jun 16 19:18:24 2016), 站内 ...
- [SLAM] 01. "Simultaneous Localization and Mapping"
本篇带你认识SLAM,形成客观的认识和体系 一.通过行业招聘初步了解SLAM 发信人: leecty (Terry), 信区: ParttimeJobPost标 题: 创业公司招SLAM 算法工程师发 ...
- 如何用Python做自动化特征工程
机器学习的模型训练越来越自动化,但特征工程还是一个漫长的手动过程,依赖于专业的领域知识,直觉和数据处理.而特征选取恰恰是机器学习重要的先期步骤,虽然不如模型训练那样能产生直接可用的结果.本文作者将使用 ...
- 干货 | NLP算法岗大厂面试经验与路线图分享
最近有好多小伙伴要面经(还有个要买简历的是什么鬼),然鹅真的没有整理面经呀,真的木有时间(。 ́︿ ̀。).不过话说回来,面经有多大用呢?最起码对于NLP岗位的面试来说,作者发现根本不是面经中说的样子 ...
- Python爬取CSDN博客文章
0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...
- 经验分享 | 如何拿到自己满意的offer?
本文阅读时间约16分钟 最近两年,人工智能(AI)就像一个点石成金的神器,所有的行业,创业公司,或是求职,只要沾着这个词,多少有点脚踩五彩祥云的感觉,故事来了,融资来了,高薪来了. 于是,越来越多的人 ...
- 算法工程师:双非渣硕是如何获得百度、京东双SP
本人本科硕士皆双非,和牛客大佬们没得比,目前拿到的还可以的offer就是百度SP和京东SP,都是做的推荐算法,其他的不说了. 先说一下个人经历吧,学校比较水,实验室没有项目,实习经历:腾讯实习+滴滴实 ...
随机推荐
- git的使用(一)
git —version 展示git的版本 tanya ~$ git --version git version 2.22.0 最小配置 git config —global user.na ...
- golang 结合实例更好的理解参数传递和指针
关于参数传递 其实go的参数传递,核心就是一句话:go里所有参数传递都是值传递,既把参数复制一份放到函数里去用. go的函数传参,不管参数是什么类型,都会复制一份,然后新的参数在函数内部被使用. 不像 ...
- js动态添加<tr><td>
<form id="addNewsFormData" name="addNewsFormData" isCheck="true" ac ...
- Security Guards (Gym - 101954B)( bfs + 打表 )
题意及思路 题目主要是讲先给出所有guard的位置,再给出所有incidents的位置,求出guard到达每个incident处最小的steps,其中guard每次可以向四周8个方向移动. 思路:对于 ...
- ZooKeeper实现生产-消费者队列
[欢迎关注公众号:程序猿讲故事 (codestory),及时接收最新文章] 生产-消费者队列,用于多节点的分布式数据结构,生产和消费数据.生产者创建一个数据对象,并放到队列中:消费者从队列中取出一个数 ...
- R 包 rgl 安装失败, 报错 X11 not found but required, configure aborted 及解决方法
R 包 rgl 安装失败, X11 not found but required, configure aborted * installing *source* package ‘rgl’ ... ...
- SpringBoot整合Dubbo配合ZooKeeper注册中心
安装ZooKeeper 我这里使用zookeeper作为服务注册中心,版本3.4.9,下载地址: http://mirrors.hust.edu.cn/apache/zookeeper/zookeep ...
- 使用MTA HTML5统计API来分析数据
使用MTA HTML5统计API来分析数据 在开发个人博客的时候,用到了腾讯移动分析(MTA),相比其他数据统计平台来说我喜欢她的简洁高效,易上手,同时文档也比较全面,提供了数据接口供用户调用. 在看 ...
- [AI] 论文笔记 - CVPR2018 Super SloMo: High Quality Estimation of Multiple Intermediate Frames for Video Interpolation
写在前面 原始视频(30fps) 补帧后的视频(240fps) 本文是博主在做实验的过程中使用到的方法,刚好也做为了本科毕设的翻译文章,现在把它搬运到博客上来,因为觉得这篇文章的思路真的不错. 这篇文 ...
- mybatis 源码分析(五)Interceptor 详解
本篇博客将主要讲解 mybatis 插件的主要流程,其中主要包括动态代理和责任链的使用: 一.mybatis 拦截器主体结构 在编写 mybatis 插件的时候,首先要实现 Interceptor 接 ...