一、论文基本信息
| 项目 | 内容 |
|---|---|
| 标题 | Center-based 3D Object Detection and Tracking |
| 作者 | Tianwei Yin, Xingyi Zhou, Philipp Krähenbühl |
| 单位 | UT Austin |
| 发表 | arXiv 2020(NeurIPS 2020 nuScenes挑战赛 Top 4中3个方案采用) |
| 代码 | https://github.com/tianweiy/CenterPoint |
| 关键词 | 3D目标检测、3D目标跟踪、中心点表示、点云、自动驾驶 |
二、研究动机与核心思想
2.1 核心问题
3D世界中的物体不遵循任何特定朝向,而基于框(anchor)的检测器难以枚举所有朝向,也难以用轴对齐框去拟合旋转物体。
2.2 Anchor-based方法的困境
| 问题 | 说明 |
|---|---|
| 朝向枚举困难 | 需要为每个朝向设置不同anchor模板,计算负担大 |
| 轴对齐框不适配 | 3D旋转框无法用2D轴对齐框良好近似 |
| IoU阈值敏感 | 训练依赖2D Box IoU进行正负样本分配,不同类别/数据集需不同阈值 |
| 转弯场景失效 | 车辆左转时,anchor-based方法难以检测旋转物体(见Figure 1) |
2.3 核心洞察
将3D物体表示为"点"(中心点),而非"框"。
- 点没有内在朝向 → 大幅减少搜索空间
- 点表示天然旋转不变 → backbone学习旋转等变性
- 点表示简化跟踪 → 轨迹就是时空中的路径
三、方法详解
3.1 整体框架
点云 → [3D Backbone (VoxelNet/PointPillars)] → BEV特征图M ↓ [第一阶段:中心点检测头] - 热力图(中心点) - 尺寸/高度/朝向/速度回归 ↓ [第二阶段:精炼] - 5个表面中心点特征提取 - IoU引导置信度 + 框回归精炼 ↓ [跟踪:贪心最近点匹配]3.2 第一阶段:中心点检测
① 中心热力图头(Center Heatmap Head)
- 输出KKK通道热力图Y^∈[0,1]W×H×K\hat{Y} \in [0,1]^{W \times H \times K}Y^∈[0,1]W×H×K(KKK为类别数)
- 训练目标:在每个GT物体中心的BEV投影处渲染2D高斯核
- 使用Focal Loss监督
关键改进 — 增大高斯半径:
σ=max(f(w,l), τ),τ=2\sigma = \max(f(w, l),\ \tau), \quad \tau = 2σ=max(f(w,l),τ),τ=2
原因:BEV俯视图中物体比图像中更稀疏,标准CenterNet的高斯半径导致监督信号过于稀疏。增大半径使模型获得更密集的监督。
② 回归头(Regression Heads)
在中心点特征处回归以下属性:
| 属性 | 维度 | 说明 |
|---|---|---|
| 亚体素偏移ooo | R2\mathbb{R}^2R2 | 补偿体素化和stride引入的量化误差 |
| 离地高度hgh_ghg | R\mathbb{R}R | 补充BEV投影丢失的高程信息 |
| 3D尺寸sss | R3\mathbb{R}^3R3 | 回归对数尺寸(处理不同尺度) |
| 朝向(sinα,cosα)(\sin\alpha, \cos\alpha)(sinα,cosα) | R2\mathbb{R}^2R2 | 连续回归目标 |
- 每个属性使用独立的卷积分支
- 训练时仅在GT中心位置用L1 Loss监督
③ 速度头(Velocity Head)与跟踪
- 预测2D速度v∈R2v \in \mathbb{R}^2v∈R2:当前帧与上一帧物体位置差
- 需要两帧输入(当前帧 + 前一帧)
- 同样用L1 Loss监督
跟踪算法(极简):
- 用负速度将当前帧检测中心投影回上一帧
- 与已有轨迹进行最近距离贪心匹配
- 未匹配轨迹保留T=3T=3T=3帧后删除
- 无需卡尔曼滤波器,跟踪仅需1ms
3.3 第二阶段:精炼(Two-Stage Refinement)
动机
- 第一阶段所有属性都从中心点特征推断
- 但传感器通常只能看到物体侧面,中心点可能无观测
方法
第一阶段预测的3D框 → 提取5个点的特征 → MLP → 置信度分数 + 框精炼 ↑ 框中心 + 4个外侧面中心 (顶面和底面中心与框中心在BEV重合)- 从backbone的BEV特征图MMM中用双线性插值提取特征
- 拼接5个点特征 → 共享2层MLP → 两个分支
置信度目标(IoU引导)
I=min(1, max(0, 2×IoUt−0.5))I = \min(1,\ \max(0,\ 2 \times \text{IoU}_t - 0.5))I=min(1,max(0,2×IoUt−0.5))
Lscore=−Itlog(I^t)−(1−It)log(1−I^t)L_{\text{score}} = -I_t \log(\hat{I}_t) - (1-I_t)\log(1-\hat{I}_t)Lscore=−Itlog(I^t)−(1−It)log(1−I^t)
最终置信度
Q^t=Y^t⋅I^t\hat{Q}_t = \sqrt{\hat{Y}_t \cdot \hat{I}_t}Q^t=Y^t⋅I^t
(第一阶段类别分数与第二阶段IoU分数的几何平均)
3.4 网络架构细节
| 组件 | 结构 |
|---|---|
| 第一阶段共享层 | 3×3 Conv + BN + ReLU |
| 各回归分支 | 2个 3×3 Conv(BN + ReLU) |
| 第二阶段MLP | 2层共享MLP(BN + ReLU + Dropout 0.3)→ 2个3层FC分支 |
3.5 训练配置
| 项目 | nuScenes | Waymo |
|---|---|---|
| 检测范围 | [−51.2,51.2]2[-51.2, 51.2]^2[−51.2,51.2]2m,[−5,3][-5, 3][−5,3]m | [−75.2,75.2]2[-75.2, 75.2]^2[−75.2,75.2]2m,[−2,4][-2, 4][−2,4]m |
| Voxel大小 | 0.1×0.1×0.2 m | 0.1×0.1×0.15 m |
| Pillar大小 | 0.2×0.2 m | 0.32×0.32 m |
| 优化器 | AdamW | AdamW |
| 学习率 | 1e-3 (one-cycle) | 3e-3 (one-cycle) |
| Batch Size | 16 (4×V100) | — |
| Epochs | 20 | 30 |
| 数据增强 | 翻转 + 缩放 + 旋转 + GT采样 | 翻转 + 缩放 + 旋转 |
| 二阶段采样 | 128个框(1:1正负比,IoU>0.55为正) | 同左 |
四、实验结果
4.1 Waymo测试集 — 3D检测
| 方法 | Vehicle mAPH (L2) | Pedestrian mAPH (L2) |
|---|---|---|
| PointPillars | 55.1 | 45.1 |
| PPBA | 59.1 | 55.8 |
| RCD | 64.7 | — |
| CenterPoint | 71.8 | 66.4 |
超越此前所有方法:车辆 +7.1 mAPH,行人 +10.6 mAPH
4.2 nuScenes测试集 — 3D检测
| 方法 | mAP↑ | NDS↑ | PKL↓ |
|---|---|---|---|
| PointPillars | 40.1 | 55.0 | 1.00 |
| CBGS (2019冠军) | 52.8 | 63.3 | 0.77 |
| CenterPoint | 58.0 | 65.5 | 0.69 |
超越去年冠军 +5.2 mAP, +2.2 NDS
4.3 3D跟踪
Waymo测试集:
| 方法 | Vehicle MOTA (L2) | Pedestrian MOTA (L2) |
|---|---|---|
| AB3D (官方基线) | 40.1 | 37.7 |
| CenterPoint | 59.4 | 56.6 |
超越官方基线 +19.4 / +18.9 MOTA
nuScenes测试集:
| 方法 | AMOTA↑ | IDS↓ |
|---|---|---|
| AB3D | 15.1 | 9027 |
| Chiu et al. (2019冠军) | 55.0 | 950 |
| CenterPoint | 63.8 | 760 |
超越去年冠军 +8.8 AMOTA,跟踪仅需1ms
4.4 推理速度
| 数据集 | 速度 |
|---|---|
| Waymo | 11 FPS |
| nuScenes | 16 FPS |
五、关键消融实验
5.1 Center-based vs Anchor-based(核心对比)
Waymo验证集:
| Backbone | 方法 | Vehicle | Pedestrian | 平均 mAPH |
|---|---|---|---|---|
| VoxelNet | Anchor-based | 66.1 | 54.4 | 60.3 |
| VoxelNet | Center-based | 66.5 | 62.7 | 64.6 (+4.3) |
| PointPillars | Anchor-based | 64.1 | 50.8 | 57.5 |
| PointPillars | Center-based | 66.5 | 57.4 | 62.0 (+4.5) |
仅切换表示方式(anchor→center),即获得3-4 mAP提升!
5.2 不同朝向角度的性能(Waymo验证集)
| 方法 | 车辆 0°-15° | 车辆 30°-45° | 行人 0°-15° | 行人 30°-45° |
|---|---|---|---|---|
| Anchor-based | 67.1 | 45.4 | 55.9 | 26.5 |
| Center-based | 67.8 | 51.6 (+6.2) | 64.0 | 35.7 (+9.2) |
对大角度旋转物体,center-based优势极为显著。
5.3 一阶段 vs 二阶段
| 配置 | Vehicle | Pedestrian | 额外耗时 |
|---|---|---|---|
| 一阶段 | 66.5 | 62.7 | — |
| +框中心特征 | 68.0 | 64.9 | +5ms |
| +表面中心特征 | 68.3 | 65.3 | +6ms |
| 密集采样(6×6) | 68.2 | 65.4 | +8ms |
5个表面中心点特征即可达到与密集采样相当的性能,且更快更简单。
5.4 跟踪器对比(nuScenes验证集)
| 检测器 | 跟踪器 | AMOTA | 跟踪耗时 |
|---|---|---|---|
| CenterPoint | Point (本文) | 63.7 | 1ms |
| CenterPoint | Kalman Filter | 60.0 | 73ms |
| CBGS | Point | 59.8 | 1ms |
| CBGS | Kalman Filter | 56.1 | 73ms |
简单的最近点匹配全面优于卡尔曼滤波器,且快73倍。
六、与SECOND的关系
CenterPoint论文明确引用SECOND作为其3D backbone之一(VoxelNet/SECOND):
| 对比维度 | SECOND (2018) | CenterPoint (2020) |
|---|---|---|
| 检测表示 | Anchor-based | Center-based (anchor-free) |
| 检测头 | RPN + 固定anchor | 热力图关键点检测 |
| 角度回归 | 正弦损失 + 方向分类器 | sin/cos连续回归 |
| 跟踪 | 无 | 速度预测 + 最近点匹配 |
| 二阶段 | 无 | 5点特征精炼 |
| 数据集 | KITTI | Waymo + nuScenes |
| 核心贡献 | 稀疏卷积加速 | 表示方式革新 |
CenterPoint可视为在SECOND等backbone之上,用更优的输出表示(点代替框)进一步提升性能。
七、论文核心贡献总结
- ✅提出center-based 3D检测框架:将3D物体表示为点而非框,天然旋转不变,减少搜索空间
- ✅设计轻量二阶段精炼:仅提取5个表面中心点特征,+6ms即获+2 mAP提升
- ✅极简跟踪算法:速度预测 + 贪心最近点匹配,1ms完成,无需卡尔曼滤波
- ✅SOTA性能:Waymo和nuScenes双榜第一,NeurIPS 2020挑战赛Top4中3个方案采用
八、局限性与讨论
| 局限 | 说明 |
|---|---|
| nuScenes二阶段无提升 | 32线LiDAR仅30k点/帧,点太稀疏限制了精炼效果 |
| 行人检测受限于体素分辨率 | PointPillars中行人通常仅占1个像素 |
| 依赖BEV投影 | 仍丢失部分3D几何信息(相比全3D方法) |
| 未利用图像信息 | 纯LiDAR方法,未融合相机语义(后续工作可改进) |
九、一句话总结
CenterPoint证明了一个简洁而深刻的洞察:在3D世界中,用"点"表示物体比用"框"更自然、更高效、更准确——检测是找中心点,跟踪是连点成线。