All Projects โ†’ Xharlie โ†’ BtcDet

Xharlie / BtcDet

Licence: Apache-2.0 License
Behind the Curtain: Learning Occluded Shapes for 3D Object Detection

Programming Languages

python
139335 projects - #7 most used programming language
Cuda
1817 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to BtcDet

urban road filter
Real-time LIDAR-based Urban Road and Sidewalk detection for Autonomous Vehicles ๐Ÿš—
Stars: โœญ 134 (+28.85%)
Mutual labels:  point-cloud, lidar, self-driving-car, autonomous-driving
Visualizing-lidar-data
Visualizing lidar data using Uber Autonomous Visualization System (AVS) and Jupyter Notebook Application
Stars: โœญ 75 (-27.88%)
Mutual labels:  self-driving-car, autonomous-driving, autonomous-vehicles, lidar-point-cloud
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: โœญ 1,876 (+1703.85%)
Mutual labels:  point-cloud, lidar, self-driving-car, autonomous-driving
PyLidar3
PyLidar3 is python 3 package to get data from Lidar devices from various manufacturers.
Stars: โœญ 35 (-66.35%)
Mutual labels:  lidar, autonomous-driving, autonomous-vehicles, lidar-point-cloud
Awesome-3D-Object-Detection-for-Autonomous-Driving
Papers on 3D Object Detection for Autonomous Driving
Stars: โœญ 52 (-50%)
Mutual labels:  lidar, autonomous-driving, autonomous-vehicles, 3d-object-detection
LiDAR fog sim
LiDAR fog simulation
Stars: โœญ 101 (-2.88%)
Mutual labels:  point-cloud, lidar, autonomous-driving, lidar-point-cloud
FLAT
[ICCV2021 Oral] Fooling LiDAR by Attacking GPS Trajectory
Stars: โœญ 52 (-50%)
Mutual labels:  point-cloud, lidar, autonomous-driving, 3d-object-detection
Vision3d
Research platform for 3D object detection in PyTorch.
Stars: โœญ 177 (+70.19%)
Mutual labels:  point-cloud, lidar, autonomous-vehicles
SelfDrivingCarsControlDesign
Self Driving Cars Longitudinal and Lateral Control Design
Stars: โœญ 96 (-7.69%)
Mutual labels:  self-driving-car, autonomous-driving, autonomous-vehicles
dig-into-apollo
Apollo notes (Apolloๅญฆไน ็ฌ”่ฎฐ) - Apollo learning notes for beginners.
Stars: โœญ 1,786 (+1617.31%)
Mutual labels:  self-driving-car, autonomous-driving, autonomous-vehicles
LiDAR-GTA-V
A plugin for Grand Theft Auto V that generates a labeled LiDAR point cloud from the game environment.
Stars: โœญ 127 (+22.12%)
Mutual labels:  lidar, self-driving-car, lidar-point-cloud
opendlv
OpenDLV - A modern microservice-based software ecosystem powered by libcluon to make vehicles autonomous.
Stars: โœญ 67 (-35.58%)
Mutual labels:  lidar, self-driving-car, autonomous-driving
SelfDrivingRCCar
Autonomous RC Car using Neural Networks, Python and Open CV
Stars: โœญ 102 (-1.92%)
Mutual labels:  self-driving-car, autonomous-driving, autonomous-vehicles
Rtm3d
Unofficial PyTorch implementation of "RTM3D: Real-time Monocular 3D Detection from Object Keypoints for Autonomous Driving" (ECCV 2020)
Stars: โœญ 211 (+102.88%)
Mutual labels:  self-driving-car, autonomous-driving, autonomous-vehicles
highway-path-planning
My path-planning pipeline to navigate a car safely around a virtual highway with other traffic.
Stars: โœญ 39 (-62.5%)
Mutual labels:  self-driving-car, autonomous-driving, autonomous-vehicles
Python-for-Remote-Sensing
python codes for remote sensing applications will be uploaded here. I will try to teach everything I learn during my projects in here.
Stars: โœญ 20 (-80.77%)
Mutual labels:  point-cloud, lidar, lidar-point-cloud
Awesome Self Driving Car
An awesome list of self-driving cars
Stars: โœญ 185 (+77.88%)
Mutual labels:  self-driving-car, autonomous-driving, autonomous-vehicles
Autonomousdrivingcookbook
Scenarios, tutorials and demos for Autonomous Driving
Stars: โœญ 1,939 (+1764.42%)
Mutual labels:  self-driving-car, autonomous-driving, autonomous-vehicles
Apollo perception ros
Object detection / tracking / fusion based on Apollo r3.0.0 perception module in ROS
Stars: โœญ 179 (+72.12%)
Mutual labels:  self-driving-car, autonomous-driving, autonomous-vehicles
efficient online learning
Efficient Online Transfer Learning for 3D Object Detection in Autonomous Driving
Stars: โœญ 20 (-80.77%)
Mutual labels:  point-cloud, autonomous-driving, 3d-object-detection

Behind the Curtain: Learning Occluded Shapes for 3D Object Detection (AAAI-2022)

Reference

