1. 课程导入

在自动驾驶、机器人导航与三维场景理解领域,Occupancy 网络(占据网络)已经成为继 BEV 感知之后最具代表性的技术方向之一。它的核心思想并不复杂:让神经网络直接回答三维空间中每一个体素是否被物体占据、被什么语义类别占据,从而把传统的“检测框 + 地图”范式,推进到“稠密三维语义场”的范式。本课程将围绕 Occupancy 网络的训练与部署工程展开,从原理、数据、模型、训练、优化到车端部署,形成一条完整的工程链路。

一、Occupancy 网络的定义

Occupancy 网络是一类以三维体素或隐式场为输出表示的感知模型。给定多视角相机图像、激光雷达点云或两者融合的输入,网络输出一个规则的三维网格 O ∈ R^(X×Y×Z×C),其中每个体素包含占据概率与语义类别。与 3D 目标检测只输出有限个边界框不同,Occupancy 网络输出的是对连续空间的稠密离散化描述,因此能够表达任意形状的障碍物、不规则路面、悬空结构以及被遮挡区域。

一句话理解:检测网络回答“那里有什么物体”,Occupancy 网络回答“空间中的每个位置是否可通行、属于什么”。

从数学形式看,Occupancy 网络通常建模为条件概率 P(o_i | I_1...I_n),其中 o_i 表示第 i 个体素的状态。训练时常用交叉熵损失或焦点损失,并配合语义分割头实现多类别输出。推理时通过阈值化得到占据栅格,再用于规划控制模块的碰撞检测与可通行区域判断。

二、发展背景与技术演进

Occupancy 网络的出现并非偶然,而是感知技术演进的必然结果。早期自动驾驶感知以 2D 检测为主,随后发展到 3D 检测与 BEV 感知。但 BEV 仍然依赖栅格化投影,对高度信息和悬空物体表达不足。2022 年前后,Tesla、地平线、小鹏等企业相继提出 Occupancy 方案,标志着感知从“框”走向“场”。

  • 2018–2020:BEV 感知兴起,LSS、BEVDet 等方法将图像特征投影到俯视平面。
  • 2021–2022:BEVFormer、PETR 等引入 Transformer,提升多视角融合能力。
  • 2022–2023:Occupancy 网络爆发,TPVFormer、OccNet、SurroundOcc 等方案相继发布。
  • 2023 至今:从纯视觉 Occupancy 走向多模态融合,并强调车端实时部署与稀疏化加速。

这一演进背后的驱动力有三点:一是数据规模与算力提升,使稠密三维监督成为可能;二是规划控制对通用障碍物表达的需求增强;三是芯片算力与稀疏卷积、量化技术的成熟,让 Occupancy 具备量产部署条件。

三、典型应用场景

Occupancy 网络的价值在于其通用性与稠密性,因此应用场景非常广泛。下表列出主要场景与对应关注点:

应用场景核心需求典型输出
自动驾驶障碍物感知通用障碍物、异形物体语义占据栅格
可通行区域判断路面、路沿、悬空物可行驶区域体素
机器人导航室内外三维建图占据地图
自动泊车低矮障碍、车位边界局部占据场
仿真与数据闭环场景重建、回放稠密语义场

在自动驾驶中,Occupancy 网络最直接的价值是解决“长尾障碍物”问题。传统检测器对训练集中未出现的异形物体容易漏检,而 Occupancy 网络只需判断体素是否被占据,不依赖物体类别先验,因此鲁棒性更强。

四、整体学习路线图

本课程共 30 章,围绕“原理—数据—模型—训练—部署”五条主线展开。下面用一张结构图展示整体学习路线,帮助建立全局认知。

Occupancy 网络训练与部署工程 · 学习路线图 原理基础 定义 · 表示 · 演进 数据工程 采集 · 标注 · 增强 模型结构 2D→3D · 融合 · 头 训练优化 损失 · 采样 · 蒸馏 部署与工程落地 量化 · 稀疏 · 车端推理 阶段目标 ① 理解 Occupancy 表示与 BEV 的本质差异 ② 掌握数据标注规范与体素监督生成方法 ③ 能独立搭建并训练一个 Occupancy 网络 ④ 完成量化、稀疏化与车端部署验证

从上图可以看到,课程并非线性罗列,而是以“原理—数据—模型—训练—部署”五条主线并行推进,最终汇聚到工程落地。每一章都会围绕一个具体工程问题展开,例如体素分辨率如何选择、稀疏卷积如何加速、量化后精度如何保持等。

五、常见误区与学习建议

误区一:把 Occupancy 网络等同于 3D 目标检测。实际上 Occupancy 输出的是稠密语义场,不依赖物体实例,表达能力更强但计算量更大。

误区二:认为体素分辨率越高越好。分辨率提升会带来立方级显存增长,必须结合感知距离与部署算力权衡。

误区三:忽视数据标注质量。Occupancy 对标注一致性极其敏感,体素级标注误差会直接导致训练发散。

学习建议:先建立“空间离散化 + 语义分类”的直觉,再动手复现一个最小 Occupancy 网络。建议从 nuScenes 或 Occ3D 数据集入手,先跑通训练与可视化,再逐步深入稀疏化与部署优化。

# 典型 Occupancy 训练配置片段
voxel_size: [0.4, 0.4, 0.4]      # 体素分辨率(米)
pc_range: [-40, -40, -1, 40, 40, 5.4]
num_classes: 18                   # 语义类别数
loss:
  ce_weight: 1.0
  lovasz_weight: 0.5
optimizer:
  type: AdamW
  lr: 2e-4
  weight_decay: 0.01

掌握 Occupancy 网络,不仅是学会一个模型,更是理解自动驾驶感知从“稀疏框”走向“稠密场”的范式转变。接下来的章节将逐层拆解这条工程链路,帮助你把原理真正落到可训练、可部署的系统中。