一句话定位

Cam4DOcc(CVPR 2024)是首个仅用相机的 4D 占据预测(4D occupancy forecasting)benchmark:在 nuScenes / nuScenes-Occupancy / Lyft-Level5 之上重新组织出带时序标注的新数据格式(含首创的 3D backward centripetal flow),定义四档由粗到细的标准化评测协议,并给出四类基线(含作者自研的端到端网络 OCFNet),把”相机只能估计当下占据”这件事推进到”相机能预测未来占据”。

背景与定位

同期相机占据预测工作(MonoScene、TPVFormer、UniOcc、OpenOccupancy、OccNet/OpenOcc、Occ3D、SurroundOcc)都只估计当前帧的 3D 占据,不建模时间演化;而已有的占据/点云预测方法(Khurana 等的可微光线投射、点云预测网络 PointRNN/MoNet/PCPNet)又都依赖 LiDAR 序列作为必要输入,比纯相机方案更贵更重。另一条路——BEV 实例预测(FIERY、StretchBEV、BEVerse、PowerBEV)——虽然只用相机,但局限在 2D BEV 表示、且只认识预定义的车辆类目标,抓不住背景与自由空间的 3D 结构。

Cam4DOcc 要补的正是”相机 only + 4D + 占据”这个三重交叉的空白:它不提出全新的生成式世界模型,而是像 occworld 一样把”4D 占据预测”立成一个正式子任务,但采取完全不同的路线——不做 VQ-VAE + 自回归 transformer 的生成式建模,而是把现成的四类感知/预测范式分别改造成占据预测基线,重点在数据格式、标注流程与评测协议的标准化,外加一个作者自研的端到端参考网络 OCFNet。与专注视觉表征预训练的 vidar-visual-point-cloud-forecasting(视觉进、点云出、用于下游感知/规划预训练)以及像素空间生成式世界模型 gaia-1-wayve / drivedreamer / drive-wm-driving-into-the-future 相比,Cam4DOcc 的产出形态是基准与协议而非可复用的预训练表征或视频生成器,其历史地位更接近”给相机 4D 占据预测建立一把可比较的尺子”。

模型架构

Benchmark 本身不预设单一架构,而是给出四类基线(论文 Fig. 3),复杂度递增:

  1. 静态世界占据模型:假设短时间内环境不变,直接把现在时刻估计的占据(用 OpenOccupancy 的相机基线 OpenOccupancy-C)复制作为所有未来时刻的预测。

  2. 点云预测体素化(SPC):SurroundDepth 做环视深度估计 → 光线投射生成伪点云 → PCPNet 预测未来点云 → Cylinder3D 做点级语义分割(GMO/GSO)→ 体素化成占据。

  3. 2D-3D 实例预测提升(PowerBEV-3D):PowerBEV 在 BEV 上预测未来实例分割,再沿高度维复制到车辆高度提升到 3D(假设路面平坦、目标等高,因此不评测 GSO)。

  4. 端到端占据预测网络 OCFNet(作者自研,唯一原创架构)

    • 多帧特征聚合模块:ResNet50+FPN(ImageNet 预训练)图像编码器抽取 6 路环视相机(每图 900×1600)的 2D 特征,经 LSS 式 2D-3D lifting(Lift-Splat-Shoot)提升为 3D voxel 特征;各帧特征经 6-DoF 自车位姿变换统一到当前坐标系并聚合,得到 Fp ∈ R^{(Np+1)c×h×w×l},再与相邻帧间 6-DoF 相对位姿拼接得运动感知特征 Fpm ∈ R^{(Np+1)(c+6)×h×w×l}
    • 未来状态预测模块:3D-ResNet18 体素编码器对 Fpm 做多尺度下采样;预测模块用堆叠的 3D 残差卷积块(数量沿用 PowerBEV 设置为 2/1/2 层,卷积核 (3,3,1))把通道维从 Np+1 扩到 Nf+1;3D-FPN 体素解码器上采样后接两个 head——占据预测 head(softmax)与流预测 head(1×1 卷积、无 softmax);最后三线性插值 + argmax 得最终占据 Ôt ∈ R^{(Nf+1)×H×W×L} 与流 M̂t
    • 3D 实例延伸:t=0 时刻用局部极大值(NMS)取实例中心,再用预测的 3D 反向向心流跨帧关联实例 ID,把占据预测升级为 3D 实例预测。

