4. 3D目标检测基础
在激光雷达3D目标检测中,模型最终要回答的问题并不只是“这里有没有目标”,而是“这是什么、在哪里、有多大、朝哪个方向、置信度多高”。因此,边界框表示、朝向角定义、类别体系、评价指标与任务分类共同构成了3D检测的“公共语言”。如果这些基础约定不统一,即使网络结构再先进,训练与评估也会出现系统性偏差。
一、3D边界框的表示方式
激光雷达点云中的目标通常用3D有向边界框(Oriented Bounding Box, OBB)描述。与2D图像中的水平矩形不同,3D框必须同时表达位置、尺寸和绕垂直轴的旋转。工程中最常见的表示有两类:
- 中心点+尺寸+朝向:
(x, y, z, l, w, h, yaw),其中x、y、z为框中心在激光雷达坐标系下的位置,l、w、h分别为长、宽、高,yaw为绕Z轴的偏航角。 - 角点表示:用8个角点或4个底面角点描述,便于计算IoU和可视化,但网络直接回归角点容易不稳定。
在KITTI、nuScenes、Waymo等数据集中,框的尺寸顺序和坐标系定义略有差异。例如KITTI相机坐标系下常用(h, w, l),而激光雷达坐标系下更习惯(l, w, h)。工程实现时必须在配置中显式声明,否则会出现“框看起来对、但长宽颠倒”的隐蔽错误。
# 典型3D框字段(激光雷达坐标系)
box = {
"center": [x, y, z], # 单位:米
"size": [l, w, h], # 长、宽、高
"yaw": theta, # 绕Z轴,单位:弧度
"class": "car",
"score": 0.92
}
二、朝向角与坐标系约定
朝向角是3D检测区别于2D检测的关键参数。车辆、行人、卡车等目标具有明确的前向,若朝向估计错误,预测框与真实框的IoU可能仍然较高,但下游的轨迹预测和碰撞判断会完全失效。常见定义包括:
- yaw:绕Z轴旋转,通常以激光雷达X轴为0°,逆时针为正。
- heading:目标前进方向与正北或X轴的夹角,常用于跟踪与预测模块。
- 观察角:在部分单目3D检测中使用,表示目标朝向与相机视线方向的夹角。
由于yaw具有周期性,直接回归角度会遇到“π与-π跳变”问题。工程上常采用两种策略:一是回归sin(yaw)和cos(yaw),把角度映射到连续二维向量;二是使用方向分类分支,先判断目标朝向区间,再回归区间内残差。这两种方式都能缓解边界跳变带来的损失震荡。
[-π, π),并在可视化工具中画出朝向箭头。很多“检测框位置正确但车头反向”的问题,都是因为标注与模型使用了不同的角度基准。
三、类别定义与检测任务分类
类别体系决定了模型的学习目标。自动驾驶场景中常见类别包括Car、Pedestrian、Cyclist、Truck、Bus、Trailer、Motorcycle等。不同数据集对类别的粒度不同:nuScenes包含23类,Waymo Open Dataset更细,KITTI则聚焦Car、Pedestrian、Cyclist三类。类别定义不仅影响分类头,还会影响尺寸先验、锚框设计和后处理阈值。
从任务形态看,3D检测可以分为以下几类:
| 任务类型 | 输入 | 输出 | 典型场景 |
|---|---|---|---|
| 单帧3D检测 | 单帧点云/图像 | 当前帧3D框 | 离线标注、单帧感知 |
| 多帧3D检测 | 连续多帧点云 | 融合后3D框 | 遮挡补全、速度估计 |
| 3D跟踪 | 多帧检测结果 | 带ID的轨迹 | 预测、规划输入 |
| 开放词汇检测 | 点云+文本 | 任意类别3D框 | 长尾目标、数据挖掘 |
此外,按输出形式还可分为锚框式、无锚式和查询式。锚框式依赖预设尺寸和朝向;无锚式直接预测中心与尺寸;查询式则通过一组可学习查询与BEV特征交互,逐渐成为主流范式。
四、评价指标:从IoU到mAP
3D检测的评价指标比2D更复杂,因为框的旋转和体积都会影响匹配。核心指标包括:
- 3D IoU:两个有向框的体积交并比,是判断预测是否命中真值的基础。
- BEV IoU:只在俯视图计算交并比,忽略高度差异,常用于KITTI评估。
- 精度与召回:在不同置信度阈值下统计正确检测与漏检。
- AP与mAP:对各类别PR曲线积分后取平均,是衡量整体检测质量的核心指标。
- NDS:nuScenes提出的综合指标,融合mAP、mATE、mASE、mAOE、mAVE、mAAE等多项误差。
需要特别注意的是,3D IoU对朝向非常敏感。两个中心重合、尺寸相同的框,若yaw相差90°,3D IoU可能接近0。因此,在评估时通常设置IoU阈值(如0.5或0.7)来判断是否为正样本。阈值越高,对定位和朝向精度的要求越严格。
五、案例:一个典型误检的复盘
某项目在KITTI验证集上mAP正常,但实车测试时频繁出现“车辆横穿”的误判。排查后发现,模型预测的3D框中心与尺寸都较准,但yaw存在约180°的系统性翻转。原因是训练时使用了相机坐标系下的观察角,而部署时按激光雷达坐标系解析,两者基准相差一个π。修复方式是在导出模型时统一转换到激光雷达坐标系,并在后处理中增加朝向一致性校验。
六、工程落地检查清单
- 确认数据集与模型使用同一坐标系,明确x、y、z方向及yaw基准。
- 确认尺寸顺序为
(l, w, h)还是(h, w, l),并在配置中固化。 - 对yaw进行归一化,优先使用sin/cos或方向分类+残差回归。
- 类别定义与标注规范对齐,避免“Car”与“Vehicle”混用。
- 评估时同时报告3D IoU、BEV IoU、mAP和朝向误差。
- 可视化时绘制朝向箭头,便于快速发现翻转和跳变问题。
掌握这些基础约定后,后续的体素化、BEV特征提取、锚框设计和损失函数才有统一的语义基础。3D检测的精度提升,往往不是从更复杂的网络开始,而是从把这些“看似简单”的表示问题彻底对齐开始。