专栏名称: 自动驾驶之心
自动驾驶开发者社区,关注计算机视觉、多维感知融合、部署落地、定位规控、领域方案等,坚持为领域输出最前沿的技术方向!
目录
相关文章推荐
新加坡眼  ·  新加坡一组屋地板连续崩起,炸响声如鞭炮 ·  2 天前  
新加坡眼  ·  如果金秀贤生在新加坡,应该已经进监狱了 ·  2 天前  
新加坡眼  ·  突发!新加坡一数据中心起火,一人就医 ·  2 天前  
新加坡眼  ·  【下周活动】 Lady ... ·  3 天前  
开发者全社区  ·  老公床后告诉我账上有10个亿 ·  3 天前  
51好读  ›  专栏  ›  自动驾驶之心

自动驾驶3D占用预测(Occupancy Prediction)算法调研

自动驾驶之心  · 公众号  ·  · 2024-09-16 00:00

正文

作者 | 一天到晚潜水的鱼  编辑 | DeepDriving

点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号

戳我-> 领取 自动驾驶近15个 方向 学习 路线

>> 点击进入→ 自动驾驶之心 Occupancy 技术交流群

本文只做学术分享,如有侵权,联系删文

0. 前言

在自动驾驶感知任务中,传统的 3D 场景理解方法大多数都集中在 3D 目标检测上,难以描述任意形状和无限类别的真实世界物体。 3D 占用网络( Occupancy Network )是特斯拉在 2022年 提出的一种新型感知网络,这种感知网络借鉴了机器人领域中的占用网格建图的思想,将感知环境以一种简单的形式进行在线 3D 重建。简单来说,就是将机器人周围的空间划分为一系列网格单元,然后定义哪个单元被占用,哪个单元是空闲的,通过预测 3D 空间中的占用概率来获得一种简单的 3D 空间表示,这样就可以更全面地实现 3D 场景感知。

近期对最近几年自动驾驶领域中的 3D 占用网络算法(主要是基于纯视觉)和数据集做了一些调研,本文将做一个简单的汇总。

1. 论文和算法

综述论文

《A Survey on Occupancy Perception for Autonomous Driving: The Information Fusion Perspective》

MonoScene

论文:https://arxiv.org/pdf/2112.00726.pdf

代码:https://github.com/cv-rits/MonoScene

数据集: NYUv2 (室内), SemanticKITTI

首个单目 3D 语义占用预测算法,是后续算法的 baseline

TPVFormer

论文:https://arxiv.org/pdf/2302.07817.pdf

代码:https://github.com/wzzheng/TPVFormer

数据集: SemanticKITTI Panoptic nuScenes

该算法以环视图像为输入,训练过程中以激光雷达的语义标签为真值去学习实现 3D 占用预测。作者提出了一种三视角( tri-perspective view,TPV )表示法,能够有效地描述 3D 场景的细粒度结构。为了将图像特征转换到 3D TPV 空间,提出了一种基于注意力机制的 TPVFormer 模型。

SurroundOcc

论文:https://arxiv.org/pdf/2303.09551.pdf

代码:https://github.com/weiyithu/SurroundOcc

数据集: nuScenes SemanticKITTI

该算法从输入的多个相机的 RGB 图像中去实现 3D 语义占用预测,训练时的语义真值是从激光点云的语义信息中产生。

算法流程如下:

根据稀疏的点云语义信息生成稠密的 3D 占用语义真值过程:

RTX 3090 GPU 上与其他几个算法的推理时间对比:

OccFormer

论文:https://arxiv.org/pdf/2304.05316.pdf

代码:https://github.com/zhangyp15/OccFormer

数据集: SemanticKITTI Panoptic nuScenes

该算法提出使用一个双路 transformer 结构用于处理由相机数据生成的 3D 体素特征,它可以有效地捕获具有局部和全局路径的细粒度细节和场景级布局。

双路 transformer 结构:

VoxFormer

论文:https://arxiv.org/pdf/2302.12251.pdf

代码:https://github.com/NVlabs/VoxFormer

数据集: SemanticKITTI

算法框架如上图所示,模型支持输入单帧或多帧图像数据。采用 MobileStereoNet (可换成其他深度估计网络)做深度估计,占用预测网络采用轻量级的 2D CNN 网络 LMSCNet 。该算法的特点是比较轻量级,对小目标的检测效果较好,模型参数较少,训练时需要的 GPU 显存少于 16 GB。缺点是远距离性能需要提升,因为远距离深度估计不准确。

OccupancyDETR

论文:https://arxiv.org/pdf/2309.08504.pdf

代码:https://github.com/jypjypjypjyp/OccupancyDETR

数据集: SemanticKITTI

