yuantianyuan01 / StreamMapNet

GNU General Public License v3.0
189 stars 16 forks source link

StreamMapNet

[WACV 2024] StreamMapNet: Streaming Mapping Network for Vectorized Online HD Map Construction

[![arXiv](https://img.shields.io/badge/arXiv-Paper-.svg)](https://arxiv.org/abs/2308.12570)

Introduction

This repository is an official implementation of StreamMapNet.

Getting Started

1. Environment

Step 1. Create conda environment and activate it.

conda create --name streammapnet python=3.8 -y
conda activate streammapnet

Step 2. Install PyTorch.

pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

Step 3. Install MMCV series.

# Install mmcv-series
pip install mmcv-full==1.6.0
pip install mmdet==2.28.2
pip install mmsegmentation==0.30.0
git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
git checkout v1.0.0rc6 
pip install -e .

Step 4. Install other requirements.

pip install -r requirements.txt

2. Data Preparation

Step 1. Download NuScenes dataset to ./datasets/nuScenes.

Step 2. Download Argoverse2 (sensor) dataset to ./datasets/av2.

Step 3. Generate annotation files for NuScenes dataset.

python tools/nuscenes_converter.py --data-root ./datasets/nuScenes --newsplit

Step 4. Generate annotation files for Argoverse2 dataset.

python tools/argoverse_converter.py --data-root ./datasets/av2 --newsplit

3. Training and Validating

To train a model with 8 GPUs:

bash tools/dist_train.sh ${CONFIG} 8

To validate a model with 8 GPUs:

bash tools/dist_test.sh ${CONFIG} ${CEHCKPOINT} 8 --eval

To test a model's inference speed:

python tools/benchmark.py ${CONFIG} ${CEHCKPOINT}

Results

Results on Argoverse2 newsplit

Range $\mathrm{AP}_{ped}$ $\mathrm{AP}_{div}$ $\mathrm{AP}_{bound}$ $\mathrm{AP}$ Config Epoch Checkpoint
$60\times 30\ m$ 57.9 55.7 61.3 58.3 Config 30 ckpt
$100\times 50\ m$ 60.0 45.9 48.9 51.6 Config 30 ckpt

Results on NuScenes newsplit

Range $\mathrm{AP}_{ped}$ $\mathrm{AP}_{div}$ $\mathrm{AP}_{bound}$ $\mathrm{AP}$ Config Epoch Checkpoint
$60\times 30\ m$ 32.2 29.3 40.8 34.1 Config 24 ckpt
$100\times 50\ m$ 25.6 17.4 24.3 22.4 Config 24 ckpt

Results on NuScenes oldsplit

Range $\mathrm{AP}_{ped}$ $\mathrm{AP}_{div}$ $\mathrm{AP}_{bound}$ $\mathrm{AP}$ Config Epoch Checkpoint
$60\times 30\ m$ 61.7 66.3 62.1 63.4 Config 30 ckpt

Citation

If you find our paper or codebase useful in your research, please give us a star and cite our paper.

@InProceedings{Yuan_2024_streammapnet,
    author    = {Yuan, Tianyuan and Liu, Yicheng and Wang, Yue and Wang, Yilun and Zhao, Hang},
    title     = {StreamMapNet: Streaming Mapping Network for Vectorized Online HD Map Construction},
    booktitle = {Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)},
    month     = {January},
    year      = {2024},
    pages     = {7356-7365}
}