1. 课程导入
在自动驾驶与机器人系统中,感知模块的核心任务之一,是回答“我周围有什么、它们在哪里、占据了多少空间”。传统二维目标检测只给出图像平面上的矩形框,语义分割只给出像素类别,二者都难以直接支撑三维空间中的避障、规划与控制。3D Occupancy空间感知正是为解决这一问题而提出的三维场景表示与预测方法:它把三维空间离散化为体素或查询点,并预测每个空间单元是否被占据、被什么语义类别占据,从而形成对场景几何与语义的统一描述。
一句话定义:3D Occupancy空间感知是以三维空间单元(体素、点或隐式查询)为基本单位,预测其占据状态与语义类别的感知范式,输出可直接用于规划控制的稠密三维场景表示。
核心原理:从“框”到“体”的表示升级
理解3D Occupancy,可以先对比三种典型输出。二维检测输出的是图像平面上的边界框;三维检测输出的是带朝向的三维框;而Occupancy输出的是空间中的占据栅格或隐式场。前两者依赖预定义类别与封闭集合,遇到异形障碍物、施工锥桶、散落货物、可行驶区域边界时容易漏检;Occupancy则把“是否被占据”作为更基础的监督信号,天然适合开放世界。
其典型流程可概括为:多传感器输入(环视相机、激光雷达、毫米波雷达)→ 图像/点云特征提取 → 二维到三维的空间提升(如LSS、BEVFormer、隐式射线采样)→ 三维体素或查询点特征聚合 → 占据与语义头预测 → 后处理与规划接口。关键参数包括体素分辨率、感知范围、类别集合、查询点数量与监督方式。分辨率越细,几何越精确,但显存与计算量也越高。
典型配置示例:
体素分辨率:0.4 m × 0.4 m × 0.4 m
感知范围:X[-50, 50] m,Y[-50, 50] m,Z[-5, 3] m
类别集合:可行驶区域、车辆、行人、骑行者、障碍物、植被、建筑
输出形式:occupancy logits + semantic logits
发展历程:从BEV到Occupancy的演进
3D Occupancy并非突然出现,而是感知表示不断升级的结果。早期方案以激光雷达点云聚类和栅格地图为主,几何准确但语义弱、成本高。随着环视相机普及,BEV(Bird's Eye View)感知成为主流,它把多相机图像统一到俯视平面,显著提升了多目标跟踪与规划友好性。但BEV本质仍是二维平面表示,对高度信息、悬空物体、立体结构表达不足。
2022年前后,Occupancy Network、TPVFormer、OccFormer等工作把表示从BEV平面推进到三维体素或三视图,标志着Occupancy成为研究热点。2023年以后,围绕稀疏查询、隐式场、时序融合、自监督与蒸馏的方案快速涌现,行业开始从“检测框”转向“稠密占据”。这一演进的核心驱动力,是自动驾驶对开放世界安全冗余的需求:规划模块需要知道“哪里不能走”,而不仅是“那里有一辆车”。
应用场景:不止于自动驾驶
3D Occupancy的第一大场景是自动驾驶,尤其是城市NOA与L4 Robotaxi。它能为规划模块提供可行驶区域、障碍物边界与高度信息,减少对高精地图的强依赖。第二大场景是机器人导航,包括仓储AGV、清洁机器人、配送机器人,Occupancy可帮助机器人在动态人群中安全穿行。第三类是具身智能与仿真,Occupancy可作为世界模型的中间表示,支撑抓取、操作与交互。第四类是工业检测与安防,例如堆垛体积测量、施工区域监控。
| 场景 | 核心需求 | Occupancy价值 |
|---|---|---|
| 城市自动驾驶 | 开放世界避障、无图化 | 稠密占据,覆盖异形障碍物 |
| 机器人导航 | 动态人群、狭窄通道 | 三维可通行空间判断 |
| 具身智能 | 操作与交互 | 空间几何与语义统一表示 |
| 工业安防 | 体积测量、区域入侵 | 三维占据变化检测 |
常见误区与学习建议
误区一:把Occupancy等同于三维检测。检测输出的是实例框,Occupancy输出的是空间占据,二者互补而非替代。
误区二:认为分辨率越高越好。分辨率提升会带来显存、带宽与延迟的平方级增长,必须与车端算力匹配。
误区三:忽视坐标系与标定。Occupancy对相机-激光-车体坐标系一致性极其敏感,标定误差会直接表现为体素错位。
学习建议:先建立“空间表示”直觉,再理解“二维到三维”的特征提升,最后进入模型训练与部署。每章都问三个问题:输入是什么、输出是什么、误差从哪里来。
本课程将围绕“表示—方法—工程—应用”四条主线展开。你将先掌握Occupancy的定义、坐标系与数据格式,再学习BEV、体素、稀疏查询等主流方法,随后进入训练技巧、部署优化与评测体系,最终理解它如何与规划控制、仿真闭环结合。完成本课程后,你应能独立设计一个Occupancy感知方案,并判断其在不同场景下的取舍。