Home

Awesome

arXiv GitHub Stars visitors

Graph R-CNN: Towards Accurate 3D Object Detection with Semantic-Decorated Local Graph (ECCV 2022, Oral)

NEWS

[2023-03-31] Codes for the KITTI and Waymo datasets are released at GD-MAE (based on OpenPCDet) :rocket:!

[2022-11-28] The result on the Waymo Leaderboard is reported.

[2022-09-30] Code for the Waymo Open Dataset is released :rocket:!

[2022-07-04] Graph R-CNN is accepted at ECCV 2022 :fire:!

[2021-12-26] We rank 1st on the KITTI BEV car detection leaderboard :fire:!

<p align="center"> <img src="figures/kitti_bev_leaderboard.png" width="80%"> </p>

Installation

We test this project on NVIDIA A100 GPUs and Ubuntu 18.04.

conda create -n graphrcnn python=3.7
conda activate graphrcnn
conda install pytorch==1.10.1 torchvision==0.11.2 cudatoolkit=11.1 -c pytorch -c conda-forge
pip install protobuf==3.19.4 waymo-open-dataset-tf-2-2-0 spconv-cu111 numpy numba scipy pyyaml easydict fire tqdm shapely matplotlib opencv-python addict pyquaternion nuscenes-devkit==1.0.5
pip install torch-scatter -f https://data.pyg.org/whl/torch-1.10.1+cu111.html
git clone https://github.com/Nightmare-n/GraphRCNN
cd GraphRCNN && python setup.py develop --user

Data Preparation

data
│── waymo
│   │── ImageSets (from OpenPCDet)
│   │── raw_data
│   │   │── segment-xxxxxxxx.tfrecord
│   │   │── ...
│   │── waymo_processed_data_cp
│   │   │── train/
│   │   │   │── annos/
│   │   │   │── lidar/
│   │   │── ...
│   │── gt_database_1sweeps_withvelo/
│   │── dbinfos_train_1sweeps_withvelo.pkl
│   │── infos_train_01sweeps_filter_zero_gt.pkl
│   │── infos_val_01sweeps_filter_zero_gt.pkl
python det3d/datasets/waymo/waymo_converter.py --root_path /data/waymo --raw_data_tag raw_data --processed_data_tag waymo_processed_data_cp --split train
python det3d/datasets/waymo/waymo_converter.py --root_path /data/waymo --raw_data_tag raw_data --processed_data_tag waymo_processed_data_cp --split val
python tools/create_data.py waymo_data_prep --root_path /data/waymo --processed_data_tag waymo_processed_data_cp --split train --nsweeps 1
python tools/create_data.py waymo_data_prep --root_path /data/waymo --processed_data_tag waymo_processed_data_cp --split val --nsweeps 1

Training & Testing

bash ./slurm_trainval.sh
# or
bash ./dist_tranval.sh

Results

We show the reproduced results based on the latest version of the CenterPoint codebase.

Vec_L1Vec_L2Ped_L1Ped_L2Cyc_L1Cyc_L2All
Graph R-CNN (w/o PointNet)80.46/79.9772.27/71.8282.01/76.4974.13/68.9077.63/76.5074.87/73.78Log

Citation

If you find this project useful in your research, please consider citing:

@inproceedings{yang2022graphrcnn,
    author = {Honghui Yang and Zili Liu and Xiaopei Wu and Wenxiao Wang and Wei Qian and Xiaofei He and Deng Cai},
    title = {Graph R-CNN: Towards Accurate 3D Object Detection with Semantic-Decorated Local Graph},
    booktitle = {ECCV},
    year = {2022},
}

Acknowledgement

This project is mainly based on the following codebases. Thanks for their great works!