1. 课程导入
在自动驾驶、机器人、AR/VR、工业检测与空间智能等场景中,系统要理解的不再只是“图像里有什么”,而是“物体在三维空间中的位置、姿态、尺寸、运动趋势以及彼此关系”。这正是3D感知要解决的问题。它把相机、激光雷达、毫米波雷达、IMU、GNSS等传感器采集到的原始信号,转化为可供规划、控制、交互使用的三维世界表示。与2D视觉相比,3D感知多了一个关键维度——深度与空间几何,也因此对数据、标注、评测提出了更工程化、更严格的要求。
1.1 3D感知的定义与任务边界
从工程视角看,3D感知可以定义为:从多模态传感器数据中估计三维空间中目标、场景与自车状态的几何与语义属性,并输出结构化结果的过程。它的输出通常包括3D边界框、类别、朝向角、速度、点云分割掩码、占据栅格、车道线、可行驶区域、深度图、光流与场景流等。
3D感知的任务边界需要明确:它负责“感知世界”,不直接负责路径规划与车辆控制;它依赖标定、同步与坐标系转换,但不等于传感器驱动;它输出带不确定性的估计结果,而不是绝对真值。常见任务可归纳为:
- 3D目标检测:输出目标的三维框、类别、朝向与速度,是自动驾驶感知的核心任务之一。
- 3D语义/实例分割:对点云或体素进行逐点/逐体素分类,区分道路、建筑、植被、行人等。
- 深度估计与场景流:估计每个像素或点的深度及运动矢量,支撑避障与动态分析。
- 占据预测与BEV感知:在鸟瞰图或体素空间统一表达静态与动态环境,便于下游规划使用。
- 多传感器融合:融合相机、LiDAR、Radar等模态,提升鲁棒性与远距离感知能力。
1.2 数据集与Benchmark在算法研发中的核心作用
在3D感知研发中,数据集与Benchmark不是“附属材料”,而是驱动算法迭代的基础设施。数据集提供可学习的监督信号与可复现的实验条件;Benchmark则提供统一的任务定义、评价指标与排行榜,使不同方法能够在同一尺度上比较。
它们的作用可以概括为四点:第一,定义问题边界,例如KITTI定义了车载3D检测的经典设定;第二,提供训练与验证数据,包括点云、图像、标定参数与标注;第三,通过指标暴露模型短板,如远距离目标、遮挡、小目标、类别不平衡;第四,推动工程规范,如数据版本管理、标注一致性、评测可复现性。
核心认知:算法决定上限,数据与评测决定你能否稳定逼近上限。没有可靠的数据集与Benchmark,模型改进往往无法被可信地验证。
1.3 从数据到评测的工程链路
一个完整的3D感知研发闭环,通常包含数据采集、标定与同步、标注、数据清洗、训练、验证、测试与回归。下图展示了这一链路的核心结构:传感器数据经过时空对齐后进入标注与数据集构建,再用于模型训练,最终通过Benchmark指标反馈到数据与模型迭代。
1.4 常见误区与复盘视角
初学者在3D感知与Benchmark工程中常陷入以下误区:
- 只看模型结构,不看数据质量。标注噪声、标定误差、类别不平衡会直接限制模型上限。
- 把公开数据集分数等同于实际能力。公开Benchmark与真实ODD存在域差异,排行榜高不代表量产可靠。
- 忽略评测协议细节。不同IoU阈值、距离划分、难度等级会显著改变指标含义。
- 缺少回归测试。模型更新后未在固定测试集上回归,容易引入隐蔽退化。
- 数据泄漏。训练集与验证集场景重叠,会导致指标虚高。
排障提示:当模型指标异常时,优先检查数据管线:时间同步是否漂移、标定是否过期、标注类别是否一致、测试集是否被污染。很多“模型问题”本质是数据与评测问题。
1.5 本课程知识框架与学习目标
本课程围绕“数据—模型—评测—工程化”四条主线展开,共30章。你将系统学习3D感知任务定义、主流数据集、标注与格式、Benchmark指标、评测工具链、误差分析、数据闭环与工程实践。
| 模块 | 核心内容 | 关键产出 |
|---|---|---|
| 基础与任务 | 3D感知定义、坐标系、任务边界、传感器特性 | 建立三维感知问题框架 |
| 数据集与标注 | KITTI、nuScenes、Waymo、ONCE等;标注规范与格式 | 能读懂并构建3D数据集 |
| Benchmark与指标 | mAP、NDS、IoU、精度/召回、时延与鲁棒性 | 能正确解读与设计评测 |
| 工程与闭环 | 数据版本、回归测试、误差分析、数据闭环 | 能搭建可复现评测流水线 |
学习目标可以具体化为:第一,能够清晰描述3D感知各任务输入输出与评价方式;第二,能够独立完成数据集加载、可视化与标注检查;第三,能够使用主流Benchmark指标评测模型并定位问题;第四,能够设计数据闭环与回归测试流程,支撑算法持续迭代。
# 典型3D感知评测流程(伪代码)
load_dataset(config) # 加载点云、图像、标定与标注
build_dataloader() # 划分训练/验证/测试
train_model() # 训练3D检测或分割模型
run_inference(test_split) # 在固定测试集推理
evaluate(pred, gt, protocol) # 按Benchmark协议计算指标
analyze_errors() # 漏检、误检、定位偏差分析
update_data_and_model() # 数据补充与模型迭代
学习建议:每学完一个数据集或Benchmark,都尝试回答三个问题:它定义了什么任务?它用什么指标?它的评测协议有哪些边界条件?长期坚持,你会形成对3D感知评测的系统判断力。
3D感知的竞争力,最终体现在“数据—模型—评测”闭环的效率与可靠性上。掌握数据集与Benchmark评测工程,意味着你不仅能训练模型,更能证明模型有效、定位模型缺陷,并推动其走向真实场景。