点击下方卡片,关注「3D视觉工坊」公众号
选择星标,干货第一时间送达
作者:华北何志武等人 | 编辑:3D视觉工坊
「3D视觉从入门到精通」知识星球(点开有惊喜) !星球内新增20多门3D视觉系统课程、入门环境配置教程、多场顶会直播、顶会论文最新解读、3D视觉算法源码、求职招聘等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!
作者:华北何志武等人
连接:https://www.zhihu.com/question/1943625053787883352
本文仅做学术分享,如有侵权,请联系删文。
最近在帮忙朋友推荐slam算法工程师,投递简历的确实不少。但符合要求的相比较2020年左右,却寥寥无几。甚至想招一个,做过slam有一定水平的硕士毕业生都比较困难。我定义一般遇到的slamer大致有三个级别?
能在自己数据上跑通和适配一般的开源算法,熟练了解怎么调参以及参数对性能的影响。
有自己搭起来的一套可用的slam框架,对方方面面的细节一清二楚,并根据当前的环境和数据构建一些约束,实现特定场景的精度的提高。
软硬兼通。能自己根据需求搭一套软硬件多传感器设备,从硬触发同步到内外参标定到建图定位,导航,整套技术栈都有理解。且对建图定位的基本理论一清二楚。
明面上,智驾时代到来后,slam几乎边缘化了,要么做标定,要么做数据标注,要么做仿真。但机器人这边岗位还是不少的,而且slam包含的技术从来也不只是狭义上的同时完成建图与定位,而是从优化到工程的一全套技术栈。
随着机器人对空间理解的需求上升,slam的解pose的重要性确实在逐步降低,但是mapping上还是还可以做很久的。至少现阶段离开桌面,还离不开语义地图。为什么现在大家都不愿意学slam了呢?
Yusheng的回答
是啊,从24年开始感觉就很明显,一方面是学生们在吆喝好难找工作,一方面是企业吆喝找不到想要的人,也跟不少人沟通过,思考过。
一方面是SLAM技术经历了这么多年发展,尤其是近5年开源算法+迅速增多,解决了很多企业从0到1的问题,很多corner case也在逐步解决,可能很多企业都还在用几年前搭好的框架去优化,解决新问题。所以招聘需求也是水涨船高,从会调包,到调参,调策略,到设计全新算法等等。薪资待遇其实也是在涨的,所以坑位越来越少。
另一方面是SLAM论文越来越难发,纵向项目越来越少,学校老师纷纷转向,传统做SLAM的学校/老师现在好多都已经放弃,拥抱AI,拥抱大模型,或者转向好处成果的方向,毕竟老师也有考核压力。
事实上,就说狭义上的SLAM,现在确实是个小众方向了,个人感觉主要集中于机器人,无人机,测绘等方向,可能这些行业加起来可能一年也就需要几百人而已。而且现在对SLAM工程师的要求也是越来越高,比如我司现在GNSS/INS算法+工程师,都要求了解或做过SLAM,而我司真正SLAM岗位,又要求熟悉机器学习/GNSS/INS等技术。
今年秋招已经面了一部分人了,虽然我们是小厂或者中厂,但是光有TRO+(在投/见刊)的已经有三个了,基本上进面人均RAL/IROS/ICRA,不敢想象其它大厂收到的简历会怎样。
最后简单聊聊我个人认为的高水平:
校招:基础知识掌握扎实,有自己突出的亮点且和公司技术路线有共鸣,表达沟通能力佳。
社招:有成功经验,符合公司价值观
收回我的话,今年是真好招,有能力的SLAM候选人太多了,一个个都在劝退SLAM,一个个又猛猛地在学,今年是我见过的校招SLAM 工程师最有实力的一年。
华北何志武的回答
我是今年秋招的应届生,投SLAM岗位,对比楼上Yusheng大佬面试的候选人之人均TRO/ICRA/RAL相比,我零论文,应该算没怎么入门的初学者,但今年也只能硬着头皮投了,课题组就我一个是做这个的,老师也放养,完全没指导,课题组没积累,纯靠自学视觉SLAM14讲/自动驾驶里的SLAM,机器人状态估计,概率机器人,现代控制系统那几本书来的。
不过总的来说我很感谢我们老师让我这么自由,三年一段横向不用做,基本是野蛮生长,人生的最后一个长期暑假。
我有一段机器人初创实习,也就是部署开源算法,提升精度是不可能的。到现在接到的面试寥寥无多,打算十月再去一个智驾公司实习一段,还有个测绘公司,反正十月多秋招也结束了,去陌生城市玩玩。
我和我同门本来都是搞SLAM或者导航的,人家转了JAVA,有后端客户端这些都有成熟度爆高的学习路线,早被人走过无数次,也就是刷leetcode,包装项目,背八股,大厂实习,转正,加上我们有点学历buff,早早拿下让人羡煞的大厂高薪offer结束秋招,于此同时形成对比的是我还在苦苦吃shi。
中高级SLAM工程师有需求,但是初级没岗位,这就是最大问题,而且SLAM入门难度太大了,越学越觉得什么都不会,一开始学习,跑了下fastlio2,就开始看论文,发现自己不懂状态空间理论,连系统离散时间下的递推都看不懂,然后去看现代控制,发现自己不会微分方程,不会矩阵论,又去补数学,等学完这些概念在干什么,有了认知,完事终于能看懂论文的一点了,沿着书和论文又开始学优化问题,拉格朗日乘子KKT到现在没明白,中间实习还兼顾搞了一把规控,机器人的规控也是上个时代的旧知识,路径规划,代价构建 优化求解。
学习过程一路把概率论,概率机器人,机器学里的状态估计,贝叶斯、KF EKF、UKF、ESKF、IEKF、GN、LM挨个过,中间掺杂大量推了一遍就忘的定理和结论,过完了滤波,还有基于优化的滑窗,共视图,又开始补多视图几何,BA,从FAST、SIFT、ORB、GFTT到各种pnp,光流,VSLAM系统的能控能观分析FEJ,后边面试还被问了基于学习的光流,全局重定位,问就是不会。到现在对深度学习的理解还停留在MLP这种几十年前的东西。SLAM在大部分车企都是跟定位挂钩的,于是还得把GNSS/INS也多少得了解。
反反复复学同一个概念,前后过了三四遍,结合工程,才懂为什么要引入李代数,为什么要学最小二乘问题,SLAM或者说pose求解到底在做什么,为什么引入了流形。
理论尚未结束,一边开始折腾工程实践,好么,fastlio2一个代码里塞了无数模板元编程和宏,只能找它的平替fastlio来看,这个过程中顺带学ooP和数据结构。然后每个SLAM的框架基本都是从零开始造轮子,激光一万行打底,视觉更是2~3万行起步,能不能学学tensotflow或者pytorch一行给我把前端整完啊,LOAM系、ORB、vins、fastlio2、SVO ,都勾巴从微分方程建模的颗粒度开始编程,不如直接从盘古开天辟地开始学好了。
回到C++,基础的就不说了,软开会的搞SLAM一样得会,算法题一样得刷,一样不少,我每天都得花一小时在刷题,我到现在面试还没见过Hot100原题,全是手撕什么空间平面拟合、GN、计算几何,但普通的算法题依旧得刷,BFS、DFS、图、组合、背包、动态规划、各种树、单调栈单调队列,看都看不完,各种繁琐的C++八股,人家搞C++开发会的一样得会,多线程、异步、设计模式、C++各版本的区别,等我走到这里的时候我已经想跑路都没得跑了,时间来不及。
仿真跑完,买传感器跑真机多传感器融合,组装自己画STL,打印部件或者切点铝型材,把机械设计 测量公差再捡回来考虑装配误差,弄完了考虑供电,布线,好了装完了开始标定,然后才真正开始SLAM,真的麻了。
到最后一个非常大的问题:现在的SLAM社区声音太小了,基本没人在讨论,一搜就是劝退,一翻技术问题的回答都是五六七八年前的,各种小工程问题只能自己被折磨,还没到分析传感器建模带来的精度影响这个深入程度的时候,先被古老代码和各种库接口的更新所恶心,ROS1/2本身也是个÷生玩意,挪来挪去地一直找别人搬的ros2版本。
到最后,学了这么一大坨了,废了这么大精力,一看招聘市场直接绝望了,地平线、momenta全招深度学习的岗位,0个SLAM应届生需求,连具身的初创都只要3dgs和nerf的,我是拔剑四顾心茫然,只剩犄角旮旯的小厂和一些我绝对高攀不上的中大厂,比如楼上大佬所在的华测,候选人人均顶会和深厚的实验室积累,我这种没有课题组积累的,学完上边说的基础知识和前人的工作已经筋疲力尽,还搞什么创新呢?
再来一遍我必不可能头铁了...学我同门跑路互联网早美滋滋拿上转正开躺,或者学3dgs都比现在好。
不知道秋招结果咋样,已经做好备战春招的准备了
袁博融的回答
我也没发过论文,因为在德国读的Master是授课制,不需要发论文。而且我Master搞的方向是机械臂和强化学习,SLAM反而是后来自学的。我们实验室也不搞SLAM,主要搞规划控制,给机器人社区贡献了TEB Local Planner。
只能说学校给打的基础比较好,第一年的专业课程就包括基于数据的建模和控制,凸优化这些。之后无论是搞深度学习还是机器人都需要这些基础。SLAM搞着搞着就成RTAB-Map第二大贡献者了。但这库都开源十多年了,你说其他人咋就参与不进来呢?而且我现在主要精力还不在后端上,更多时间是在开发VIO和折腾数据处理管线。
等你搞到这个程度就会发现:
SLAM开发更像是个手术团队,只能有1个主刀医生,其他人都是打杂的。
对算法一定要有自己的想法,并且自己去检验,主流的很多理解都不一定是对的,毕竟大部分人不写代码,只是调参。
有自己想方法的人一般是不会打工的,所以你很难招人。
流沙reimagined的回答
其实以前招到有水平的slam工程师也很难,根本原因是slam的技术栈多且难。
先说编程,首先要有不错的C++能力,没有c++能力,slam入不了门。
再说算法,以基础的视觉slam为例,从基础的相机投影原理,特征检测和匹配,到相机标定,到二视图几何和多视图几何,再到姿态解算,还有卡尔曼滤波,最优化求解算法,再加上需要掌握不同的第三方库、ros、opencv、eigen、sophus、ceres、g2o...每一项学下来都需要不少时间。
这只是视觉,如果要涉及多传奇器融合的slam,还要继续学习激光、IMU、轮速计、GPS等,每一项又是一座大山,可能光一个IMU的预积分可以劝退50%的人。
到近年做slam还得懂深度学习,因为前端算法有深度学习应用。做深度学习可以完全不懂slam,做slam不能不懂一些深度学习,总之这个方向学习的东西是多且难。
一般入门这方向也就研一开始,两三年能掌握这些,还要水平高,可以说是很难,不过总会有收获,哪怕掌握slam一半的技术栈,转一个别的方向也很容易。
塘朗过客的回答
有那个时间和精力把SLAM做到有水平,换其它领域早就做到资深工程师了!有水平的SLAM工程师工资,还不到深度学习同等资历的工程师一半,岗位数量可能还不到深度学习的十分之一!
钻研SLAM图啥呀,有点能力的早就跑路换领域了。SLAM应届生又只能学个皮毛,SLAM岗位少,还要求高,毕业连进入这个领域机会都没有。现在SLAM早就不像前几年那么多人选了,早晚要断层。
不过话又说回来了,SLAM岗位减少,说明在逐渐被时代淘汰,断层也是好事,免得苦了后来人
夜深未眠的回答
题主说的slam理论的东西都没错,但事实上就是slam现在在智驾也越来越没需求。
先说localization,局部的pose也未必需要用到slam,配个好一点的imu加轮速整个组合导航这种方式简单粗暴且够用。
mapping需要用到一定的几何和优化算法,但经过这么多年了早都做成熟了。
更何况智驾潮流发展的太迅速,现在都已经过了无图化的阶段了,而是大家都在抛弃传统算法这一套去开新坑了。
在WM,VLA甚嚣尘上的大背景下,别说搞定位建图的人瑟瑟发抖,连传统规划的人都焦虑着急谋划转型。先不说黑盒化这件事情最终的落地效果如何,但基本上已经成为了行业发展新风向(最不济也至少是口头上的)。
slam当然自身面临着很大的理论发展瓶颈了,但对于从业者来说其实就业需求萎靡才是最要命的。这玩意学习成本巨大,实验室积累不够或者学的不够深入的出来还很难找工作。
相信后面的学弟学妹看到师兄师姐们毕业时找工作的处境就会自行劝退自己,都不必上网来寻求答案了。
wanderrrrr的回答
一个悖论是由于方向被边缘化了,从业者都去做深度学习相关的结合,反而导致基础扎实的传统SLAM从业者找不到了。结果大家能看到的slam效果越来越差,slam进一步被边缘化…
当然我并不是推荐大家去搞传统SLAM。毕竟这只是SLAM需求萎缩大前提下局部的回光返照。况且一个应届硕士生也很难证明自己能把传统SLAM做work。
我还真没想到我去年的回答能预言到今年的局面。。。
回到题主问题,因为都转方向了。
谁也不想解完一天的bug之后刷知乎还要看到一堆劝退的,刷个小红书都越刷越焦虑。况且SLAM从业者想转别的方向并不难。
连各大高校传统SLAM的大组都去做所谓的“”了,下面的人多少也要受点影响才好。你说你对某个行业有信仰可以,对某个公司有信仰可以,但是SLAM本来就是一系列技术的集合,真的无所谓坚持与否,更不应该成为探索更多方向的桎梏。
暮檀的回答
这个问题好啊。作为一位入坑比较早(11年前本科毕设就是在手机上实现视觉里程计)的SLAM研究者,我见证了周边许多同期的朋友逐渐转向其他方向。原因很直接:学术界对传统SLAM的探索空间收窄,而工业界在过去一年半里,相关岗位需求也确实有限。
在具身智能今年大规模兴起之前,SLAM岗位曾处于一个青黄不接的状态:不少老牌智驾公司面临挑战,元宇宙XR概念热度消退。那时市面上真正优质的SLAM岗位屈指可数,许多遇到裁员或考虑跳槽的朋友,最终选择了转向其他相关领域。
从学术角度看,SLAM虽然仍是顶会顶刊上的常客,但研究重心更多转向预研和前沿探索。然而,移动设备中的localization和mapping作为空间感知的基石,对低成本、低时延、低功耗和高精度有着近乎苛刻的要求。这些产业界关切的核心指标,并非近年来学术研究的主要焦点,因此即便新入坑的SLAM研究者,其研究方向与产业界需求之间也可能存在代差。
此外,SLAM是一个极度依赖实战经验的方向。许多算法的实现都需要基于特定硬件系统进行深度定制化开发。然而,在行业低谷期,实习生很难找到对口的实习岗位。没有实践机会,又从哪里能培养出毕业即具备相关工程经验的人才呢?
大兵小将的回答
学习slam这个对工程,对学术都要有一定研究,并不是短时间就能精通,很多人可能很长一段时间都在搞某个开源算法,仍是对一些知识似懂非懂。slam涉及高等数学,线性几何,非线性优化库及其思想,卡尔曼滤波及其变种,各种坐标转换,各种内外参标定与估计,硬软同步,整套数据流处理,各种过程噪声和观测噪声,尤其遇到问题时,还要分析传感器原始数据,系统延时性影响。有时候并不算本身算法有问题,
有可能时硬件有问题(频率不稳,系统高延迟,同步未做好,安装有问题等)。
slam本身就是一个庞大的工程问题,学习难度较大,且需求确实几乎很少了。
我们还要思考未来还能干什么,而不是时代到了,没有任何准备。
农夫三拳的回答
机器人行业普遍不如自动驾驶行业工资高,而且自动驾驶作为人工智能时代最炙手可热的应用领域,它吸引了大部分的流量。导致一提自主移动机器人的某个方向的技术,好像大家都只看自动驾驶领域。
这导致两方面的影响:
第一:入坑者变少
微信公众号发布的文章在学生、业内人心里的作用远超大家想想。
自动驾驶需要的时候,需要的时候,订阅号里你一发我一转,大家都蜂拥而至。自动驾驶不需要高精地图了,,媒体发几个文章都说凉凉了,知乎发几个文章说slam已死,正在学slam的人又被说49年入国军。
实际上slam在机器人行业永远是硬需求,尤其是室内场景、有明确精准定位需求的场景。
第二:工程师对自动驾驶行业有滤镜,人才流失
觉得自动驾驶比自主移动机器人(狭义上的)高端的工程师不在少数,甚至是大多数。另外自动驾驶行业的工资也确实比机器人高多了。这导致很多机器人行业的slamer干了两年后就转去自动驾驶行业了。
JasonGao的回答
市场+个人能力以及偏向。
现在招SLAM的,大厂的机会很少,很多都是小公司。还有就是网上太多没有前因后果,没有结合个人实际的劝退。
SLAM好像也没前几年给的高了,还有就是相对其他行业,这个需要长期投入,仅仅会跑通个demo,参考网上给的思路找来替换一下,时间久了也没发展空间。比如以orb-slam系列,让其改进下优化(信息矩阵的恰当与否影响着优化的精度),很多人没法去分析。这也只是其中一部分,现在特征方面和回环方面也在探索用模型来辅助,AI的知识也需要(比如分割,或者自己训练视觉词袋,那聚类算法也要了解,至少要知道优缺点,在使用时好选择,确定稳定),除了这些,编码能力也有要求,还有数值计算相关的也要考虑,有的还需要用到ROS及相关工具。
多传感器融合时,还得了解各传感器模型,融合方法;传感器内外参标定,时间对齐。(最近前几个月搞相机和IMU的在线标定和时间软对齐,有时候能接近离线结果,有时候差得一塌糊涂,与数据相关性太大了,那段时间真是痛苦,最终还是放弃准备搞语义方面)
如果数学能力有所欠缺,数学建模能力有所欠缺,如果在这方向要有所追求,在这条路上估计越走到后面越痛苦,焦虑!
现在有说会被大模型所取代,真能取代么?我感觉不太能吧,有谁对这两块都熟悉的,分享分享观点。
各位技术同仁,欢迎分享你的独到见解与技术思考,评论区等你留言!
本文仅做学术分享,如有侵权,请联系删文。
3D视觉1V1论文辅导
3D视觉硬件,官网:www.3dcver.com
3D视觉学习圈子
「3D视觉从入门到精通」知识星球(点开有惊喜) !星球内新增20多门3D视觉系统课程、入门环境配置教程、多场顶会直播、顶会论文最新解读、3D视觉算法源码、求职招聘等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!