介绍自动驾驶感知任务中的--3D Occupancy Semantic Prediction
什么是Occupancy
自动驾驶领域,按照传统会分为perception, prediction, planning和control四大部分,有时会加上map。
其中最为重要的就是perception,也是目前自动驾驶的瓶颈所在,如果感知算法给了下游任务错误的视觉信息,那么整个自动驾驶技术也无从保证了。
感知任务的输入格式主要有三种:相机,激光LiDAR,声波Radar。近几年纯视觉(只有相机输入)的感知算法异军突起,如何从相机的输入中获得准确的深度信息,一直是一个难题。
而Occupancy是自动驾驶感知任务一种近几年非常热门的输出格式。
Occupancy将这个场景划分成正方体网格,每个网格被赋予语义标签,即,标注这个网格内的物体属于哪个类别,或标注为没有被占用。
为什么需要Occupancy
在很长一段时间里,bounding box(简称为bbox)都是非常主流的输出格式。就是给目标物体打上一个3D立方体的标注框。我们一般称这种任务为Object Detection。
但是,这种输出格式也有一些问题:
(1)3D标注框的这种表示消除了物体的几何细节,如挖掘机具有从主体突出的机械臂,bounding box在标注这类物体时就没有办法有很准确的表示;
(2)不常见的类别,如街道上的垃圾桶,往往被忽略,在nuScenes和Waymo数据集中都没有标记,因为开放世界中的对象类别不能被广泛枚举。这些在Occupancy任务中会被归结为General Object(GO)类。
于是就有了Occupancy的提出,他是最近一种非常火热的输出格式,相当于是把颗粒度从object-level给精细化到了voxel-level。
但是Occupancy在这些有点上,也有一些局限性:
(1)相比于Object Detection这个任务,丢失了object或者说instance的概念,没有办法做运动追踪和动态物体的运动补偿;
(2)整个场景很大,但是被占据的位置非常少,监督很稀疏,加大了训练难度;
(3)想要更小的分辨率,就会有巨大的计算量;
(4)还是没有open vocabulary,没有办法穷举所有的uncommon categories。
区分和BEV的概念
BEV是Bied's Eye View的缩写,意为鸟瞰图。并不作为一种感知任务的输出格式,更多的是作为一个特征空间。但是这个特征空间是2D的,每个位置在z轴方向上的信息被隐式地蕴含在了channel这个维度里面。
RGB的相片和点云都可以通过经典的backbone得到BEV这个特征空间上的特征变量,然后用上不同的decoder也可以得到不同的输出,比如map, bounding box, 3D Occupancy.
主流的混合传感器,或者多下游任务同时训练,都会使用BEV作为统一地特征空间,因为这种特征非常灵活。
Occupancy Dataset
Occupancy的真值(ground truth,简称gt)生成,一般是选定一个有相机和雷达数据的自动驾驶数据集,然后有一套复杂的pipeline能够完成这件事情,具体可以参考Occ3D的pipeline。
以下是目前主流的Occupancy数据集,分别来自以下几篇论文,括号内部写的是基础数据集和发表的会议:
-
Occ3D-Waymo(Waymo), Occ3D-nuScenes(nuScenes, NeurIPS 2023): Occ3D: A Large-Scale 3D Occupancy Prediction Benchmark for Autonomous Driving
-
OpenOccupancy(nuScenes, ICCV2023): OpenOccupancy: A Large Scale Benchmark for Surrounding Semantic Occupancy Perception
-
SurroundOcc(nuScenes, ICCV2023): SurroundOcc: Multi-camera 3D Occupancy Prediction for Autonomous Driving
-
OpenOcc(nuScenes, ICCV2023): Scene as Occupancy
-
Cam4DOcc(nuScenes, CVPR2024): Cam4DOcc: Benchmark for Camera-Only 4D Occupancy Forecasting in Autonomous Driving Applications
-
OpenScene(nuPlan, CVPR2024 Autonomous Grand Challenge): OpenDriveLab/OpenScene: 3D Occupancy Prediction Benchmark in Autonomous Driving
-
evidential-occupancy(nuScenes, Waymo, CVPR2024): Accurate Training Data for Occupancy Map Prediction in Automated Driving Using Evidence Theory
主流的Occupancy方法
一些Object Detection上的主流方法可以在更换一个decoder后用来做Occupancy这个任务上使用,比如BEVDet, BEVFormer, TPVFormer, SOLOFusion, FB-BEV等等。
一些我认为Occupancy中重要的方法论文,括号内部是发表的会议:
-
OccDepth(2023/02/27): OccDepth: A Depth-Aware Method for 3D Semantic Scene Completion (arxiv.org)
-
OccFormer(ICCV2023): OccFormer: Dual-path Transformer for Vision-based 3D Semantic Occupancy Prediction
-
VoxFormer(CVPR2023): VoxFormer: Sparse Voxel Transformer for Camera-Based 3D Semantic Scene Completion
-
PanoOcc(CVPR2024): PanoOcc: Unified Occupancy Representation for Camera-based 3D Panoptic Segmentation
-
SelfOcc(CVPR2024): SelfOcc: Self-Supervised Vision-Based 3D Occupancy Prediction
-
SparseOcc(2023/12/28, 提出一个新指标RayIoU): Fully Sparse 3D Occupancy Prediction (arxiv.org)
还可以参考这两篇survey,括号内是挂在arxiv上的日期:
-
Vision-based 3D occupancy prediction in autonomous driving: a review and outlook (2024/05/04)
-
A Survey on Occupancy Perception for Autonomous Driving: The Information Fusion Perspective (2024/05/08)