Giter Club home page Giter Club logo

dcdet's Introduction

Our paper is accepted by IJCAI2024. Thanks for the OpenPCDet, this implementation of the DCDet is mainly based on the pcdet v0.6.

Abstract: Recently, significant progress has been made in the research of 3D object detection. However, most prior studies have focused on the utilization of center-based or anchor-based label assignment schemes. Alternative label assignment strategies remain unexplored in 3D object detection. We find that the center-based label assignment often fails to generate sufficient positive samples for training, while the anchor-based label assignment tends to encounter an imbalanced issue when handling objects of varying scales. To solve these issues, we introduce a dynamic cross label assignment (DCLA) scheme, which dynamically assigns positive samples for each object from a cross-shaped region, thus providing sufficient and balanced positive samples for training. Furthermore, to address the challenge of accurately regressing objects with varying scales, we put forth a rotation-weighted Intersection over Union (RWIoU) metric to replace the widely used L1 metric in regression loss. Extensive experiments demonstrate the generality and effectiveness of our DCLA and RWIoU-based regression loss.

1. Recommended Environment

  • Linux (tested on Ubuntu 20.04)
  • Python 3.6+
  • PyTorch 1.1 or higher (tested on PyTorch 1.13)
  • CUDA 9.0 or higher (tested on 11.6)

2. Set the Environment

pip install -r requirement.txt
python setup.py develop

3. Data Preparation

# Download KITTI and organize it into the following form:
├── data
│   ├── kitti
│   │   │── ImageSets
│   │   │── training
│   │   │   ├──calib & velodyne & label_2 & image_2 & (optional: planes)
│   │   │── testing
│   │   │   ├──calib & velodyne & image_2

# Generatedata infos:
python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml
# Download Waymo and organize it into the following form:
├── data
│   ├── waymo
│   │   │── ImageSets
│   │   │── raw_data
│   │   │   │── segment-xxxxxxxx.tfrecord
|   |   |   |── ...
|   |   |── waymo_processed_data
│   │   │   │── segment-xxxxxxxx/
|   |   |   |── ...
│   │   │── pcdet_gt_database_train_sampled_xx/
│   │   │── pcdet_waymo_dbinfos_train_sampled_xx.pkl

# Install tf 2.5.0
# Install the official waymo-open-dataset by running the following command:
pip3 install --upgrade pip
pip3 install waymo-open-dataset-tf-2-5-0 --user

# Extract point cloud data from tfrecord and generate data infos:
python -m pcdet.datasets.waymo.waymo_dataset --func create_waymo_infos --cfg_file tools/cfgs/dataset_configs/waymo_dataset.yaml

4. Train

  • Train with a single GPU
python tools/train.py --cfg_file ${CONFIG_FILE}

# e.g.,
python tools/train.py --cfg_file tools/cfgs/waymo_models/dcdet.yaml
  • Train with multiple GPUs or multiple machines
bash tools/scripts/dist_train.sh ${NUM_GPUS} --cfg_file ${CONFIG_FILE}
# or 
bash tools/scripts/slurm_train.sh ${PARTITION} ${JOB_NAME} ${NUM_GPUS} --cfg_file ${CONFIG_FILE}

# e.g.,
bash tools/scripts/dist_train.sh 8 --cfg_file tools/cfgs/waymo_models/dcdet.yaml

5. Test

  • Test with a pretrained model:
python tools/test.py --cfg_file ${CONFIG_FILE} --ckpt ${CKPT}

# e.g., 
python tools/test.py --cfg_file tools/cfgs/waymo_models/dcdet.yaml --ckpt {path}

Paper

Please cite our paper if you find our work useful for your research:

@inproceedings{ijcai2024p124,
  title     = {DCDet: Dynamic Cross-based 3D Object Detector},
  author    = {Liu, Shuai and Li, Boyang and Fang, Zhiyu and Huang, Kai},
  booktitle = {Proceedings of the Thirty-Third International Joint Conference on
               Artificial Intelligence, {IJCAI-24}},
  publisher = {International Joint Conferences on Artificial Intelligence Organization},
  editor    = {Kate Larson},
  pages     = {1119--1127},
  year      = {2024},
  month     = {8},
  note      = {Main Track},
  doi       = {10.24963/ijcai.2024/124},
  url       = {https://doi.org/10.24963/ijcai.2024/124},
}

dcdet's People

Contributors

say2l avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

cv-det

dcdet's Issues

Pre-trained weights on the KITTI dataset

Hello, thank you for your valuable contribution. Could you please provide pre-trained weights on the KITTI dataset? I obtained results far below the reported 85.82 in the paper, and I'm not sure what the issue might be. My results are as follows.

2024-02-29 10:48:32,845 INFO Generate label finished(sec_per_example: 0.0136 second).
2024-02-29 10:48:32,845 INFO recall_roi_0.3: 0.000000
2024-02-29 10:48:32,845 INFO recall_rcnn_0.3: 0.908131
2024-02-29 10:48:32,846 INFO recall_roi_0.5: 0.000000
2024-02-29 10:48:32,846 INFO recall_rcnn_0.5: 0.899931
2024-02-29 10:48:32,846 INFO recall_roi_0.7: 0.000000
2024-02-29 10:48:32,846 INFO recall_rcnn_0.7: 0.772967
2024-02-29 10:48:32,847 INFO Average predicted number of objects(3769 samples): 4.315
2024-02-29 10:48:52,948 INFO Car [email protected], 0.70, 0.70:
bbox AP:90.8334, 90.0609, 89.5380
bev AP:90.2614, 88.5962, 87.7556
3d AP:89.3006, 79.5609, 78.7285
aos AP:90.82, 90.02, 89.46
Car [email protected], 0.70, 0.70:
bbox AP:96.7571, 95.5560, 93.0914
bev AP:93.6016, 91.7121, 89.3786
3d AP:92.2752, 83.7243, 81.0321
aos AP:96.74, 95.49, 92.99
Car [email protected], 0.50, 0.50:
bbox AP:90.8334, 90.0609, 89.5380
bev AP:90.8229, 90.1188, 89.6828
3d AP:90.8229, 90.0976, 89.6413
aos AP:90.82, 90.02, 89.46
Car [email protected], 0.50, 0.50:
bbox AP:96.7571, 95.5560, 93.0914
bev AP:96.7801, 95.8243, 95.3667
3d AP:96.7699, 95.7734, 93.2428
aos AP:96.74, 95.49, 92.99

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.