myVidar:基于视觉输入的点云预测架构项目

可用于端到端自动驾驶的自监督预训练,实现从历史视觉输入预测未来点云,联合建模3D几何与时间动态,支持感知、预测和规划任务,是首个视觉点云预测架构。【此简介由AI生成】

Branch1Tags0
This repository is empty

ViDAR:视觉点云预测

视觉点云预测

视觉点云预测使端到端的自动驾驶规模化成为可能 [CVPR 2024 精选]

杨泽通, 陈力, 孙亚男, 以及 李宏大

精彩亮点

🔥 视觉点云预测,一种新的自监督预训练任务,用于端到端的自动驾驶,从历史视觉输入中预测未来点云,联合建模3D几何形状和时态动态,实现感知、预测和规划的同步。

🌟 ViDAR,首个视觉点云预测架构。

方法

🏆 预测性世界模型,以视觉点云预测的形式,将是 CVPR 2024 自动驾驶挑战 的主要赛道。请保持关注获取更多信息!

新闻

  • [2024/4] 🔥 发布了在端到端自动驾驶 (UniAD) 上进行预训练的 ViDAR。请参阅 ViDAR-UniAD 页面 了解更多信息。
  • [2024/4] 🔥 发布了在nuScenes-fullset 上进行预训练的 ViDAR。请查看预训练微调的配置。相应的模型可在预训练微调中找到。
  • [2024/3] 🔥 启动了预测性世界模型挑战。请参考链接了解更多详情。
  • [2024/2] 发布了 ViDAR 的代码和模型。
  • [2024/2] ViDAR 被 CVPR 2024 接受。
  • [2023/12] 发布了 ViDAR 论文

待办事项列表

仍在进行中:

目录

  1. 结果和模型库
  2. 安装
  3. 准备数据集
  4. 训练和评估
  5. 许可和引用
  6. 相关资源

结果和模型库

视觉点云预测预训练

NuScenes 数据集:

预训练模型 数据集 配置 CD@1s CD@2s CD@3s 模型和日志
ViDAR-RN101-nus-1-8-1future nuScenes (12.5% Data) vidar-nusc-pretrain-1future - - - 模型 / 日志
ViDAR-RN101-nus-1-8-3future nuScenes (12.5% Data) vidar-nusc-pretrain-3future 1.25 1.48 1.79 模型 / 日志
ViDAR-RN101-nus-full-1future nuScenes (100% Data) vidar-nusc-pretrain-1future - - - 模型
  • 提示:在运行 ViDAR 的 nuScenes-full 集合之前,请先运行 python tools/merge_nusc_fullset_pkl.py 来生成 nuscenes_infos_temporal_traintest.pkl 用于预训练。

OpenScene 数据集:

预训练模型 数据集 配置 CD@1s CD@2s CD@3s 模型和日志
ViDAR-RN101-OpenScene-3future OpenScene-mini (12.5% Data) vidar-OpenScene-pretrain-3future-1-8 1.41 1.57 1.78 模型 / 日志
ViDAR-RN101-OpenScene-3future OpenScene-mini-Full (100% Data) vidar-OpenScene-pretrain-3future-full 1.03 1.15 1.35 模型 / 日志

下游微调(感知)

下游模型 数据集 预训练 配置 NDS mAP 模型和日志
BEVFormer-Base (基线) nuScenes (25% Data) FCOS3D bevformer-base 43.40 35.47 模型 / 日志
BEVFormer-Base nuScenes (25% Data) ViDAR-RN101-nus-1-8-1future vidar-nusc-finetune-1future 45.77 36.90 模型 / 日志
BEVFormer-Base nuScenes (25% Data) ViDAR-RN101-nus-1-8-3future vidar-nusc-finetune-3future 45.61 36.84 模型 / 日志
BEVFormer-Base(基线) nuScenes (100% Data) FCOS3D bevformer-base 51.7 41.6 模型
BEVFormer-Base nuScenes (100% Data) ViDAR-RN101-nus-full-1future vidar-nusc-finetune-1future 55.33 45.20 模型

下游微调(端到端)

请参考ViDAR-UniAD页面

安装

安装步骤与BEVFormer类似。 为了方便,我们列出了以下步骤:

conda create -n vidar python=3.8 -y
conda activate vidar

pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
conda install -c omgarcia gcc-6 # (optional) gcc-6.2

安装 mm 系列软件包。

pip install mmcv-full==1.4.0
pip install mmdet==2.14.0
pip install mmsegmentation==0.14.1

# Install mmdetection3d from source codes.
git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
git checkout v0.17.1 # Other versions may not be compatible.
python setup.py install

安装 Detectron2 和 Timm。

pip install einops fvcore seaborn iopath==0.1.9 timm==0.6.13  typing-extensions==4.5.0 pylint ipython==8.12  numpy==1.19.5 matplotlib==3.5.2 numba==0.48.0 pandas==1.4.4 scikit-image==0.19.3 setuptools==59.5.0
python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'

设置 ViDAR 项目。

git clone https://github.com/OpenDriveLab/ViDAR

cd ViDAR
mkdir pretrained
cd pretrained & wget https://github.com/zhiqi-li/storage/releases/download/v1.0/r101_dcn_fcos3d_pretrain.pth

# Install chamferdistance library.
cd third_lib/chamfer_dist/chamferdist/
pip install .

数据集准备

训练与评估

训练

我们推荐使用8块A100 GPU进行训练。在预训练阶段,GPU的内存使用量大约为63G。

  • 提示:为了节省GPU内存,您可以将supervise_all_future=True改为False,并使用较小的vidar_head_pred_history_frame_numvidar_head_pred_future_frame_num。 例如,通过设置supervise_all_future=Falsevidar_head_pred_history_frame_num=0vidar_head_pred_future_frame_num=0以及vidar_head_per_frame_loss_weight=(1.0,)vidar-pretrain-3future-model的GPU内存消耗可以降低至大约34G。 一个示例配置在这里提供。
  • 完整nuScenes训练:为了在完整的nuScenes数据集上预训练ViDAR,请先运行python tools/merge_nusc_fullset_pkl.py,以生成用于预训练的nuscenes_infos_temporal_traintest.pkl文件。
CONFIG=path/to/config.py
GPU_NUM=8

./tools/dist_train.sh ${CONFIG} ${GPU_NUM}

评估

CONFIG=path/to/vidar_config.py
CKPT=path/to/checkpoint.pth
GPU_NUM=8

./tools/dist_test.sh ${CONFIG} ${CKPT} ${GPU_NUM}

直观展现

CONFIG=path/to/vidar_config.py
CKPT=path/to/checkpoint.pth
GPU_NUM=1

./tools/dist_test.sh ${CONFIG} ${CKPT} ${GPU_NUM} \
  --cfg-options 'model._viz_pcd_flag=True' 'model._viz_pcd_path=/path/to/output'

许可与引用

所有资源及代码均遵循 Apache 2.0 许可,除非特别说明。

若您的研究从此工作中受益,请您考虑引用以下 BibTeX 条目。

@inproceedings{yang2023vidar,
  title={Visual Point Cloud Forecasting enables Scalable Autonomous Driving},
  author={Yang, Zetong and Chen, Li and Sun, Yanan and Li, Hongyang},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  year={2024}
}

相关资源

我们感谢以下项目的开源贡献者,使得这项工作得以实现:

Twitter 关注

vidar_nstp

Introduction

可用于端到端自动驾驶的自监督预训练,实现从历史视觉输入预测未来点云,联合建模3D几何与时间动态,支持感知、预测和规划任务,是首个视觉点云预测架构。【此简介由AI生成】

Customize your domain