Skip to content

weiyangdaren/streamDSGN-pytorch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StreamDSGN (NeurIPS2024)

This is the official repository for the NeurIPS2024 poster paper "Real-time Stereo-based 3D Object Detection for Streaming Perception". [Paper]  

Model Framework

Data Preparation

(1) Download the KITTI 3D tracking dataset including velodyne, stereo images, and calibration matrices. Then move the extra_data/planes.zip to data/kitti/training/ directory and unzip it.

The folders are organized as follows:

ROOT_PATH
├── data
│   ├── kitti_tacking
│   │   │── training
│   │   │   ├──calib & velodyne & label_2 & image_2 & image_3 & planes
├── pcdet
├── mmdetection-v2.22.0

(2) Generate KITTI tracking split file.

python tools/gen_split_kitti_tracking.py --save_split --sample_mode 3

(3) Generate KITTI data list and joint Stereo-Lidar Copy-Paste database for training.

python -m pcdet.datasets.kitti_streaming.lidar_kitti_streaming create_kitti_infos 

python -m pcdet.datasets.kitti_streaming.lidar_kitti_streaming create_gt_database_only --image_crops

Keep in mind that put the pre-computed road plane to ./kitti_tracking/training/planes for precise copy-paste augmentation.

Installation

(1) Install mmcv-1.4.0 library.

# pycocotools==2.0.2 requires a lower version of cython
pip install cython==0.29.36
pip install pycocotools==2.0.2
pip install torch==1.7.1 torchvision==0.8.2
mim install mmcv-full==1.4.0

(2) Install the spconv library.

sudo apt install libboost-dev
git clone https://github.com/traveller59/spconv --recursive
cd spconv
git reset --hard f22dd9
git submodule update --recursive
python setup.py bdist_wheel
pip install ./dist/spconv-1.2.1-xxx.whl

(3) Install the included mmdetection-v2.22.0.

cd mmdetection-v2.22.0
pip install -e .

(4) Install OpenPCDet library.

pip install tqdm timm scikit-image==0.21.0 scikit-learn==1.3.0
pip install -e .

Training and Inference

(1) Get model inference time for streaming simulations.

python tools/gen_infer_time.py --cfg_file configs/stream/kitti_models/stream_dsgn_r18-token_prev_next-feature_align_avg_fusion-lka_7-mcl.yaml

Please ensure that the inference time is faster than the frame interval, as this is the core of end-to-end streaming perception.

(2) Then train the model by

python tools/train.py --cfg_file configs/stream/kitti_models/stream_dsgn_r18-token_prev_next-feature_align_avg_fusion-lka_7-mcl.yaml --fix_random_seed

(3) We provide checkpoints in the extra_data/checkpoint_epoch_20.pth directory. You can evaluate the model directly by

python tools/test.py --cfg_file configs/stream/kitti_models/stream_dsgn_r18-token_prev_next-feature_align_avg_fusion-lka_7-mcl.yaml --ckpt extra_data/checkpoint_epoch_20.pth

The evaluation results can be found in the outputing model folder.

Acknowledgment

Our code is based on several released code repositories. We thank the great code from DSGN++, OpenPCDet, and ASAP.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published