自动驾驶感知算法面经(20+)
原文链接: https://zhuanlan.zhihu.com/p/656952371
本人2022年4月和2023年7月两次跳槽找工作,面经总结在这里,希望可以帮到需要的朋友。
项目相关的问题主要和经历有关,参考性不大。
2023年7月
1. 文远知行
-
自动标注算法岗位
-
项目经历问的不深
-
coding两道题。
-
leetcode 55 跳跃游戏
。 -
NMS python
。
2. 易控智驾
面试体验较差,不说了。
3. 斑马
-
coding:买卖股票基础版
-
工作时间早十点,晚上八九点
4. 蔚来
第一轮:
-
项目问的比较细
-
几个公开数据集的
lidar
区别,对点云、模型检测
的影响 -
domain adaption相关的方法,
如何缩放点云
-
radar检测的具体优化。
pointnet
和pointnet++
的区别 -
pnp calibration
-
栏杆检测为什么不用网络学习?
-
BN的mean和std的dimension,
有哪些可学习的参数
,train和test的时候怎么用
-
coding:python 计算两批shape不一样的box的IoU。不用for循环。
-
numpy的broadcast
-
自认为有技术领先性
第二轮:
-
问的都是些比较抽象的问题
-
对视觉3d检测算法的了解。
-
举例工作中遇到的困难,(技术/项目),如何解决的
-
对之前公司的感知算法的问题,看法认识
-
对未来自动驾驶算法的看法
-
coding:
未知形式的函数f(x),零点在[-1,1], 求零点,精度要求1e-4
5. 有个机器人
-
纯纯八股文
-
c++语言特性,构造函数,析构函数
-
batch norm
是什么,原理 -
MLP是什么,
欠拟合
,过拟合
, -
是否了解
量化
,剪枝
-
目前是lidar为主,未来会加camera。
-
主要是做小型物流机器人。
-
在做安防机器人。
-
感知团队5-6个人,包括深度学习,slam。
-
上班时间10-7 。
-
大小周 周六上班。
6. 井松智能
没问什么技术问题,主要介绍下项目
要去合肥出差
工作时间:九点半到六点半
7. 商汤
-
智慧城市
-
没问项目就开始coding
-
coding两道题:
NMS
,用pytorch手写一个transformer
或者conv+bn+fc
8. 禾赛科技
第一轮:
-
项目问的很细
-
卡尔曼滤波Q和R怎么调
-
c++ 解释
多
态,在哪些场景应用过 -
vector和list的差别,底层实现,各种操作复杂度
-
template是否算一种多态?如果不在.h里面定义他的函数,在.cpp里面定义会有什么问题?
-
公司的优势:软硬件一体,易于沟通解决问题
-
客户的不同硬件平台,不同的功能需求。
第二轮:
-
又问了些项目相关的问题。
-
一堆点,找最大凸包。无序的话 用什么排序?极点排序,最慢O(n^2)
第三轮:
-
现场面试
-
介绍下最有成就感的一个项目
。 -
coding:快排,时间复杂度为什么是O(NlogN)
-
c++ segment fault如何debug
-
vector 和list底层实现
,基础操作复杂度 -
问了些性格相关的问题
9. 字节aml
没有问八股,问了些大模型的较新的技术进展
llama,MAE,flamingo
transformer的encoder和decoder,position encoding,rope。
10. oppo研究院
第一轮:
-
问了项目中涉及到
检测跟踪
的算法 -
十几个人 四个方向。检测跟踪2个人,做手机相册相关算法
-
c++ vector底层实现,基本操作复杂度
, -
虚函数,设计模式有哪些,用过哪些设计模式
第二轮:
- 介绍下某项目中对模型做了哪些优化
yolov5,v6,v7
-
clip
有什么问题。为什么,适合什么场景 -
segement anything
:prompt如何输入进网络 -
认为自己擅长算法的哪些方面
-
有些算法是外包的,准备转为自研
11. navinfo四维图新
-
泊车感知算法
-
传感器:超声波传感器和鱼眼相机
-
L2行车泊车。今年年中/年末交付
-
自动驾驶在内部相对独立。
-
图像感知在北京。
-
超声波传感器换了新版。输出的信息更多了,需要招人来。
-
国资背景
-
众包地图
-
上半年刚进行改革。压力比较小。
-
八小时弹性。无事不加班。
12. 商汤自动驾驶
第一轮:
-
了解哪些
目标检测算法,各自的优缺点
(anchor,anchor free,transformer
) -
传感器标定是怎么做的
-
domain adaption怎么做的
-
描述两次代码重构的过程和思想
-
描述卡尔曼滤波的过程,具体如何解决问题的
-
后融合怎么做的,速度的gt如何得到
-
coding:dbscan
第二轮:
-
是否
了解learning的tracking
? -
是否了解
sota的bev感知算法
-
是否能接受加班
13. 理想第一轮。
- 早九晚六/七
– c++写的很多
-
coding;岛屿数量,延伸:如何统计不同形状的岛屿,如何对不同形状建模表示
-
描述下dbscan过程
-
c++ 为什么要用引用传参
-
目前lidar和融合一共20人
14. 地平线(合资)
第一轮:
-
加班没有特别频繁。上海会新开office在虹桥/张江。
-
coding:快排
第二轮:
-
问的c++问题相对较难:
-
内存分配,内存池
-
野指针
,一般是什么情况下会产生,如何避免
- 智能指针
,如何实现一个shared_ptr类,各个成员函数什么时候调用,成员变量什么时候更新。
-
new一个新对象时候发生了什么,
如何能只创建对象不分配空间?
-
调用一个派生类的构造函数时发生了什么?
15. 英伟达
-
自动驾驶support岗位,每周去车上测试一次
-
描述图像resize的过程并实现
-
c++编译出现undefined reference如何debug
-
迁移软件时,出现找不到的binary怎么解决
-
c++多态,虚函数,构造函数可以是虚函数吗,为什么
-
内存泄漏如何避免
-
c++模板,应用场景
-
智能指针,
shared_ptr
,unique_ptr
-
指针和引用
-
external
-
感受野怎么算,如果有branch
-
描述NMS过程
-
yolo和ssd的box后处理的具体过程
-
transformer的self-attention过程
-
softmax为了让输出更稳定做了什么
2022年4月
ps:以下记录的公司相关的信息已经不太可信
1. 滴滴
·第一轮:·
-
pointnet input transform,feature transform·
-
coding 834. Sum of Distances in Tree hard,dp+2dfs
-
C++ set和ordered set底层实现,insert和erase的复杂度
第二轮:
-
英文自我介绍&几个简单的问题
-
主要问的
tracking,ukf有没有用,具体的R如何根据mean和std调整
-
coding https://www.techiedelight.com/find-triplet-with-given-sum-bst/
-
bst遍历的时间复杂度,3sum用左右指针的时间复杂度:O(N^2)
- Time complexity of all BST Operations = O(h).
- Here, h = Height of binary search tree
2. 轻舟智航
第一轮:
-
pointnet input transform,feature transform
, -
max-pooling可以用什么替代?
怎样可以降低nx1024的参数量? -
batch norm解决了什么问题?有什么优缺点?需要学习哪些参数?还有其他什么norm?
-
L1和L2 regularization,什么作用,具体怎么实现的,什么区别,和weight decay什么关系
-
卡尔曼滤波器,P,Q,R怎么决定K和协方差阵的?
-
状态量在平面坐标系,观测量在极坐标系,效果不好?
-
coding 547
. Number of Provinces graph dfs -
dfs的时间复杂度:O(N^2) 因为每个节点都要去遍历他的children,相当于两层循环
-
c++:
-
vector底层实现,空间是连续的吗?
vector变量存在堆上还是栈上?里面的每一个值存在堆上还是栈上? -
unordered map和map,有序还是无序?底层实现,insert和erase的复杂度
3. ecarx亿咖通
第一轮
-
coding:DBSCAN
-
主要业务:智能座舱+自动驾驶
-
芯片:xinqing科技
-
感知主要是lidar和camera
-
去年(2021年)获得了hdmap甲级资质
第二轮:
-
radar 后融合 直接用cluster
-
偏向于lidar和camera
-
目前还在实现大部分功能
-
前装,乘用车,
-
主线:多V,多R,多lidar
-
高速+城区,逐步release
-
双休,九点半到八点,不打卡
-
徐汇滨江西岸
-
平台,系统更大,自动驾驶,芯片,智能座舱,
-
港股上市,
-
和tech lead面试的问题:
-
团队的组成?二十多个人做NN模型,研究生,平均四五年以上,大感知团队:有博士,
-
zhijia,小鹏,mmt,华为,
-
自己开发的训练模型的平台,pytorch。
-
平时有发paper或者刷榜的计划安排吗? 会和平时的工作相结合,互相验证。
-
比较看重员工的什么能力?技术能力,沟通。创造力。
-
做到25年的规划。
-
23年单V落地。
-
主要客户:泊车,adas,吉利汽车下面的。还有一些联合开发。
4. 纵目
-
一轮技术面:
-
更复杂的tracking算法。
-
传感器raw data。
-
前融合。
-
freespace 用雷达
-
视觉->系统供应商->雷达
-
毫米波雷达感知七八个人,还有信号处理,一共100多人。华为,美团,江淮。
hr面试:
-
工作时间 九点半,五点半/六点半。双休,没有打卡
-
毫米波雷达感知七八个人
-
同一批人做量产/预研
-
中级/高级差不多各一半。
-
总监 工作了十几年。比较平衡。
-
有mentor
-
张江
5. 采埃孚
-
ukf
, -
除了
hm
之外的其他匹配算法 -
观测和预测的相似度计算
-
PQR
都是怎么设置的 -
单例模式和工厂模式的区别
6. 感铠科技
-
L2,L3,adas功能实现,主要在底特律
-
尝试前融合,目前是用原始radar detection和vision
-
4d radar 从硬件到软件
-
初创公司
-
有期权
-
乘用车
-
公司名字可能会改,四月份确定
-
项目制,
-
马上要A轮
-
在新江湾城
7. 文远知行
第一轮:
-
卡尔曼滤波,
怎么用同一个filter同时适配车辆横穿的场景 -
感受野计算。
-
centernet等基于center的recall不够高,有什么办法来改善
-
做二分类,有80%的数据是标注正确的,20%是标注失败的,如何训练?
-
anchor-base
和anchor-free
的优劣; -
如果anchor-based的方法,设置很多不同的anchor,对于非正常宽高比的物体以及小目标会有改善吗,除了计算速度以外会有什么其他问题
-
c++11之后的新特性有没有用过
-
智能指针
void test (const std::vector<shared_ptr<xxx>>& aaa){
aaa[0].b += 1;
}
编译能不能通过
std::vector<int> generate()
和void generate(std::vector<int>*)
哪个效率高
一般是第二个效率高,因为函数返回值默认会赋值一份空间,除非编译器有做return value optimization
-
单例模式的实现:static、全局变量、指针判断(默认是空,每次用的时候判断是不是空,空就创建一个)
-
coding
:二叉树的直径 543 -
上海这边一共50人,
感知6~7个人
, -
大家同时做几个产品线,通用算法
-
毫米波雷达和视觉相关都有
第二轮:
-
coding:105. 从前序与中序遍历序列构造二叉树, 7. 整数反转
-
环卫车项目,要在广州2个月左右,目前是二三十个人,主要是基于已有的融合,tracking框架加入环卫车特有的一些规则
后面稳定下来后可以参与感知算法
8. 极氪科技
-
面试官是radar负责人
-
7,8点下班
-
coding:区间合并 56
-
目前毫米波雷达只有两个人
-
背靠吉利,在供应商面前占有强势地位,有conti的4d radar在手
-
目前可以拿到传感器目标级和点云级的输入
-
毫米波雷达在高速上比较重要,未来会扩展城区场景
-
主要来自蔚来,华为
第二轮:
-
面试官是感知负责人
-
感知包括定位等,一共目标一百六七十,
-
感知算法,目标检测这边目标八九十。
-
前融合,feature级别的融合
-
量产 要求较高
-
最终目标是城区场景
-
目前是装的eq5
-
也会涉及到lidar,融合等算法
-
九点半之前上班。
9. autox
第一轮:
-coding:number of islands
-unorder_map map区别,unique_ptr
-
int const * const x; const放在*右边,指针的指向不能改,这一行第一个const也可以放到左边,const int也不能改
int * const y; 指向int的const指针,int值可以改,指针指向的地址不能改
const int& i = *y; i的值不能改,read only
int& j =*y; j是别名,可以改,改了的话y指向的变量也会改 -
毫米波雷达感知只有美国一个人,国内十几个人在做autox自己的雷达。
-
也会做和camera,lidar的融合
第二轮:
-
卡尔曼滤波器,要是系统不是线性的会产生什么问题?
-
ekf是怎么解决不是线性的问题的?
-匈牙利匹配是一个全局最优的,有没有试过其他的匹配方法
- coding:判断一个点是否在一个旋转的box内
10. pony
`第一轮:
-
coding:https://leetcode.com/problems/binary-tree-maximum-path-sum/
-
问了ssd,yolov3,centernet
第二轮:
-
是否了解radar如何测角测速
-
`coding:无序数组,选三个连续子数组,每个子数组都是两个元素,求这三个子数组的和的最大值
-
用前缀和思想+
-
也会做和lidar,camera的融合,
-
有不同的项目线,基本上用同样的code base,自己决定做哪个项目
-
算法迭代需求主要来自于路测问题和evaluation结果
-
evaluation工具比较完善
11. 千挂
-
主要在北京,一共30, 感知5-6个人,前融合
-
coding:
实现shared_ptr
-
两个bst,各选一个数,加起来等于target
12. 主线科技
第一轮:
-
重卡,物流运输,
-
干线物流+港口物流:L4,无安全员。
-
北京:港口,L4前瞻调研,lidar和vision提供general感知,地图等。300人。
-
按照博世系统来,
-
上海:算法十个人,平均工作五年以上
-
去年(2021年)九月份成立,主要是为了高速干线物流量产,落地,合作商用oem top2,radar后融合with lidar和vision,环境搭建,会来一位大佬,做过前后融合,目前没有人做radar,打算招7~8个人。目前是用目标级输出,未来用点云。50人->100人。算法三十人。
第二轮:
-
先做后融合,
-
当前是L2
-
第三轮:
日- 常的工作的大概内容?
-
路测数据,主导开发的原则,
-
比较看重员工的什么能力?
-
背景,学历,个性。
-
主要是Apollo系统,
-
组织架构合理,有凝聚力
-
毫米波雷达+融合。
-
嘉定安亭。上海汽车城大厦。九点到六点半。十一点半到一点午休。没有打卡。
13. 云骥科技
-
第一轮coding: 54. 螺旋矩阵
-
感知15个人,lidar,camera,radar,
-
干线物流,城市货运,乘用出行三个场景,从城市场景开始做?
-
做一个统一的平台,优先做robotaxi。然后做robo bus
-
园区L4无人小巴,计划六月份在上海公共道路
-
robotaxi已经有公司在做了,和友商比较的核心竞争力是什么?域控,有自己的gpu,不用ipc
-
团队完整,资金足够,王京傲的影响力。
-
自驱力,自我成长,团队合作精神。
14. 禾多科技
代客泊车和自动驾驶
第二轮
有多个项目
5R + 1V
5R + 7V
5R + 7V + 3L
一个人会参与多个项目
上海这边感知4/5个人
15. appen澳鹏
第一轮:
澳洲上市的外企
主要工作:数据预处理,后处理,算法开发。
上海有两个分部:local和global。这个岗位负责global业务,准备招4~5个人
流程:本地验证,和annotator合作验证,跑过线上ab test,由engineer部署。
第二轮:
coding:两个排好序的数组,找公有元素。
Product quantization (PQ)
问了概率计算,sample数据实现。
个人的优缺点
主要客户:Google,Apple,
16. 智加
coding:number of islands
量产由其他team负责,这个team负责预研及量产。
17. 商汤
-
点云和图片的区别
-
pointnet为什么没有用conv?
-
focal loss的参数如何调
-
有哪些loss
-
anchor free和anchor based的区别
-
anchor-free的target assign是怎么做的,怎么解决多个目标中心点位置比较靠近的问题?
-
centernet网络输出是什么
-
描述卡尔曼滤波器
-
如果分类问题中几个类别有overlap怎么办,如何设计网络结构
-
是否了解mmdetection的hook
-
如果需要在mmdetection中加一个backbone,需要改哪些代码?
-
coding:二叉树中序遍历,不用递归
18. 禾赛科技
第一轮:
-
数据,标注,感知,后处理,工程
-
15个人,点云特征,十点-八点
第二轮:
- coding:环形链表,每一个node是一个point(x,y),连起来是一个多边形,判断凸凹性
19. 均胜电子
-
准备单独上市,去年(2021年)刚成立,准备从100人扩张到200人
-
目前有五家公司在谈合作。
-
先做国内再做国外
-
算法:感知10人->20人。
-
主要做L4 taxi,L2,L2++,芯片
-
目前主要在高速场景
-
老板郭济顺
-
客户稳定,传统tier1,有积累,有资源,70%业务来自于国外
-
第二轮:面试官以前在上汽,主要做视觉感知,七八年
-
上海office在莘庄。莘学路。 两栋楼。
-
有食堂。
-
九点-五点。