理想汽车自动驾驶算法面试经历:感知+规划+控制全链路考察

自动驾驶作者: 美历团队

2年自动驾驶经验,详细复盘理想汽车三轮技术面试,涵盖CV感知、目标检测、规划算法、决策树、系统设计等核心考点

背景介绍

先说下我的情况吧,985硕毕业,在一家自动驾驶创业公司干了两年,主要做感知算法这块,日常就是和点云、图像打交道。今年年初开始看机会,理想汽车一直在我的目标列表里——毕竟新势力里做增程式自动驾驶的,技术路线挺有想法的,而且他们那个AD Max系统确实有点东西。

投简历是在Boss上直接找的HR,大概三天后就收到了电话,约了面试时间。整个流程大概持续了三周,三轮技术面+一轮HR面,节奏还算紧凑。下面我就按轮次详细复盘一下。

面试流程复盘

一面:CV感知+目标检测(约1.5小时)

一面面试官是个看起来很年轻的小哥,后来才知道是感知组的tech lead。开场先让我自我介绍,然后直接进入技术环节。

他先问了我目前项目里用的检测算法,我说是基于BEV的3D目标检测,用的BEVFormer。他追问了BEVFormer的核心思路,我从spatial attention机制开始讲,讲到如何把2D特征lift到3D BEV空间,再到temporal fusion怎么做的。他听完后点了点头,然后问了一个很刁钻的问题:BEVFormer在远处目标的检测精度下降很厉害,你们有没有做过什么改进?

这个问题我确实踩过坑,当时我们用multi-scale feature fusion来缓解远距离特征稀疏的问题,还加了一个distance-aware的loss权重。我把这些细节都讲了出来,面试官明显来了兴趣,又追问了loss设计的具体公式。

接下来是手撕代码环节,题目是:给定一组2D bounding box和对应的camera extrinsic/intrinsic矩阵,实现一个简单的frustum-based伪3D检测。这道题不算难,但细节很多,尤其是坐标变换那块容易出错。我大概花了25分钟写完,面试官看了下说逻辑没问题,但让我考虑一下edge case——比如box超出图像边界的情况。

最后聊了大概15分钟的项目细节,主要是数据标注流程和模型部署的事情。一面整体感觉还不错,面试官很专业,问题也都在点子上。

二面:规划算法+决策树(约1.5小时)

二面是个资深工程师,一上来就给我画了个场景:高速公路上,自车在中间车道,前方100米有慢车,左车道有车正在变道过来,右车道空着,问规划模块怎么处理?

这个场景其实挺经典的。我从场景理解开始分析,讲到behavior prediction对周围车辆的轨迹预测,然后是decision making层怎么用决策树或者POMDP来做决策,最后是motion planning怎么生成具体的轨迹。面试官听完后追问:如果左车突然加速变道完成,你的决策树怎么处理这种动态变化?

我说这需要在每个planning cycle重新评估,决策树的叶子节点需要考虑时序变化,可以用rolling horizon的方式来做。他又问:rolling horizon的horizon长度怎么确定?太短和太长各有什么问题?这个我之前确实思考过,太短会导致规划短视,太长会增加计算量且预测不准确,一般取3-5秒比较合适。

代码题是:实现一个简单的lattice planner,给定起点和终点,生成候选轨迹集合并用cost function排序。这个我之前实现过类似的东西,所以写得比较快。但面试官让我详细解释cost function的设计,包括舒适性、安全性、效率性各项权重怎么调的,这部分聊了很久。

二面感觉比一面更有深度,面试官会不断追问直到你答不上来为止,但不会让你觉得被刁难,更像是在一起探讨问题。

三面:项目深挖+系统设计(约2小时)

三面是部门总监面的,气场很强但说话很温和。他先让我完整讲一个做过的项目,我选了之前做的多模态融合感知项目。讲的过程中他不断打断提问:

你们的融合策略是early fusion还是late fusion?为什么这么选?

激光雷达和摄像头的时间同步怎么做的?误差在什么级别?

如果某个传感器突然失效,系统怎么graceful degradation?

这些问题一个比一个深,尤其是传感器失效那块,我之前只考虑过简单的fallback策略,他让我从系统架构层面重新思考,包括如何做sensor health monitoring、如何在感知层做uncertainty estimation来指导下游决策。

系统设计题是:设计一个城区NOA的感知-规划-控制全链路系统,需要考虑哪些模块?各模块之间如何通信?延迟要求是什么?

这个题很大,我从系统架构图开始画,讲了感知模块的输出格式和频率、规划模块的输入输出、控制模块的执行频率,以及中间的message passing机制。他特别关注延迟——从感知到控制的端到端延迟要求是多少?你们怎么保证?我说感知大概50ms,规划30ms,控制10ms,总共90ms左右,通过pipeline并行和GPU加速来保证。

三面结束后我整个人都虚脱了,但同时也觉得收获很大,面试官的问题确实让我重新审视了很多之前没深入思考过的点。

真题汇总

1. BEVFormer的核心思路是什么?spatial attention怎么实现的?

2. 远距离目标检测精度下降的原因和改进方案?

3. 给定2D bbox和相机参数,实现frustum-based伪3D检测

4. 高速场景下规划模块如何处理周围车辆的动态变化?

5. Rolling horizon的horizon长度如何确定?

6. 实现lattice planner,设计cost function

7. Early fusion vs late fusion的优缺点?

8. 多传感器时间同步方案?

9. 传感器失效时的graceful degradation策略?

10. 城区NOA全链路系统设计:模块划分、通信机制、延迟要求

心得建议

第一,基础一定要扎实。理想汽车的面试不会考你什么奇技淫巧,但基础概念必须真正理解,不是背个八股就行的。比如BEV的spatial attention,你得能从数学原理讲到工程实现,中间不能有断层。

第二,项目经验要能讲出深度。面试官特别在意你是否真正理解自己做的项目,而不只是跑了个模型。每个技术选型的原因、踩过的坑、做过的改进,都要能说清楚。

第三,系统思维很重要。尤其是三面,面试官关注的是你对整个系统的理解,而不只是某个模块。自动驾驶是一个系统工程,感知、规划、控制是紧密耦合的,你得能从全局视角看问题。

第四,手撕代码不能拉胯。虽然不是纯算法岗那种难度,但代码题都是和业务强相关的,而且要求你边写边解释思路,所以平时得多练。

第五,保持冷静和诚实。不会的就说不会,面试官其实更看重你的思考过程。我有几个问题答得不太好,但我说了我的思路和猜测,面试官也给了正面的反馈。

FAQ

Q:理想汽车自动驾驶部门的工作强度如何?

A:面试过程中了解到,加班是常态,尤其是项目冲刺期。但相比一些创业公司,节奏还算可控,周末一般不加班。

Q:面试语言是中文还是英文?

A:全程中文,技术术语用英文就行,不需要英文面试。

Q:对学历有什么要求?

A:感知算法岗基本要求硕士以上,规划控制岗本科也有机会,但需要有扎实的项目经验。

Q:面试结果多久出?

A:我是一面后3天约二面,二面后5天约三面,三面后一周出结果,整体大概三周。

Q:薪资水平怎么样?

A:2年经验的话,总包大概在50-70w之间,具体看面试表现和定级。股票部分占比不小,但锁定期比较长。

#自动驾驶#理想汽车#感知算法#规划算法#系统设计#BEV#面试经历