Please cite our paper if you are interested to use this implementation,
Behind the Curtain: Learning Occluded Shapes for 3D Object Detection.

@article{xu2021behind,
  title={Behind the Curtain: Learning Occluded Shapes for 3D Object Detection},
  author={Xu, Qiangeng and Zhong, Yiqi and Neumann, Ulrich},
  journal={arXiv preprint arXiv:2112.02205},
  year={2021}
}

The implementatin is also inspired by the ICCV-2021 paper,
SPG: Unsupervised domain adaptation for 3d object detection via semantic point generation.

@inproceedings{xu2021spg,
  title={Spg: Unsupervised domain adaptation for 3d object detection via semantic point generation},
  author={Xu, Qiangeng and Zhou, Yin and Wang, Weiyue and Qi, Charles R and Anguelov, Dragomir},
  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
  pages={15446--15456},
  year={2021}
}

Acknowledgement

Our model, BtcDet, is implemented based on [OpenPcdet 0.3.0]. We thank Shaohuai Shi for the discussion during our implementation.

Installation

Requirements

All the codes are tested in the following environment:

Install

b. Install the dependent libraries as follows:

  • Install the dependent python libraries:
pip install -r requirements.txt 
  • Install the SparseConv library, we use the implementation from [spconv].
    • The very recent spconv 2.+ has significant interface changes and some issues in operators. Therefore, we do not support it for now.
    • If you use PyTorch 1.1, then make sure you install the spconv v1.0 with (commit 8da6f96) instead of the latest one.
    • If you use PyTorch 1.3+, then you need to install the spconv v1.2. As mentioned in v1.2.1 of spconv (https://github.com/traveller59/spconv/tree/v1.2.1)
    git clone -b v1.2.1  https://github.com/traveller59/spconv.git --recursive
    
    cd spconv
    
    sudo apt-get install libboost-all-dev
    
    python setup.py bdist_wheel
    
    cd ./dist 
    
    Inside the dist directory, use pip to install generated whl file.
    pip install spconv-1.2.1-{your system info}.whl
    
    After that, you should first get out of the spconv directory, then do python import spconv to see if you installed it correctly.

c. Install the operators in BtcDet by running the following command:

cd BtcDet
python setup.py develop

Preparation

Use Our Preprocessed Data:

you can use our generated kitti's data including the generated complete object points, download it [here (about 31GBs)] and put the zip file inside data/kitti/ and unzip it as detection3d directory.

Alternatively, Generate Data by Yourself:

####KITTI Dataset

  • Please download the official KITTI 3D object detection dataset and organize the downloaded files as follows (the road planes could be downloaded from [road plane], which are optional for data augmentation in the training):
BtcDet
โ”œโ”€โ”€ data
โ”‚   โ”œโ”€โ”€ kitti
    โ”‚   โ”‚   โ”‚โ”€โ”€detection3d  โ”‚โ”€โ”€ ImageSets
                    โ”‚   โ”‚   โ”‚โ”€โ”€ training
                    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€calib & velodyne & label_2 & image_2 & (optional: planes) & (optional: depth_2)
                    โ”‚   โ”‚   โ”‚โ”€โ”€ testing
                    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€calib & velodyne & image_2
  • Generate the data infos by running the following command:
python -m btcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml

Generate Approximated complete object points:

(Under BtcDet directory, execute:)

python -m btcdet.datasets.multifindbestfit

Run Training:

cd tools/

Single gpu training

mkdir output

mkdir output/kitti_car

python train.py --cfg_file ./cfgs/model_configs/btcdet_kitti_car.yaml --output_dir ../output/kitti_car/ --batch_size 2 --gpu_str "0"

Multi gpu training, assuming you have 4 gpus:

bash scripts/dist_train.sh 4  --batch_size 8 --gpu_str "0,1,2,3" --cfg_file ./cfgs/model_configs/btcdet_kitti_car.yaml --output_dir ../output/kitti_car/

Run Testing:

cd tools/

Single gpu testing for all saved checkpoints, assuming you have 4 gpus:

python test.sh 4 --eval-all --cfg_file ./cfgs/model_configs/btcdet_kitti_car.yaml --gpu_str "0" --batch_size 2 --output_dir ../output/kitti_car/ --ckpt_dir  ../output/kitti_car/ckpt/

Multi gpu testing for all saved checkpoints, assuming you have 4 gpus:

bash scripts/dist_test.sh 4 --eval-all --cfg_file ./cfgs/model_configs/btcdet_kitti_car.yaml --gpu_str "0,1,2,3" --batch_size 8 --output_dir ../output/kitti_car/ --ckpt_dir  ../output/kitti_car/ckpt/

Multi gpu testing a specific checkpoint, assuming you have 4 gpus and checkpoint_39 is your best checkpoint :

bash scripts/dist_test.sh 4  --cfg_file ./cfgs/model_configs/btcdet_kitti_car.yaml --gpu_str "0,1,2,3" --batch_size 8 --output_dir ../output/kitti_car/ --ckpt  ../output/kitti_car/ckpt/checkpoint_epoch_39.pth
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].