1. 3D占据预测:自动驾驶感知的新范式
在自动驾驶领域,3D场景理解一直是个核心挑战。传统方法主要分为两类:基于3D目标检测的"立方体表示"和基于BEV(鸟瞰图)的"2.5D表示"。但这两者都存在明显局限——3D检测框难以处理异形障碍物(如施工路障、掉落轮胎等长尾场景),而BEV方法则丢失了高度信息,无法准确建模立交桥、悬垂树枝等复杂3D结构。
3D占据预测(Occupancy Prediction)应运而生,它采用类似乐高积木的体素(Voxel)形式对物理世界进行致密重建。每个小立方体(体素)都包含语义和占据信息,可以精确表示任意形状的物体。这种表示方式完美解决了传统方法的痛点,但同时也带来了指数级增长的计算量。
关键区别:传统3D检测输出的是参数化的立方体(中心点+长宽高+朝向),而占据预测输出的是每个体素的二值占据状态和语义类别。前者适合规则物体,后者适合任意形状。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. PanoOcc:3D全景分割的统一框架
2.1 设计动机与核心创新
PanoOcc的提出源于自动驾驶感知系统的一个根本性问题:现有系统通常将目标检测、语义分割、深度估计等任务拆分为独立模块,导致:
- 特征提取重复计算
- 任务间缺乏几何约束(如检测框可能包含路面)
- BEV表示丢失高度信息
PanoOcc的核心创新在于:
- 体素查询(Voxel Query):用3D网格状可学习参数替代传统BEV查询,保留高度维度
- 多任务统一表示:在同一个3D体素空间中完成检测和分割
- 由粗到细的渐进式预测:从低分辨率开始,逐步上采样并剪枝空体素
2.2 网络架构深度解析
2.2.1 占据编码器设计
PanoOcc的编码器采用了一种高效的3D注意力机制:
python复制class VoxelCrossAttention(nn.Module):
def __init__(self, d_model, n_heads):
super().__init__()
# 可变形注意力的投影层
self.sampling_offsets = nn.Linear(d_model, n_heads * 3 * n_points)
self.a
