当前位置:首页>自动驾驶>CenterPoint:自动驾驶感知的「盯中心」哲学

CenterPoint:自动驾驶感知的「盯中心」哲学

  • 2026-08-02 17:53:45
CenterPoint:自动驾驶感知的「盯中心」哲学
当激光雷达扫过一辆车,最该被记住的不是它有多长多宽,而是它在哪儿。

✦ ✦ ✦

为什么需要再换一种检测思路

在自动驾驶的世界里,激光雷达每秒会向周围抛出上百万个点。这些点汇成一片「点云」,构成车辆、行人、路面、树木的三维骨架。从这片骨架里,把车辆、行人准确「认」出来——这就是 3D 目标检测 要解决的事。

很长一段时间,主流做法是 Anchor-Based(基于锚框)。简而言之,提前在场景里撒一堆预设尺寸的"候选框",让神经网络去逐个判断:这个框里到底是车还是空地?框的位置和真实目标差多远?

这招在 2D 图像上很成功。但搬到 3D 点云里,麻烦立刻浮现——

1三维世界的物体朝向任意。一辆车可能正面朝你、也可能侧面朝你、甚至斜着停。预设锚框要么得穷举所有朝向(数量爆炸),要么只能用对齐的矩形框(贴合不准)。
2正负样本严重不均衡。一帧点云里几万个框,真正盖到物体的可能就几十个,剩下的全是"背景"。模型很容易学着学着就被背景带偏。
3超参数巨多。每种物体、每个数据集都要人工设计一套锚框尺寸和朝向,调起来又累又玄学。

2020 年,UT Austin 的 Tianwei Yin、Xingyi Zhou、Philipp Krähenbühl 三人在论文《Center-based 3D Object Detection and Tracking》里提出了一个干脆利落的替代方案——

别再纠结框了,先把物体的"中心点"找出来。

这就是 CenterPoint,后来发表在 CVPR 2021,一度是 nuScenes 和 Waymo 两大基准上的 SOTA。

✦ ✦ ✦

一句话核心思想:万物皆可"盯中心"

CenterPoint 的英文名已经把它的灵魂暴露无遗——Center Point。它的关键洞察是:

任何一辆车、一个行人、一辆自行车,在鸟瞰图(BEV,从上往下看)下,都对应一个唯一的中心点。

把这个中心点找出来,物体的"在哪儿"就解决了。至于"多大、朝哪、跑多快",都可以从中心点附近的特征回归出来。

这一思路并非凭空而来,它借鉴自 2D 检测领域的前作 CenterNet(注意是 2D 的那个,不是 3D 的)。CenterNet 已经证明:在图像里,把目标检测当成"关键点检测"问题,是行得通的。CenterPoint 干的就是把这套哲学搬进 3D 点云世界,并且针对点云的特殊性做了一系列改造。

✦ ✦ ✦

第一阶段:先找点,再补属性

CenterPoint 的整个流程分两阶段。先说第一阶段。

Step 1:把点云变成"鸟瞰图"

激光雷达给出的原始数据,是一团散乱的三维点。直接处理很难,于是先用一个 3D 骨干网络(VoxelNet、PointPillars 都行)把它"压缩"成二维。具体方式是:把空间切成小格子(体素 Voxel)或柱子(Pillar),对每个单元里的点做特征提取,最后沿高度方向拍扁,得到一张从上往下看的 BEV 特征图。

这一步相当于把一团 3D 点云,变成了一张"上帝视角的卫星图"。

Step 2:用关键点检测器找中心

有了 BEV 特征图,接下来就要在上面找物体的中心点。这里用一个标准的 2D CNN(比如 CenterNet 的检测头)做 heatmap(热力图)预测——网络对每个像素位置输出一个分数,表示"这里是不是某个物体的中心"。

为什么不直接用 anchor 检测?因为 anchor 本质上是在空间里预定义一组长方形;而关键点检测直接在 heatmap 上找峰值,哪个位置出现高响应,哪里就是物体的中心。整套流程完全没有预设框,Anchor-Free。

Step 3:从中心点回归出全部属性

找到中心点只是开始。接下来,网络从中心点对应的特征向量,回归出物体的其余属性:

●3D 尺寸(长宽高)
●朝向角(车辆是正面、侧面还是斜着)
●速度(向哪个方向、跑多快,用于跟踪)
●3D 偏移(中心点在 BEV 上的小幅修正,帮助对齐)

至此,一个完整的 3D 边界框就生成了:位置(中心点)+ 尺寸 + 朝向,框出物体在三维空间里的精确形态。

用一句话概括第一阶段:别画框,找点;找到点,属性全有。

✦ ✦ ✦

第二阶段:把"点"抠出来再精修一遍

