资讯动态

速腾聚创感知算法岗笔试复盘:从点云处理到C++手撕的全链路解析

发布时间:2026/9/1 4:13:34 来源:尧图企业网站定制
每年秋招感知算法岗都是自动驾驶和机器人赛道最卷的方向之一。速腾聚创作为国产激光雷达头部厂商它的笔试题目在行业内一直有“范围广、基础深、手撕硬”的说法——既考你对点云处理和深度学习的基本功又考你在真实工程场景里的应变能力。这篇文章我带你完整拆一遍2023年秋招速腾聚创感知算法岗的笔试思路从题型分布、核心考点、手撕代码到避坑经验一次性讲透。不管你是正在准备秋招的应届生还是想转行感知方向的工作党这篇复盘都能帮你少走不少弯路。声明一下我不可能拿到官方原题以下内容是基于当年参加笔试的同学回忆、社区讨论和我个人对岗位要求的理解做的一份系统整理。重点不是押题而是帮你把知识点串联起来搞懂这类笔试到底在筛什么人、考什么能力。1. 笔试题型与整体策略先摸清出题人想要什么速腾聚创的感知算法笔试整体风格属于“基本功优先工程落地导向”。它不像有些大厂那样大量堆砌冷门论文细节也不会像Kaggle比赛一样让你端到端调模型。它的出题逻辑非常明确考核你对激光雷达感知链路的基础理解、数学推导能力、C工程素养以及面对真实点云数据时的处理思路。从题型分布来看笔试通常由三大部分构成选择题/填空题、简答与推导题、手撕代码题。选择题数量大概在15到20道覆盖点云处理、矩阵论、概率统计、深度学习基础简答与推导题一般有3到5道需要你动笔写公式、画框图、讲清思路手撕代码题通常有1到2道限时大概30到45分钟考查C或Python功底。从难度梯度来看笔试前30%是送分题考察基础概念比如“体素滤波的作用”“ICP的输入输出是什么”这部分只要认真准备过都能拿分。中间50%是拉分题需要你综合运用知识比如“给定一个旋转矩阵求对应的欧拉角”“解释PointNet如何做局部特征聚合”这部分考察的是理解深度。最后20%是压轴题往往结合工程场景比如“在地面分割中如何防止过分割”“手写一个KD-Tree最近邻搜索”这部分直接拉开差距。这里我必须强调一个策略上的认知速腾这类硬件公司的感知岗笔试筛选的核心指标不是“你会多少种SOTA模型”而是“你有没有能力把算法落到实际产品中”。因为激光雷达公司做的感知算法跟纯做L4 Robotaxi的算法不完全一样它更强调对传感器本身特性的理解——比如机械式雷达和固态雷达的点云分布差异、回波噪声模型、标定误差对感知的影响。所以在准备时别只盯着顶会论文地基性的知识反而要砸实。再补充一点笔试虽然不直接考编程环境搭建但如果你对PCL、Eigen、Open3D这些常用库的接口不熟手撕题会写得很难受。建议笔试前把PCL的filter、segmentation、registration模块Eigen的几何模块常用接口过一遍不需要逐行背但核心API的输入输出要能默写出来。2. 数学基础与优化理论这部分决定你的上限速腾笔试的数学题不走偏怪路线但非常看重推导的完整性和严谨性。经常出现的考点集中在三个方向矩阵运算与求导、概率统计建模、最优化方法的基础应用。这三个方向看似是本科生就会的东西但放到激光雷达感知的场景里需要你灵活变通而不是只会套公式。2.1 矩阵求导与刚体变换写错一个符号就全盘皆输在感知算法里矩阵求导最常见的场景就是点云配准和状态估计。ICP的每一步迭代都需要对误差函数求导如果你的Jacobian矩阵推导错了代码写得再漂亮也白搭。笔试时经常给一个简化版的ICP问题已知两组对应点求使误差最小的旋转矩阵和平移向量然后要求你写出求解步骤和闭式解。这类题的核心是理解SVD解法。你需要记住一个关键结论对于两组零均值化后的点云最优旋转矩阵可以通过计算协方差矩阵H ∑(p_i - p̄)(q_i - q̄)^T然后对H做SVD分解 H UΣV^T得到 R VU^T。注意这里有个坑如果det(VU^T) -1说明这个矩阵是反射矩阵需要取R V diag(1, 1, -1) U^T保证R是合法的旋转矩阵。这个细节很多人都栽过推导时一定要写清楚。矩阵求导这块笔试不要求你死记硬背向量对向量求导的完整张量形式但要求掌握链式法则和常用的二次型求导公式。比如∂(x^T A x)/∂x (A A^T)x这个公式在推导最小二乘解时处处用到。再比如对刚体变换T [R | t]的扰动模型左乘扰动模型∂(T p)/∂δξ [I₃ - (R p t)∧]这种形式在LOAM、LIO-SAM里到处都是笔试如果考到状态估计相关推导大概率会涉及。2.2 概率与滤波从贝叶斯到卡尔曼的工程直觉概率统计在感知笔试中的出镜率很高但考法非常工程化。比如给你一个激光雷达的测距噪声模型假设它服从高斯分布问你如何融合多个传感器的观测来估计目标位置。这种题表面考的是概率实际考的是贝叶斯估计和卡尔曼滤波的基本框架。一个经典考点是高斯分布的乘积。两个高斯分布的乘积仍然是一个高斯分布未归一化这个结论在融合多个传感器观测时非常有用。笔试可能会让你推导假设先验N(x|μ₁, Σ₁)和似然N(x|μ₂, Σ₂)求后验分布的均值和协方差。答案是 Σ (Σ₁⁻¹ Σ₂⁻¹)⁻¹μ Σ(Σ₁⁻¹μ₁ Σ₂⁻¹μ₂)。这就是卡尔曼滤波更新步的信息形式。如果你能顺势写出信息滤波和卡尔曼滤波的等价性这道题基本就稳了。另一个高频考点是栅格占用概率的更新。在Occupancy Grid Map里每个栅格用log-odds表示占用概率更新公式是 l_new l_old log(p(z|x) / (1 - p(z|x)))。笔试可能会让你推导为什么用log-odds而不是直接用概率答案是数值稳定性好、避免接近0或1时概率相乘下溢、支持多帧累加。这种题不考计算量考的是你是否真正理解算法设计的动机。2.3 最小二乘与鲁棒核真实点云没有完美对应提到最优化笔试的高频考点是最小二乘问题尤其是非线性最小二乘的求解框架。常见的出题方式是给你一个点云配准或者拟合问题让你写出目标函数、线性化方式、迭代求解步骤。这里要特别注意Gauss-Newton和Levenberg-Marquardt的区别——LN在增量方程中加入阻尼项λ当λ大时退化为一阶梯度下降λ小时接近GN。写出增量方程(H λI)Δx -g然后解释λ的调节策略是标准答案。鲁棒核函数也是一个容易考的点。因为真实点云中必然存在外点比如动态物体上的点、边缘反射异常的点如果使用标准的最小二乘一个离谱的外点可能直接带偏整个配准结果。Huber核、Cauchy核、Tukey核是常见的鲁棒核函数。笔试可能会让你画Huber损失函数的图像并解释它和L2损失的区别Huber在误差小于δ时按二次函数增长大于δ时按线性函数增长因此对外点有抑制作用。理解这个思想比背公式更重要。3. 点云处理核心题解析感知地基必须打牢对激光雷达感知算法工程师来说点云处理是吃饭的本事。速腾笔试在这一块的题量是最大的覆盖了滤波、分割、配准、特征提取、目标聚类等常见模块。这些知识在点云库PCL里都有现成实现但笔试不会让你调用库函数而是考你对算法原理和参数的把握。3.1 降采样与滤波为什么用体素不用均匀采样关于降采样笔试常考的点是体素滤波Voxel Grid Filter和均匀采样Uniform Sampling的区别。体素滤波的思路是把空间划分成固定边长的小立方体体素每个体素内用一个代表性点替代所有点代表点可以是体素中心也可以是体素内所有点的重心。这个操作同时实现降采样和去噪保持点云整体形状结构。笔试喜欢问的一个细节是体素边长怎么选。边长太大会丢失几何细节导致后续配准或检测精度下降边长太小降采样效果不明显计算量还是很大。经验法则是根据场景密度来定比如室外道路场景如果原始点云在10米处横向点间距大约2到3厘米那么体素边长设在0.05米到0.1米是较为均衡的选择。另一个细节如果用重心替代体素中心结果对噪声更稳健但计算量略大。PCL里默认用重心源码里就是这么实现的。还有一个常考的点是统计学滤波Statistical Outlier Removal原理是计算每个点到邻域的k个近邻的平均距离假设这个平均距离符合高斯分布距离均值超过μ ασ倍的点视为离群点并剔除。笔试如果考到这个大概率会问你α和k怎么选。k取20到50之间比较常见α取1.0到3.0之间α越大剔除越保守。这里有个工程经验对机械式激光雷达近距离的点云密度大远距离密度小用一个全局的α可能在近处误删点、在远处漏删点所以更适合在局部区域分别统计或者做自适应阈值。3.2 平面分割与地面提取RANSAC之外的第二手准备地面分割在结构化道路感知里几乎是必考的环节。笔试最常见的考法是让你写出RANSAC拟合平面的步骤并分析其参数设计。RANSAC的思路很朴素随机选三个点确定一个平面计算所有点到该平面的距离距离小于阈值的点作为内点统计内点数量重复多次取内点最多的平面作为最终结果。你需要写出完整步骤并说明distance threshold和迭代次数怎么定。但光会RANSAC还不够现在地面分割的主流方案是三点法或射线法。笔试如果加大难度可能给你一个不均匀分布的点云问RANSAC为什么效果差。答案在于激光雷达的点云近处密集、远处稀疏RANSAC对全局用一个距离阈值会导致远处地面上真实的点被当成外点而近处地面外的一些点可能被误认为内点。更稳健的方案是分块处理。把点云按方位角划分成若干扇形区域在每个区域内沿射线方向做地面拟合通过相邻点的坡度或高度差判断是否属于地面。这种方法对应了速腾、禾赛等雷达在道路场景中的常用处理策略。笔试你如果能把RANSAC的局限性和工程替代方案讲清楚会给阅卷人留下“有实战经验”的印象。3.3 配准与特征提取ICP和NDT的优劣分野配准在激光雷达感知中主要用于建图和定位。ICPIterative Closest Point是绝对的高频考点。笔试会让你写出ICP的完整流程找最近邻对应点、计算变换、变换点云、迭代直至收敛。然后会追问ICP的缺点是什么答案是依赖初始位姿、容易陷入局部最优、对噪声和外点敏感。NDTNormal Distribution Transform是另一个常考方法。它把空间划分成体素网格对每个体素内的点云用高斯分布建模配准时优化的是点在该体素分布下的概率。和ICP相比NDT对初始位姿的要求更低收敛更快但不适合动态场景。笔试如果问“场景中有大量动态物体怎么选配准方案”你需要从体素大小、动态物体滤除、多帧累积等角度展开而不是只背优缺点。关于特征提取速腾笔试考过2D和3D特征的对比。比如FPFHFast Point Feature Histogram是怎么提取的它为什么比PFH快。核心是FPFH对每个点计算简化特征直方图再在邻域内加权聚合时间复杂度从O(nk²)降到O(nk)。还会考到法向量估计PCA最小二乘拟合局部邻域的切平面最小特征值对应的特征向量就是法向量方向。这个考法很基础但你需要特别说明法向量方向的一致性处理否则后续特征计算会出问题。4. 深度学习与目标检测题从网络结构到工程落地的全方位考察除了传统点云算法深度学习在感知链路中的比重越来越大。速腾的笔试也会覆盖3D目标检测、BEV感知、多模态融合这些热点方向。这部分考的不是简单的know-how而是要求你能理解各种结构的适用场景和计算开销在工程上做平衡。4.1 从PointNet到PointNet排列不变性与局部特征PointNet是点云深度学习的开山之作笔试几乎必考。常考的是PointNet如何实现排列不变性——通过对称函数max pooling聚合所有点的特征得到一个全局特征向量。但你如果只说这点就太浅了面试官希望你能解释max pooling作为对称函数的信息损失全局max会丢失局部几何细节因此有了PointNet。PointNet的核心是分层抽取局部特征通过采样、分组、特征提取三个步骤完成对局部区域的建模。笔试可能让你画出PointNet的流程图并解释FPS最远点采样的作用。FPS保证采样点尽可能均匀覆盖空间避免特征集中在点云密集区域。这里有个细节FPS的复杂度是O(n²)在处理大规模点云时是性能瓶颈所以工程上常用随机采样代替FPS。BAT的很多优化里就做了这个替换。如果你在笔试时能点出这个计算复杂度的考虑说明你真的在工程里跑过模型。4.2 BEV检测与Transformer的崛起鸟瞰图的“降维打击”3D目标检测有一个重要分支是BEVBirds Eye View方法。把点云投影到鸟瞰视角在2D网格上做检测好处是目标尺寸、朝向在BEV空间里更容易建模而且天然适合和2D图像特征做融合。卷完Lift-Splat-Shoot、BEVFormer之后这个方向几乎成了自动驾驶感知的标配。笔试常考的是BEV表示和Range View表示的对比。BEV的优点是空间概念直观、目标尺度一致、跨传感器融合方便缺点是稀疏区域特征少需要专门的2D CNN或Transformer处理。Range View距离视图保留原始传感器结构计算量小但目标特征在图像空间里会被拉长变形3D框回归不稳定。你在答题时如果能结合速腾的激光雷达产品线来讲——比如不同线束对BEV分辨率的影响——会更有说服力。Transformer在感知中的应用也是热点。笔试可能会问自注意力机制的时间和空间复杂度或者问为什么在感知里要限制注意力范围。答案全局自注意力是O(N²)的计算和内存复杂度N是BEV网格数量对于100x100的网格就是10⁴个token计算量还很可观。工程上通过局部窗口注意力如Swin Transformer的窗口设计或者可变形注意力如Deformable DETR来降低复杂度只关注一部分稀疏的关键采样点。这类题的得分关键在于你是否有复杂度分析的意识而不只是复述概念。4.3 Anchor与NMS不要小看“过时”的组件现在很多新模型都声称去掉了Anchor但笔试依然会考Anchor的概念因为它是理解检测模型的基础。Anchor是预设的候选框需要设置尺度、长宽比、朝向角度。3D检测中的Anchor一个特殊之处是朝向角度的设置。因为BEV空间里物体朝向很重要如果朝向角预测错90度IoU可能很低但视觉上看着差异不大所以很多模型会额外预测角度残差。NMS非极大值抑制也是高频考点。笔试常问NMS的流程和缺点。标准NMS先按置信度排序保留最高分框删除与它IoU超过阈值的其他框然后迭代处理剩余框。缺点是需要手动调阈值拥挤场景下容易误删稀疏场景下可能漏检。改进方案有Soft-NMS按IoU降低分数而不是直接删除、DIoU-NMS考虑中心点距离等。虽然很多现代的端到端方法已经在用匈牙利匹配替代NMS但理解NMS仍然是基础功。5. 手撕代码题在有限时间内展现工程能力手撕代码是速腾笔试里最刺激的环节限时短、环境不友好拼的就是基本功和心态。根据社区反馈速腾的手撕题重点在C和基本数据结构的灵活使用偶尔会掺一些简单几何计算。这部分我重点说一下常见的题型和写法思路。5.1 必练的C基础智能指针与内存管理感知算法工程师写C不是写业务代码而是写性能敏感的计算模块。笔试手撕的时候如果题目要求实现一个点云容器你应该立刻想到用vector存储点坐标用shared_ptr或unique_ptr管理原始点云数据。裸指针不是不能写但一个不留意就是内存泄漏或悬垂指针。数据结构的代码要写得像背过一样流畅比如K近邻搜索的KD-Tree实现。笔试如果让你实现最近邻搜索你至少需要写出KD-Tree的构建和查询两个函数。构建部分就是递归切分按维度轮流选取中位数作为节点查询部分从根节点往下走维护一个当前最优距离回溯时判断搜索另一侧子空间是否有必要。这里有个关键优化优先访问更近一侧的子节点可以在回溯时减少大量无效访问。关于智能指针你会经常看到std::shared_ptr和std::unique_ptr的选择问题。点云数据共享的场景多用shared_ptr可以方便多个模块共享同一份数据省去拷贝但要注意循环引用问题用weak_ptr破环。笔试如果时间充裕可以在代码里故意用unique_ptr存储然后多处操作时用原始指针引用展示你对所有权语义的理解。这个细节在面试点评时会加分。5.2 几何计算与点云模拟高频手撕题实战解析几何计算在手撕题里也非常常见。比如给定一个平面方程Ax By Cz D 0计算点到平面的距离给定一个旋转矩阵求对应的欧拉角或者给两条直线判断是否相交并求交点。这些题本身不难但在限时环境下容易因为三角函数公式记错而卡壳所以要提前把常用公式烂熟于心。点云模拟题也值得重点准备。比如题目说“生成一个包含两个空洞的平面点云实现一个函数找出所有空洞区域”这种题看着唬人实际考察的还是聚类和邻域搜索。你可以用KD-Tree对每个点找近邻近邻数量显著低于平均值的点所在区域就是空洞边缘。还有一种常见考法是“给定无序点云按距离聚类”。可以用BFS或并查集实现两点间距离小于阈值就归为一类。这种题目一看就是工程场景简化来的考察的不是你知不知道一个现成的库函数而是能不能用基础数据结构解决一个看起来“自动”的问题。5.3 代码规范与注释关键变量要写清意图手撕代码时有一个很常见的问题代码写对了但变量命名随意注释缺失导致阅卷人很难快速理解你的思路。笔试环境一般不要求你写出生产级代码但至少要做到结构清晰、关键算法步骤有注释。我建议养成这样的代码风格先用注释写出整体流程比如“// Step 1: 构建KD-Tree”然后逐行实现。注释不需要写废话但要说清楚为什么这么做。比如“// 用中位数切分确保左右子树规模接近避免退化”就是一则有价值的注释。函数内部把核心中间结果用const声明能有效避免误修改。整体代码控制在百行左右宁可写得简洁清楚也不要把各种边界情况堆成一团。6. 常见失分点与备考路线比刷题更重要的底层逻辑最后这部分我想专门聊聊避坑和备考。因为我见过太多基础不错的同学笔试分数却很不理想问题往往不是知识不够而是踩了各种意想不到的坑。这里整理一份常见失分点和备考建议希望对你有实际帮助。6.1 笔试现场最容易踩的五个坑第一个坑是在推导题上跳步。数学推导题最忌讳一步得出答案中间省略关键过程。阅卷人看的是你推导的思路是否正确不是只看最终结果。比如SVD求解旋转矩阵你直接写R VU^T但没写为什么在det特别情况下要修正哪怕结果对了也可能被扣分。第二个坑是算法选型不考虑数据规模。比如点云聚类题你说用全局O(N²)遍历距离判断如果N是10万级别这个复杂度根本跑不动。你需要先分析数据规模再提出用KD-Tree或栅格哈希做加速。这个问题暴露的是工程意识不足不只是知识问题。第三个坑是深度学习题只答结论不答原因。比如问你为什么PointNet比PointNet效果好你只答“因为它有局部特征聚合”没有解释输入的置换不变性在局部和全局的差别没有分析不同采样策略的影响分数就上不去。第四个坑是手撕题不关注内存效率。有些题可以用递归解决但递归深度大了会栈溢出。比如并查集实现聚类时路径压缩写成递归版本可能在大规模点云上爆栈。用迭代式路径压缩才能保证稳健。第五个坑是时间分配失衡。有些人在选择题上死磕一道不确定的题结果后面的大题写不完。我的建议是单选题如果超过两分钟还没头绪先标记跳过把会做的题全部拿到分再回头处理剩余的题。最后至少留40分钟给手撕题因为它分值最高。6.2 考前一个月的高效准备节奏针对速腾这类激光雷达公司的感知算法岗我建议考前一个月按三个阶段安排第一周打基础把点云处理、矩阵论、概率论的核心公式和推导过一遍尤其是ICP、NDT、RANSAC、卡尔曼滤波这些高频考点做到能独立推导第二周攻深度学习和手撕题把PointNet、BEV检测、Transformer注意力、NMS的代码细节过一遍重点练KD-Tree、聚类、RANSAC、体素滤波的C实现第三周模考冲刺按真实笔试的时间限制做整套模拟题训练时间分配和抗压能力。一个容易被忽略的准备点是熟悉速腾的产品线。笔试不太会直接考“速腾RS-LiDAR-M1的视场角是多少”但如果你在答题的时候能结合固态激光雷达的扫描特性来讲点云稀疏区域的处理方法或者结合补盲雷达的安装位置来分析遮挡问题会让阅卷人觉得你真正理解了这个岗位的工作场景。这类“懂行业”的隐性加分项往往比多答对一道选择题更有价值。6.3 给下一届考生的一句实在话回头看这场笔试我最深的体会是它筛选的并不是“刷题量最大”的人而是“真正理解感知链路”的人。很多同学把精力花在背最新的SOTA模型结构上结果在基础推导题上栽了跟头也有一些同学把PCL、Open3D用得很熟练但手撕题要求脱离库写核心逻辑时却无从下手。速腾的题目设计明显在引导你关注算法底层的数学原理和工程约束这是做传感器算法必须有的素养。关于备考我的建议是不要只盯着“笔试通过”。把这场笔试当作一次系统梳理知识的机会把点云处理、状态估计、3D检测、C工程这几个方向都扎扎实实过一遍。无论你是否最终进入速腾这套能力体系在自动驾驶、机器人、工业视觉领域都是通用的硬通货。把基础打牢后面的路才会越走越宽。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价