配置数字(论文 V-A + 附录 B):range x/y 轴 [-51.2m, 51.2m]、z 轴 [-5m, 3m],voxel 分辨率 0.2m → 占据体尺寸 512×512×40;历史观测帧 Np=2(含当前共 3 帧),未来预测帧 Nf=4,序列长度 N=Np+Nf+1=7。OCFNet 总参数量 370M,GFLOPs 6434,训练时显存占用 57GB

数据

  • 来源数据集:nuScenes(GMO 实例框标注)+ nuScenes-Occupancy(GSO/free 体素级标注)+ Lyft-Level5(仅 GMO,无占据标注)。
  • 重组流程(论文 Fig. 2):把原始数据切成长度 N=7 的序列;GMO(bicycle/bus/car/construction/motorcycle/trailer/truck/pedestrian 共 8 类可移动目标)实例框变换到当前坐标系并体素化;GSO/其它静态目标标注取自 nuScenes-Occupancy 并同样变换到当前帧。
  • 无效实例过滤三条规则:①在历史帧中新出现但 6 路相机可见度 <40%;②仅在未来帧中首次出现;③在当前帧(t=0)的范围外移动。缺失的中间帧标注按恒速假设补全。
  • 3D backward centripetal flow(首创):受 PowerBEV 的 2D backward centripetal flow 启发,作者把它扩展到 3D——每个体素的流向量指向其所属 3D 实例在 t-1 时刻的中心,用于监督/引导运动学习(消融见下)。
  • 训练/测试划分:nuScenes+nuScenes-Occupancy 用 850 个有 GT 标注场景中的 700 训练(其余场景验证);Lyft-Level5 用 180 场景中的 130 训练。经过按 N=7 切片重组后:nuScenes/nuScenes-Occupancy 得 23,930 训练序列 / 5,119 测试序列;Lyft-Level5 得 15,720 训练序列 / 5,880 测试序列
  • 标注特征(附录 A):两数据集中 >30% 的 GMO 实例是在当前帧(t=0)首次出现,逼模型仅凭当前位置和周边条件推断运动;大多数 GMO 至少在两个历史观测帧和全部未来帧中出现。
  • 数据效率实验:OCFNet 额外只用 1/6 训练序列训练(记为 OCFNet,区别于全量训练的 OCFNet†),验证少量数据下仍能给出合理预测。
  • 无 sim-to-real、无跨模态 co-training;GMO 标签来自 nuScenes 的实例框(“膨胀”标注),GSO/free 标签来自 nuScenes-Occupancy 的体素级细粒度标注(“fine-grained”)。

训练方法

  • 四档标准化评测任务(论文 III-C):①膨胀 GMO 前后景二分类;②细粒度 GMO(体素级、去掉无效格)二分类;③膨胀 GMO + 细粒度 GSO + free 三分类;④细粒度 GMO + 细粒度 GSO + free 三分类。Lyft-Level5 缺占据标注,只跑任务①。
  • 评测指标:present-frame IoU(IoUc)、未来 IoU(IoUf,对 Nf 个未来帧平均)、以及一个把近期时刻加权更高的单一综合指标 ĨoUf(论文 Eq.3,越近当下权重越大,因为近期占据对下游运动规划更关键)。
  • OCFNet 损失L_all = 1/(Nf+1) Σ_t [λ1·L_occ(交叉熵) + λ2·L_flow(smooth-L1)] + λ3·L_depth,其中 L_depth 是显式深度损失(沿用 BEVDepth 做法),只在当前帧(t=0)监督以节省显存和训练时间;权重 λ1=λ3=0.5, λ2=0.05
  • 优化超参:OpenOccupancy-C、PowerBEV、OCFNet 均训练 15 epoch,AdamW,初始学习率 3e-4,weight decay 0.01。SurroundDepth/Cylinder3D 按各自开源方案微调;PCPNet 先用 range loss 预训练 40 epoch(lr 1e-3),再用 Chamfer distance loss 微调 10 epoch(lr 6e-4)。
  • 无 RL;只有 PowerBEV-3D 与 OCFNet 用到 3D/2D flow 监督(因为只有它们带 flow head);PCPNet 用整体点云训练,OpenOccupancy-C/PowerBEV/OCFNet 只用膨胀 GMO 标签训练任务①。

