1. Occupancy网络概述:什么是3D Occupancy网络?为什么需要它?它与BEV感知、激光雷达点云分割的区别与联系

1.1 从一个真实场景说起

我记得几年前在做一个园区无人配送项目时,遇到过一个特别头疼的问题。车子在路口等红灯,旁边停着一辆大货车。BEV感知模块告诉我「前方有车辆」,但问题是——货车后面突然窜出一个小孩,我的车完全没看到。

为什么?因为BEV感知本质上是在鸟瞰图上画框,它只能告诉你「那里有个物体」,但物体背后的空间是什么状态?是空的还是有遮挡?它不知道。

这就是Occupancy网络要解决的核心问题。

1.2 什么是3D Occupancy网络?

说白了,Occupancy网络就是把三维空间划分成一个个小立方体(voxel),然后判断每个小立方体是被占据还是空闲。就像玩《我的世界》一样,只不过我们关心的是真实世界的空间占用情况。

具体来说,一个标准的Occupancy网络会输出一个三维张量:

# 假设感知范围是 [-40m, 40m] x [-40m, 40m] x [-2m, 4m]
# 分辨率 0.2m,那么输出维度是:
# 400 x 400 x 30 = 4,800,000 个voxel
# 每个voxel输出一个占据概率 [0, 1]

嗯,这里要注意,不是所有voxel都需要预测。我习惯的做法是只预测地面以上的空间,因为地下部分对自动驾驶意义不大,还能省不少算力。

1.3 为什么需要它?

你想想看,传统感知方案有几个硬伤:

  • 物体检测只能处理已知类别:路上掉个轮胎、飞个塑料袋,模型不认识就直接忽略
  • BEV空间有盲区:遮挡物后面的空间完全是未知状态
  • 激光雷达点云稀疏:远距离点云稀稀拉拉,很难做精确分割

Occupancy网络恰好补上了这些短板。它不关心你是什么物体,只关心「这里有没有东西」。我在项目中遇到过最典型的场景——施工路段的锥桶和警示牌,检测模型经常漏检,但Occupancy网络能稳稳地把它们标记为占据状态。

核心价值:Occupancy网络提供的是「空间占用先验」,而不是「语义理解」。它更像是一个空间感知的基础设施,上层规划模块可以基于这个先验做更安全的决策。

1.4 与BEV感知的区别

很多人容易把Occupancy和BEV搞混。我刚开始接触时也犯过这个错。

维度 BEV感知 Occupancy网络
输出空间 2D鸟瞰图 3D体素空间
输出形式 目标框 + 类别 每个voxel的占据概率
遮挡处理 无法处理 可以推理遮挡区域
计算量 相对较小 大(voxel数量巨大)
典型应用 目标检测、跟踪 可通行区域、碰撞检测

说白了,BEV是「我看到什么就告诉你什么」,Occupancy是「我推理整个空间应该是什么样」。举个例子,BEV看到半辆车,就只输出半个框;Occupancy会基于上下文,把被遮挡的另一半也推理出来。

1.5 与激光雷达点云分割的区别

点云分割,我做了好几年。它的思路是:给每个激光点打标签,比如「地面」、「车辆」、「行人」。

但这里有个问题——激光雷达只能看到「有反射回波」的点。对于玻璃、黑色车身这些吸波材料,或者远距离的稀疏区域,点云分割基本就废了。

Occupancy网络不一样。它可以用相机图像来补全激光雷达看不到的区域。我在部署时做过对比:纯激光方案在夜间表现还行,但白天遇到大面积玻璃幕墙的建筑,点云分割直接漏掉一大片;而Occupancy网络因为有图像特征辅助,能正确预测出玻璃墙的位置。

我的经验:实际部署时,我建议把Occupancy网络和点云分割做融合。点云分割提供精确的边界信息,Occupancy提供完整的空间占用估计。两者互补,效果1+1>2。

1.6 三者的关系

其实这三者不是互斥的,而是层层递进的关系:

  1. 激光雷达点云分割:最底层,告诉你「每个点是什么」
  2. BEV感知:中间层,告诉你「2D空间里有什么物体」
  3. Occupancy网络:最高层,告诉你「3D空间里哪里能走、哪里不能走」

我现在的做法是:三个模块并行跑,输出结果做后融合。点云分割负责精确边界,BEV负责物体级理解,Occupancy负责空间级推理。规划模块拿到这三份信息,决策就稳多了。

避坑指南:我曾经在某个项目里试图用Occupancy网络替代所有感知模块,结果发现不行。Occupancy对细长物体(比如电线杆)的预测精度很差,因为voxel分辨率有限。最后还是得靠点云分割来兜底。

1.7 小结

Occupancy网络不是什么黑科技,它就是把「空间占用估计」这件事做到了工程可用的程度。它的核心优势在于:

  • 不依赖物体类别,泛化能力强
  • 能推理遮挡区域,安全性更高
  • 多模态融合(相机+激光),鲁棒性好

当然,代价也很明显——计算量大、对细长物体不友好、训练数据标注成本高。这些我们后面章节会逐一展开讲。

下一章,我会带大家深入Occupancy网络的数据标注方案。说实话,这块才是真正劝退很多团队的地方。准备好了吗?