小白硕没有人带,实验室没有积累,我是如何突围SLAM,收获SCI最终拿到自动驾驶offer的?
2022-07-05 10:10 计算机视觉life 阅读(185) 评论(0) 编辑 收藏 举报大家好,我是小6。前计算机视觉算法工程师,现自由职业者、创业者。
最近我们机器人SLAM知识星球里的作业分享《我的入门过程及学习经验分享》活动结束,下周准备颁奖。这里选取了大家点赞最多的一位同学的经验分享给大家。这位同学我很早就认识,算是看着他从小白一路打怪升级,最终拿到非常不错的offer,顺利毕业,先给个祝福!他的整个心路历程非常励志,我在留言区也给他中肯的评价:
不多卖关子了,下面是正文。
作为一名即将毕业的SLAM研究生,这一路走来也是挺有感触的,在此把自己的一点经历和大家分享一下,希望可以帮助到大家少走弯路。
首先介绍一下背景,我是一名在读211机械研三硕士生,研究生过程中,老师全程放养,组会一个月一次都是好的,项目组里没有一个人学习SLAM,我是第一个也是最后一个。师弟跟了我一段时间的SLAM,然后就换方向了。实验室除了一个D415相机之外没有任何SLAM设备。三年下来,我拿到了理想汽车的SLAM算法工程师offer,一篇SCI闭源论文,即将顺利毕业。
为了让叙述有一定的条理,以下内容我以时间点进行分段讲述。
研一入学,满怀壮志,立誓要继续保持考研的良好习惯,在科研上做出一番成就。积极咨询师兄师姐,阅读论文,查找博客,观看视频,入门了机器学习和深度学习,认认真真学习了一个学期,然后……就被老师换了方向。C++?重新学起;SLAM?这书怎么全是公式;Ubuntu?原来还有这样的系统,为什么Windows上不能运行;装环境?报错变了就是有进展。研一对我而言,成了一个磨练个性和锻炼耐性的过程。通过黑马程序员和老九视频,我一点一点地学习了C++的内容。通过观看B站上的Ubuntu安装课程,自己尝试安装了Ubunutu系统(劝告SLAM初学者千万不要使用虚拟机,要学着把Ubuntu作为自己的主要系统,像熟悉Windows一样熟悉它),也是在B站上看了一门入门课程,学习了这个系统的简单操作;对于装环境,老老实实的跟着《SLAM十四讲》一步一步操作,遇到问题就百度(实习之后才知道,必应和谷歌才是SLAMer更好的搜索工具)。至于主角SLAM,我先是跟着B站上的SLAM十四讲课程,反复看了好几遍,在书上认认真真的做了笔记,然后我就跟着书里的项目一个一个进行尝试,一开始先是跑通,然后修改几个参数,最后一段一段的进行理解。也是在这个过程中,我接触到了计算机视觉life和****知识星球,然后里面的作业就逐渐都有了我上传的痕迹,时间一直进行到了研一的暑假。
研一暑假,这是个特别的时间段,所以我想单独摘出来和大家聊聊。这个时间是国内疫情刚开始的时候,因为开学延期,迷茫和无所事事成为了主要的基调。我开始想着去投递一些实习的岗位,好好利用这段不需要去实验室的时光。然后,现实就给了我当头一棒。海投公司,但是回复者寥寥无几。好不容易有了回应的,安排了面试,也是把我问的哑口无言。一开始学习SLAM的我,只注重了代码的使用,认为只要能跑出想要的结果,就是学会了。但是经过几次的面试我才知道,理论知识,更是重中之重。
研二开始,我把《SLAM十四讲》反复阅读了四五遍,把可能问到的知识点以自问自答的方式做了整理记录。当时正好是六哥推出ORB-SLAM2系列视频的时候,我就跟着六哥,开始了ORB-SLAM2的学习之旅。ORB-SLAM2的代码真是SLAM入门的最好代码了,配合着六哥的注释版本,那段时光我对SLAM有了新的认知。研二的寒假,我靠着对ORB-SLAM2的理解和自己整理的知识点,去了一家小机器人公司实习。这是一家初创公司,第一次进入公司的感觉就是,哇,这里怎么有这么多机器人,这里怎么可以有这么多种类的相机,还有各种各样的标定板,太专业了!(好吧,其实每家公司都会有这样的,只多不少)。于是我开始了学校公司两头跑的学习生涯,每天通勤三个小时,工资150一天的苦逼生活。事实证明,如果你的实践能力并不足够强,代码能力也不充足,还去了一家小机器人公司的话,你的大部分实习经历就是带着机器人出门遛弯,做做ROS的基本功能函数,标定标定相机,IMU,实现一些非常简单的功能函数。这段时间的实习经历不能说没有收获,我的ROS,C++,Python,以及标定技能点大幅上升,但唯独SLAM技能,还是处于自己自学的阶段。
由于实验室存在着论文压力,研二的大部分时间我也在广泛的阅读论文,记录。寻找论文创新点的过程无疑是痛苦的,我涉猎了许多方向,深度估计,IMU结合,语义SLAM等等,也花了一个多月对DS-SLAM还有DynaSLAM进行了研究,不过这两个代码的环境配置真是不友好,可能是环境冲突的原因,最后靠着docker才成功跑出了这两个代码。但仅仅只是知道了代码的原理,如何修改又是一大难题,让我每天都充满了焦虑。于是,我又去实习了。这次是一家自动驾驶小公司,在大楼中有属于自己的一个楼层,公司的定位是视觉定位和导航算法。因为公司距离学校非常远,所以我一狠心在附近租了个出租房住了下来。(没错,我的老师到现在都不知道我去实习了)。我的mentor跟我来自于同一个学校,对我非常的照顾,跟我允诺可以基于公司的实习项目去投递论文。在实习过程中,我自己单独负责了一个多目相机的标定以及修改一个多相机视觉SLAM的项目,整个过程从论文方法查找到代码修改基本都是由我在主导,遇到问题可以去问我的mentor。代码的原型框架是ORB-SLAM,在它的基础上,让我对ORB-SLAM的理解也上了一个层次。与很多人的经验分享相同,真正上手地去修改一个SLAM框架,远会比理论的学习让你更加影响深刻。基于上一段实习的经历,我也痛定思痛,养成了在网上整理笔记的好习惯,对每天实习的内容进行整理,这在整个实习过程和后期复盘中起了很大的作用。在实习的同时,我也为了秋招,开始了VINS-mono以及力扣代码的学习,每天在公司待到9点。实习结束,我也拿到了相关公司的SP offer。并且在对方公司同意的情况下,将这部分的内容写作论文进行了发表。(插一句,公司还有每周的论文分享会,还有小零食,还有水果供应,真的非常nice)
研三开始,就是拼命地秋招和准备大论文了。秋招的投递过程并不顺利,因为我参加的比较晚,以及与大佬的差距依然较大,最终我只收到了几家中厂的offer。所以,我一狠心,一咬牙,又去蔚来实习了。蔚来给我的氛围,更多的是卷和大佬云集,还有没有小零食!在这段实习时光中,我的心态也发生了更多的转变,因为自己来的目的就是获得更多的经验,而不是为了发表论文。我开始更加广泛的去参加到一些项目中,对激光SLAM有了涉猎,还与同事一同搭建了IMU与里程计的融合代码。实习结束,我与许多同事成为了好友,在平时有了疑问可以与他们进行交流。虽然因为公司政策,无法转正,但这段经历对我后续的校招以及SLAM学习有了巨大的帮助。
实习结束,我投递了春招,在多家offer中基于综合考量选择了理想汽车。前段时间,论文也回复邮件说决定接收。回首研究生三年,我的后半段时间没有精彩的校园生活,大部分时间就是公司和学校两头奔波的辛劳,担心被老师发现,在难得的休息时光去查阅文献和构思代码,但也是这些经历切切实实地帮助了我拉近了与拥有师资条件和实验室条件SLAMer的差距。我写下这段文字,更想让这些内容对和我一般境地的研究生们起到一种鼓励,不要迷茫,如果实验室没有条件,那就自己创造条件。
以上是该同学的分享全文,很多同学也在留言区表达了自己的观点和祝福。“千淘万漉虽辛苦,吹尽狂沙始到金”,送给每位仍在奋斗的SLAMer!
如果本文对你有帮助,麻烦点个赞支持一下,每一个鼓励都能让我更有动力分享精彩内容~
独家重磅课程官网:cvlife.net
全国最大的机器人SLAM开发者社区
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端