算法框架如上图所示,由一个类似 DETR 的目标检测网络( Deformable DETR )和 3D 占用解码器模块组成,用目标检测模块来引导对 3D 语义占用网格的预测。把目标检测网络输出的 bounding box 作为位置先验,并利用物体的隐藏特征作为上下文,然后用一个空间 transformer 解码器用来提取每个目标的 3D 占用网格。

算法的详细流程如下:

  1. 对于一张输入图像,首先采用 ResNet50 骨干网络提取特征,然后将这些多尺度特征传入一个可变形编码器进行进一步编码。
  2. 通过可变形 DETR 解码器解码固定数量的查询,然后传递给分类、 2D 框和 3D 框这三个检测头网络。分类头和 2D 框头网络的结果是目标检测中的常规结果,根据分类头的输出选择高置信度的结果作为检测到的物体。
  3. 这些高置信度物体的 3D 框(相机坐标系,根据相机外参转到占用网格坐标系)作为每个物体的位置先验,用于在 3D 占用解码器中提供位置嵌入,并把可变形 DETR 解码器获得的特征作为上下文, 3D 占用解码器基于可变形 DETR 编码器编码的多尺度特征去预测每个物体的 3D 占用网格。

3D 占用解码器的数据流程图如下:

该算法的特点是对小目标的检测性能好,速度快,计算资源消耗少,训练时只需要一个 RTX 3090 GPU ,缺点是对道路、人行横道这些类别的预测效果不好。

FB-OCC CVPR 2023 3D 占用预测挑战赛冠军)

论文:https://opendrivelab.com/e2ead/AD23Challenge/Track_3_NVOCC.pdf

代码:https://github.com/NVlabs/FB-BEV

数据集: nuScenes

算法框架如上图所示,该算法由 FB-BEV 算法衍生而来。视图变换模块是纯视觉 3D 感知算法的核心,作者设计了两个视图变换模型:一个前向投影模块( List-Splat-Shoot )和一个反向投影模块( BEVFormer )。在 FB-OCC 中,使用前向投影来生成初始的 3D 体素表示,然后将 3D 体素表示压缩成一个扁平的 BEV 特征图。 BEV 特征图被视为 BEV 空间内的查询,并与图像编码器特征进行关联,以获取密集的几何信息。最后,将 3D 体素表示和优化的 BEV 表示的融合特征输入到后续的任务头中。

除了模型结构,作者还重点对模型预训练技术进行了精心设计。首先在大规模 2D 目标检测数据集 Object 365 上对骨干网络进行训练,使得网络具备语义感知能力。接下来,在 nuScenes 数据集上再对网络进行专注于深度估计的预训练。由于深度预训练缺乏语义级别的监督,为了减轻模型过度偏向深度信息的风险,可能导致丧失语义先验知识(特别是考虑到大规模模型容易出现过拟合的情况),作者同时预测 2D 语义分割标签以及深度预测任务。

使用 2D 图像语义标签和深度图真值,作者联合深度估计任务和语义分割任务对模型进行训练。这种预训练任务与最终的占用预测任务密切相关,可以利用深度值和语义标签直接生成 3D 占用结果。预训练模型作为改进的起点,为后续的占用预测任务训练提供了帮助。

该算法是为参加比赛设计的,所以整体显得有点笨重,训练时设置 batch size 32 ,需要 32 A100 GPU 进行训练。

BEVDet-Occ

论文:暂无,从 BEVDet 衍生到 Occupancy Prediction 任务

代码:https://github.com/HuangJunJie2017/BEVDet

SimpleOccupancy

论文:https://arxiv.org/pdf/2303.10076.pdf

代码:https://github.com/GANWANSHUI/SimpleOccupancy

数据集: DDAD Nuscenes

该算法采用自监督的方式实现 3D 占用预测。

SparseOcc

论文:https://arxiv.org/pdf/2312.17118.pdf

代码:https://github.com/MCG-NJU/SparseOcc

数据集: Occ3D-nuScenes

下面两篇文章是对该算法的解读:

https://zhuanlan.zhihu.com/p/709576252

https://zhuanlan.zhihu.com/p/691549750

SelfOcc

论文:https://arxiv.org/pdf/2311.12754.pdf

代码:https://github.com/huang-yh/SelfOcc

项目主页:https://huang-yh.github.io/SelfOcc/

数据集: Occ3D-nuScenes SemanticKITTI

鉴于之前的方法都需要可靠的 3D 语义信息来监督学习,但是 3D 语义真值又很难获取,因此 SelfOcc 希望仅使用视频序列采用自监督学习的方式来实现 3D 语义占用预测,以降低模型训练难度。







请到「今天看啥」查看全文