Infra(训练 / 推理工程)

  • 训练硬件:所有网络均以 batch size 8,在 8×NVIDIA A100 上训练。GPU-hours、并行策略、训练精度(fp16/bf16)未披露
  • OCFNet 单模型开销:总参数 370M6434 GFLOPs,训练时显存 57GB(附录 B)。
  • 推理 FPS / 控制频率 / 边缘硬件:论文未给出明确的 FPS/延迟数字,未披露(nuScenes/Lyft 开环评测,未做实车部署)。
  • 代码:官方仓库 haomo-ai/Cam4DOcc 提供数据生成、8 卡训练/评测脚本(run.sh/run_eval.sh)、可视化工具,OCFNetV1.1(2 类)/V1.2(9 类)配置与预训练权重已发布,V1.3/V2 据 README 仍在开发中。

评测 benchmark

全部为论文一手结果,四类基线统一用 IoU 体系比较(数值越高越好;”–“表示该基线不评该子项,“failed”为 SPC 在该子项完全失效)。

① 任务一:膨胀 GMO(Table I)

方法nuScenes IoUcnuScenes IoUf(2s)nuScenes ĨoUfLyft IoUcLyft IoUf(0.8s)Lyft ĨoUf
OpenOccupancy-C12.1711.4511.7414.0113.5313.71
SPC1.27failedfailed1.42failedfailed
PowerBEV-3D23.0821.2521.8626.1924.4725.06
OCFNet27.8623.8924.7732.1229.5630.53
OCFNet†(全量训练)31.3026.8227.9836.4133.5634.60

OCFNet 相对最强 baseline PowerBEV-3D:nuScenes 上 IoUf +12.4%、ĨoUf +13.3%;Lyft-Level5 上 IoUf +20.8%、ĨoUf +21.8%。SPC 在膨胀 GMO 上完全失效,因为它输出的是稀疏点级预测、体素化后与膨胀框标注的稠密监督不匹配,且未来帧形状一致性丢失严重。

② 任务二:细粒度 GMO(Table II,仅 nuScenes-Occupancy)

方法IoUcIoUf(2s)ĨoUf
OpenOccupancy-C10.828.028.53
SPC5.851.081.12
PowerBEV-3D5.915.255.49
OCFNet10.158.358.69
OCFNet†11.459.6810.10

细粒度标注下所有方法(除 SPC 外)性能明显下降——预测复杂的移动 3D 结构远比预测膨胀框难,这也是 Cam4DOcc 建议用膨胀标注训练当前阶段模型的依据。

③ 任务三/四:GMO+GSO+free 联合(Table III/IV)

任务三(膨胀 GMO + 细粒度 GSO + free)OCFNet† 综合最优:GMO/GSO/mean IoUc = 29.84/17.72/23.78,IoUf(2s) = 25.53/17.81/21.67,ĨoUf(GMO) = 26.53;OCFNet† 相对单帧 OpenOccupancy-C,GSO 的 IoUc 提升 +5.1%、IoUf 提升 +4.2%(多帧特征聚合的收益)。任务四(细粒度 GMO+GSO+free)数值略低于任务三(细粒度 GSO 引入额外伪影),OCFNet† 仍全面最优(GMO/GSO/mean IoUc=11.02/17.79/14.41)。

