4. 3D目标检测基础

在激光雷达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),把角度映射到连续二维向量;二是使用方向分类分支,先判断目标朝向区间,再回归区间内残差。这两种方式都能缓解边界跳变带来的损失震荡。

实践建议:在数据加载阶段统一将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)来判断是否为正样本。阈值越高,对定位和朝向精度的要求越严格。

3D目标检测基础要素关系 3D有向边界框 (x, y, z, l, w, h, yaw) 位置 · 尺寸 · 朝向 位置 (x, y, z) 激光雷达坐标系中心 尺寸 (l, w, h) 长 · 宽 · 高 朝向 yaw 绕Z轴旋转角 类别 class Car / Ped / Cyclist 评价指标:3D IoU · BEV IoU · AP · mAP · NDS 朝向敏感 · 阈值匹配 · 多类别平均 任务分类 单帧 / 多帧检测 3D跟踪 / 开放词汇 锚框 / 无锚 / 查询式 坐标系约定 LiDAR / 相机 / 世界 yaw 基准与正方向 尺寸顺序 l,w,h

五、案例:一个典型误检的复盘

某项目在KITTI验证集上mAP正常,但实车测试时频繁出现“车辆横穿”的误判。排查后发现,模型预测的3D框中心与尺寸都较准,但yaw存在约180°的系统性翻转。原因是训练时使用了相机坐标系下的观察角,而部署时按激光雷达坐标系解析,两者基准相差一个π。修复方式是在导出模型时统一转换到激光雷达坐标系,并在后处理中增加朝向一致性校验。

常见误区:只关注mAP,不检查朝向误差。对于规划控制模块,朝向错误比位置偏移更危险。建议在评估中单独统计yaw误差分布,并设置朝向一致性阈值。

六、工程落地检查清单

  1. 确认数据集与模型使用同一坐标系,明确x、y、z方向及yaw基准。
  2. 确认尺寸顺序为(l, w, h)还是(h, w, l),并在配置中固化。
  3. 对yaw进行归一化,优先使用sin/cos或方向分类+残差回归。
  4. 类别定义与标注规范对齐,避免“Car”与“Vehicle”混用。
  5. 评估时同时报告3D IoU、BEV IoU、mAP和朝向误差。
  6. 可视化时绘制朝向箭头,便于快速发现翻转和跳变问题。

掌握这些基础约定后,后续的体素化、BEV特征提取、锚框设计和损失函数才有统一的语义基础。3D检测的精度提升,往往不是从更复杂的网络开始,而是从把这些“看似简单”的表示问题彻底对齐开始。