点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
论文作者 | 汽车人
编辑 | 自动驾驶之心
个人背景
985硕,读研方向是基于深度学习的2D水平/旋转目标检测,具有一年以上的自动驾驶感知算法实习经历。从自身的算法经历来看属于是比较常见的2D赛道向3D赛道的转型选手。
前期转型经历
读研期间的研究方向主要是做2D目标检测的。但是随着目标检测技术的不断发展,相对来说,在2D目标检测模型上进行创新已经逐渐趋向于饱和了。各类计算机视觉顶会(CVPR、ECCV、ICCV等)上大模型、生成、自动驾驶相关的论文逐渐多了起来,2D相关的内容开始逐渐呈现下降的趋势。
由于自己之前对2D目标检测比较了解,所以想着是向自动驾驶这个赛道进行转型。然后就考虑找相关的自动驾驶领域的经典论文进行阅读(也算是自己开始向自驾这个领域迈出的第一步),同时在寒暑假去找自动驾驶公司的实习机会。因为自己也有提前看过一些秋招的面经,有相关的实习经历或者项目经历对于秋招面试来说还是很加分的事情。
秋招投递方向选择
因为自己有过从事自动驾驶感知算法模型的实习经历,而且实习时间也比较长,自己感觉还算是在自驾这个赛道有一定的优势,所以秋招的过程中主要还是投递了各类自动驾驶的公司。
同时自己读研期间主要是做2D水平/旋转目标检测的,所以也投递了各类互联网大厂当中做计算机视觉的相关岗位。
秋招前的准备
因为自己在各类公司的秋招/提前批开始前还在公司实习,所以当时的重心放在了干好公司手头的项目,争取将项目当中的细节都梳理清楚,这样可以更好的应对秋招过程中面试官的提问。
实习下班后,我会将大块的时间都放在了刷LeetCode上,因为基本面试算法工程师的岗位,对于代码能力的要求还是很高的,像一些大厂,基本每次面试都会有一道代码题,有的时候甚至会出两道代码题。
同时针对LeetCode上遇到的一些数据结构,我也会边刷题的过程中,不断地查漏补缺,补充相关的基础知识。
剩余的零散时间,我会用来完善自己的简历,尽最大能力丰富自己的简历内容,这样也可以让面试官觉得自己在自驾这个领域有很多的经验,给自己的面试加分。
秋招+提前批
现在各个公司为了抢人,都会在正式秋招开始之前设立一个提前批的环节。对于正式的秋招来说,流程大概是:笔试 -> 1-3轮技术面试 -> HR面试 -> 发放Offer -> 入职。
但是,提前批会省略掉笔试这个环节,更重要的是提前批不会影响正常的秋招,相当于是多了一次面试的机会。所以当时也是投了很多自驾公司和互联网的大厂提前批,像地平线、百度、字节等等。甚至最后收获的offer里,有两个就是在提前批拿到的。
个人认为提前批是一个很好的面试实战机会,一方面可以更早的熟悉今年的算法面试流程,同时还可以根据面试过程中出现的知识短板做到查漏补缺,为后续的秋招做准备,另一方面有可能你的Offer就是从提前批中产生!。
在正式的秋招过程当中,我主要采取海投的策略,因为通过提前批面试或者和周围的同学聊天,都能够明显的感觉到算法是一年比一年卷,所以为了防止出现一心冲大厂,最后连保底都可能捞不到的现象,我秋招前前后后投递了很多家企业(但主要还是集中在计算机视觉、自驾感知这个领域上),这里就简单罗列一下:
自驾主机厂:蔚来、小鹏、毫末智行、集度、极氪、理想、吉利汽车等等
自驾互联网大厂/技术厂商:旷视科技、商汤科技、地平线、百度、元戎、速腾聚创、图森未来、美团、滴滴等等
计算机视觉公司:字节、快手、小米、阿里、美团、小红书
面试的过程中感觉还是有相关的实习或者项目经历比较重要。一般面试的过程中都会基于做过的项目开始进行提问。将项目内容问的差不多之后,会简单问一下八股(包括但不限于深度学习、C++、Python、数据结构等),最后就是常规的coding考察环节。
下面是我印象比较深的几个公司的面经:
地平线自驾提前批
总监面:主要以聊天为主,问了职业发展方向,遇到问题怎么解决等等。
全程根据简历中的实习项目内容进行提问
接下来的职业规划中是想做Research还是做业务
实习期间的项目是mentor给什么任务做什么还是自己来想创新点
代码题:类似LeetCode上的岛屿问题(DFS)
根据简历中涉及到的开源项目问了下旋转框检测模型,如何从水平框修改为旋转框?
开源的旋转框目标检测模型使用的是什么损失函数?
自己发表的论文中创新点是什么,简单介绍一下?
问了实习的相关内容,对实习做的一些工作进行提问
代码题:中值滤波
整体是两轮技术面+总监面+HR面
一面
二面
三面
百度自驾提前批
总监面:简单问了一下C++相关的知识,vector相关内容
针对简历中实习的项目进行提问
问了2D目标检测的整体发展流程
了解Faster-RCNN吗,介绍算法设计流程
介绍Focal Loss损失函数
介绍Grounded-SAM的算法框架
介绍一下C++中的虚函数
两道代码题:手写NMS+二维卷积实现
由于是交叉面,一面面试官不是做我这个方向的,所以就问了下实习期间遇到了什么问题,怎么解决的;还有实习期间组里的氛围如何
考了两道代码题,一道是快排,另外一道是动态规划(最好是可以说出来思路+代码实现)
整体是两轮交叉技术面+总监面,无HR面
一面
二面
三面
理想自驾秋招
二面面试官较为匹配,问了一些实习中的项目经历,还是问了一些八股
C++中的智能指针
什么是内存泄漏
堆空间和栈空间的分别是什么
友元函数的功能;什么是类中的静态成员函数和成员方法
两道代码题:快排+IoU计算(要求用C++实现)
由于是交叉面,一面面试官不是我这个方向的,简单问了下实习所作的工作就开始问八股了,问了很久
介绍一下python中的GIL锁;如何利用Python实现多线程
C++中的虚函数
C++中的智能指针;指针中0以及null_ptr的区别是什么
C++中的sort()函数具体如何实现的,是否有看过相关的源码
C++中的vector相关问题
没考代码题
整体是两轮交叉技术面试
一面
二面
快手多模态内容理解算法工程师
介绍一下Swin-Transformer的原理以及和ViT的区别在哪里
了解DINO算法吗,简单介绍一下工作内容
承接上一个问题,对后来出的DINOv2了解吗,针对原有的DINO做了哪些方面的改进
整体说一下DINO、Swin-Transformer、DINO三者的区别
了解DETR吗,说下DETR和之前目标检测算法的区别
自蒸馏这个方法具有什么优势
两道代码:都是LeetCode原题:重排链表+翻转链表
一面
最后可能也是由于方向不是特别匹配,一面结束挂掉了
字节跳动计算机视觉工程师—电商业务
虽然面试官主要是做多模态的,但是还是针对简历中的感知算法的项目做了简单的提问
为什么DETR这类目标检测算法可以实现End-to-End?
了解最近出的Grounded-SAM模型吗,简单介绍一下
了解自监督相关的方法吗?
了解无监督相关的方法吗?
了解NLP的算法模型吗?
针对简历中提到的旋转目标检测模型问了如何实现一个旋转目标检测
问了目标检测中的Focal Loss损失函数,具体公式是什么,相比之前的优势是什么
代码题:最长无重复子串
一面
面试的这个组主要还是做多模态的内容会多一点,自己在这个方向没什么基础,可能也是没有收到二面的原因
个人感悟
从我自己整场秋招的体验来看,我感觉现在各个公司更看重面试者和公司所做业务/research内容的匹配程度。同时由于现在的大环境也不是很好,很多公司还会出现缩招的情况,比较庆幸的是自己开始准备较早,同时还有比较丰富的自动驾驶实习经历,提前批+秋招的正式投递也都没有落下,陆陆续续也拿到了几个还算满意的offer。所以如果各位小伙伴想要冲大厂的话还是要趁早准备,趁早准备,趁早准备!
最后,预祝所有奋力奔跑在秋招路上的同学们都可以拿到自己心仪的Offer!
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)

② 国内首个自动驾驶学习社区
近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!