Code Monkey home page Code Monkey logo

shashankag14 / reliablestudent Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fnozarian/reliablestudent

2.0 0.0 0.0 0 B

[CVPR 2023 - L3D-IVU] PyTorch implementation of "Reliable Student: Addressing Noise in Semi-Supervised 3D Object Detection"

Home Page: https://openaccess.thecvf.com/content/CVPR2023W/L3D-IVU/papers/Nozarian_Reliable_Student_Addressing_Noise_in_Semi-Supervised_3D_Object_Detection_CVPRW_2023_paper.pdf

License: Apache License 2.0

Shell 0.32% C++ 5.71% Python 83.70% C 0.39% Cuda 9.70% Dockerfile 0.18%
autonomous-driving 3d-object-detection kitti-dataset openpcdet point-cloud semi-supervised-object-detection

reliablestudent's Introduction

Reliable Student: Addressing Noise in Semi-Supervised 3D Object Detection

This is the official implementation of the paper "Reliable Student: Addressing Noise in Semi-Supervised 3D Object Detection".

Results

Evaluation results on the KITTI dataset.

Labeled Percent 1% 2%
Method Car Pedestrian Cyclist Car Pedestrian Cyclist
PV-RCNN 74.1 31.7 28.8 76.8 40.4 42.3
3DIoUMatch (Baseline) 76.4 35.7 36.0 78.9 47.0 53.3
ReliableStudent 77.0 41.9 36.4 79.5 53.0 59.0

Installation

# Create a conda environment
conda create -n reliable_student python=3.8
conda activate reliable_student

# Install PyTorch 1.7.1 with CUDA 11.0
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch

# Install spconv 1.2.1
git clone -b v1.2.1 https://github.com/traveller59/spconv.git --recursive
cd spconv
python setup.py bdist_wheel
python -m pip install ./dist/spconv-1.2.1-cp38-cp38-linux_x86_64.whl
cd ..

# Clone the repo, install requirements and compile
git clone https://github.com/fnozarian/ReliableStudent.git
cd ReliableStudent
python -m pip install -r requirements.txt
python setup.py develop

Getting Started

Data Preparation

Please refer to Data Preparation to generate the data splits or use the baseline data we provide.

Pre-training

# Single GPU (e.g., A100-80GB)
python -u pretrain.py \
    --cfg_file ./cfgs/kitti_models/pv_rcnn.yaml \
    --batch_size 8 \
    --split train_0.01_1 \
    --extra_tag train_0.01_1 \
    --ckpt_save_interval 4 \
    --repeat 10 \
    --dbinfos kitti_dbinfos_train_0.01_1_37.pkl

# Multi-GPU with Slurm (e.g., A100-40GB x2)
srun -p A100-40GB --job-name=pretrain_0.01_1 --ntasks=2 \
    --gpus-per-task=1 --cpus-per-task=3 \
    --mem=60GB --kill-on-bad-exit=1 python -u pretrain.py \
    --cfg_file ./cfgs/kitti_models/pv_rcnn.yaml --batch_size 8 \
    --launcher slurm --split train_0.01_1 --extra_tag train_0.01_1 \
    --ckpt_save_interval 4 --repeat 10 \
    --dbinfos kitti_dbinfos_train_0.01_1_37.pkl

Training

# Single GPU (e.g., A100-80GB)
python -u train.py \
    --cfg_file ./cfgs/kitti_models/pv_rcnn_ssl_60.yaml \
    --batch_size 8 \
    --launcher slurm \
    --split train_0.01_1 \
    --extra_tag train_0.01_1 \
    --ckpt_save_interval 2 \
    --pretrained_model "../output/cfgs/kitti_models/pv_rcnn/split_0.01_1/ckpt/checkpoint_epoch_80.pth" \
    --repeat 5 \
    --dbinfos kitti_dbinfos_train_0.01_1_37.pkl
    
# Multi-GPU with Slurm (e.g., A100-40GB x2)
srun -p A100-40GB --job-name=train_0.01_1 --ntasks=2 \
    --gpus-per-task=1 --cpus-per-task=3 \
    --mem=60GB --kill-on-bad-exit=1 python -u train.py \
    --cfg_file ./cfgs/kitti_models/pv_rcnn_ssl_60.yaml \
    --batch_size 8 --launcher slurm --split train_0.01_1 \
    --extra_tag train_0.01_1 --ckpt_save_interval 2 \
    --pretrained_model "../output/cfgs/kitti_models/pv_rcnn/split_0.01_1/ckpt/checkpoint_epoch_80.pth" \
    --repeat 5 --dbinfos kitti_dbinfos_train_0.01_1_37.pkl

Acknowledgements

Our code is based on 3DIoUMatch-PVRCNN and OpenPCDet v0.5. Thanks OpenPCDet Development Team for their awesome codebase.

This work has been funded by the German Ministry for Education and Research (BMB+F) in the project MOMENTUM.

Citation

If you find this work useful, please consider citing:

@InProceedings{Nozarian_2023_CVPR,
    author    = {Nozarian, Farzad and Agarwal, Shashank and Rezaeianaran, Farzaneh and Shahzad, Danish and Poibrenski, Atanas and M\"uller, Christian and Slusallek, Philipp},
    title     = {Reliable Student: Addressing Noise in Semi-Supervised 3D Object Detection},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
    month     = {June},
    year      = {2023},
    pages     = {4980-4989}
}

reliablestudent's People

Contributors

sshaoshuai avatar fnozarian avatar shashankag14 avatar jihanyang avatar gus-guo avatar yezhen17 avatar danish87 avatar djiajunustc avatar frezaeix avatar acivgin1 avatar martinhahner avatar starrah avatar chreisinger avatar yangtianyu92 avatar xiazhongyv avatar xiangruhuang avatar shijianjian avatar ltphy avatar lea-v avatar dk-liang avatar cheng052 avatar yzichen avatar xaviersantos avatar lookquad avatar nopileos2 avatar lynnpepin avatar julianschoep avatar honggyuchoi avatar dingry avatar deepsthewarrior avatar

Stargazers

Hungsing avatar  avatar

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.