④ 不同预测时长的性能衰减(Table VI)

方法nuScenes 0.5/1.0/1.5/2.0s (IoUf)Lyft 0.2/0.4/0.6/0.8snuScenes-Occ(细粒度) 0.5/1.0/1.5/2.0s
OpenOccupancy-C12.07/11.80/11.63/11.4513.87/13.77/13.65/13.539.17/8.64/8.29/8.02
PowerBEV-3D22.48/22.07/21.65/21.2525.70/25.25/24.82/24.475.74/5.56/5.41/5.25
OCFNet25.95/24.92/24.33/23.8931.51/30.87/30.17/29.569.17/8.72/8.53/8.35
OCFNet†29.36/28.30/27.44/26.8235.58/34.96/34.28/33.5610.64/10.20/9.89/9.68

所有方法均随预测时长增加而单调衰减;nuScenes(2Hz 标注)预测窗口达 2.0s,Lyft-Level5(5Hz 标注)窗口仅 0.8s(帧率不同导致同为 4 帧但覆盖时长不同)。

⑤ 流预测 head 消融(Table V,nuScenes 任务一):完整 OCFNet 相对去掉流 head 的版本,IoUc/IoUf(各时刻)/ĨoUf 全面提升约 3.7%–4.1%(如 ĨoUf 23.86→24.77,+3.8%),证明 3D 反向向心流能有效引导运动学习。

⑥ 3D 实例预测(Table VII,VPQ 指标,附录 E):PowerBEV-3D nuScenes/Lyft = 20.02/27.39;OCFNet = 14.26/24.82;OCFNet† = 18.57/28.23;作者进一步提出融合基线 OCFNet*(占据是否被占用完全由 OCFNet† 决定,流向量在交集区域取 PowerBEV-3D、其余取 OCFNet†),达到 nuScenes/Lyft = 21.36/28.81,相对 PowerBEV-3D nuScenes +6.7%、相对 OCFNet† Lyft +2.1%

创新点与影响

  • 首个相机 only 的 4D 占据预测 benchmark:把此前局限于”当下”的相机占据估计正式扩展到”未来”,同时统一了 GMO(可移动目标)与 GSO(静态目标)两条标注体系。
  • 3D backward centripetal flow:把 PowerBEV 的 2D 版本扩展到 3D 空间,作为占据运动的显式监督信号,并证明能带来约 4% 的稳定增益,还能反哺出 3D 实例预测能力。
  • 四档递进式评测协议 + 加权综合指标 ĨoUf:把”预测多远的未来更重要”显式编码进指标设计(离当下越近权重越大),比单纯平均更贴合下游规划需求。
  • 四类基线的系统对比:证明”端到端时空网络”(OCFNet)全面优于”静态世界假设""点云体素化""2D-3D 实例提升”三类改造式基线,为该子领域指明了架构方向;同时揭示”细粒度标注比膨胀标注难预测得多”这一反直觉但重要的发现。
  • 数据效率:仅用 1/6 训练数据的 OCFNet 仍能给出合理预测(尤其在目标较少的场景),为部署阶段的训练成本控制提供了参考。
  • 作者自陈局限(论文 VI 节):相机 only 4D 占据预测在更长时间跨度、更多运动目标的场景下仍然困难(衰减曲线单调下降);OCFNet 依赖数据集给出的历史观测,无法预测视野外突然驶入的新目标(因为输入里根本不存在其踪迹)。

原始链接

一手源存档(sources/)

  • cam4docc-benchmark—github-readme — GitHub README 快照(安装依赖、数据结构、8 卡训练/评测命令、Basic Information 配置表、预训练模型链接),来源 https://github.com/haomo-ai/Cam4DOcc
  • 论文全文:arXiv:2311.17663(arXiv 原文 PDF,不入 git;正文数字取自 arXiv PDF 全文,含附录 A/B/C/D/E/F)