第一阶段已经能输出像样的 3D 框了。但作者认为还有提升空间,于是加了第二阶段。

第二阶段的逻辑非常巧妙——把预测出来的 3D 边界框的顶点,当作额外的"关键点",再去原图特征里抠一遍。

具体来说:根据第一阶段预测的 3D 框,可以算出它在 BEV 上的 4 个角点(顶视图看是矩形)。把这 4 个顶点 + 1 个中心点,共 5 个位置,从骨干网络输出的 BEV 特征图里双线性插值抠出对应的特征向量;把这些特征送进一个轻量级 MLP,再做一次残差回归——预测尺寸、朝向、速度的微调量,叠加到第一阶段的结果上。

为什么这么有效?因为 3D 物体的角点本身包含极强的几何信息:一辆斜着停的车,它的 4 个顶点位置直接编码了它的朝向和尺寸。把这些关键点的特征单独喂给网络,相当于给模型一次"重新审视边界"的机会。尤其在远距离、小目标、遮挡场景下,第二阶段带来的精度增益非常明显。

至此,整个 CenterPoint 流程走完:点云 → BEV 特征 → 中心点 heatmap → 第一阶段 3D 框 → 第二阶段精修 3D 框。

✦ ✦ ✦

意外彩蛋:跟踪白送一个

CenterPoint 还有个"顺带手"的能力——3D 多目标跟踪,几乎不花额外成本。

因为它的预测里天然包含速度。既然知道每个物体在 BEV 上往哪个方向跑,那么相邻两帧的同一辆车的轨迹,就是简单的物理外推:上一帧位置 + 速度 × 时间 ≈ 这一帧位置。

于是 CenterPoint 的跟踪策略简洁到离谱:

1把上一帧所有检测框按速度推到当前时刻;
2对当前帧的检测结果,做贪心最近邻匹配——和哪个预测位置最近,就是同一辆车;
3匹配上就续接轨迹,没匹配上的开新轨迹,长期没匹配上的删除。

整个跟踪流程不需要额外的 Re-ID 网络,不需要复杂的关联算法,更不需要后处理优化。这一节在论文里只占很小篇幅,但把 3D tracking 这个本来挺复杂的问题,简化成了中学几何题。

✦ ✦ ✦

战绩说话:双榜 SOTA

光说思路不够,还得看战绩。论文里给出的关键数字:

在 nuScenes 数据集(自动驾驶主流基准之一)上——

🎯 核心指标

3D 检测:65.5 NDS(nuScenes Detection Score,综合指标),单模型 SOTA3D 跟踪:63.8 AMOTA,同样是单模型 SOTA实时版:检测+跟踪端到端跑 30 FPS,仍能拿到 48.3 mAP / 54.2 AMOTA

在 Waymo Open Dataset 上——

🏆 Waymo 战绩

CenterPoint 大幅超过此前所有单模型方法,登上纯 LiDAR 提交榜单第一名。

这两个数据集是 3D 感知领域最权威的标尺。能在两个榜单上同时登顶,本身就是这套"以点代框"哲学成立的最有力证据。

✦ ✦ ✦

为什么它能成

回头看,CenterPoint 的成功可以归结为三个关键判断:

1选对了表达方式。用中心点替代 anchor,绕开了 3D 朝向穷举、超参数爆炸、样本不均衡三大顽疾,整个流程变得清爽。
2选对了降维空间。把 3D 问题降到 BEV 上处理,让 2D 卷积的成熟工具箱直接复用,效率远高于 3D 卷积。
3保留了"二次审视"的余地。第二阶段的角点特征精修,把 anchor-free 方法在小目标、远距离上的天然短板补齐了,精度直追甚至超过更重的两阶段 anchor-based 方法。

✦ ✦ ✦

它的遗产

CenterPoint 之后,"center-based" 几乎成了 3D 检测的默认起点。无论后续的 CenterPoint++、SMOKE、PolarMix,还是大量商用感知方案,都能看到它的影子。在自动驾驶量产项目中,它至今仍是许多团队的强基线(strong baseline)——你提出新方法,先打过 CenterPoint 才有说服力。

更深远的影响或许在于:它把 3D 物体检测这件事,从"框的工程"重新拉回"点的哲学"。就像论文开头那句精炼的总结——

三维世界里的物体,本质上就是一些点。

📌 参考文献Yin, T., Zhou, X., & Krähenbühl, P. (2021). Center-based 3D Object Detection and Tracking. CVPR 2021. arXiv:2006.11275.开源代码:github.com/tianweiy/CenterPoint

如果觉得有帮助,点赞/在看/分享是对原创最大的支持 🙏关注获取更多 AI 技术深度解读

最新文章

随机文章