All Projects β†’ maudzung β†’ Sfa3d

maudzung / Sfa3d

Licence: mit
Super Fast and Accurate 3D Object Detection based on 3D LiDAR Point Clouds (The PyTorch implementation)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Sfa3d

Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-77.61%)
Mutual labels:  ros, real-time
Depth clustering
πŸš• Fast and robust clustering of point clouds generated with a Velodyne sensor.
Stars: ✭ 657 (+40.09%)
Mutual labels:  ros, real-time
Kimera Vio Ros
ROS wrapper for Kimera-VIO
Stars: ✭ 182 (-61.19%)
Mutual labels:  ros, real-time
Pendulum
ROS, ROS2, real-time, control, pendulum
Stars: ✭ 37 (-92.11%)
Mutual labels:  ros, real-time
Hdl localization
Real-time 3D localization using a (velodyne) 3D LIDAR
Stars: ✭ 332 (-29.21%)
Mutual labels:  ros, real-time
Pinocchio
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Stars: ✭ 432 (-7.89%)
Mutual labels:  ros
Primus
⚑ Primus, the creator god of the transformers & an abstraction layer for real-time to prevent module lock-in.
Stars: ✭ 4,302 (+817.27%)
Mutual labels:  real-time
Mobilepose Pytorch
Light-weight Single Person Pose Estimator
Stars: ✭ 427 (-8.96%)
Mutual labels:  real-time
Apm planner
APM Planner Ground Control Station (Qt)
Stars: ✭ 413 (-11.94%)
Mutual labels:  ros
Zephyr
Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Stars: ✭ 5,335 (+1037.53%)
Mutual labels:  real-time
Canalsharp
Alibaba mysql database binlog subscription & consumer components Canal's .NET client.
Stars: ✭ 451 (-3.84%)
Mutual labels:  real-time
Centrifuge
Real-time messaging library for Go with scalability in mind
Stars: ✭ 446 (-4.9%)
Mutual labels:  real-time
Sofa
Real-time multi-physics simulation with an emphasis on medical simulation.
Stars: ✭ 435 (-7.25%)
Mutual labels:  real-time
Openpose
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
Stars: ✭ 22,892 (+4781.02%)
Mutual labels:  real-time
Odas
ODAS: Open embeddeD Audition System
Stars: ✭ 435 (-7.25%)
Mutual labels:  real-time
Libsurvive
Open Source Lighthouse Tracking System
Stars: ✭ 462 (-1.49%)
Mutual labels:  ros
Spot mini mini
Dynamics and Domain Randomized Gait Modulation with Bezier Curves for Sim-to-Real Legged Locomotion.
Stars: ✭ 426 (-9.17%)
Mutual labels:  ros
Openpose unity plugin
OpenPose's Unity Plugin for Unity users
Stars: ✭ 446 (-4.9%)
Mutual labels:  real-time
Lednet
LEDNet: A Lightweight Encoder-Decoder Network for Real-time Semantic Segmentation
Stars: ✭ 450 (-4.05%)
Mutual labels:  real-time
Ray Tracing Renderer
[UNMAINTAINED] Real-time path tracing on the web with three.js
Stars: ✭ 444 (-5.33%)
Mutual labels:  real-time

Super Fast and Accurate 3D Object Detection based on 3D LiDAR Point Clouds

python-image pytorch-image


Features

  • [x] Super fast and accurate 3D object detection based on LiDAR
  • [x] Fast training, fast inference
  • [x] An Anchor-free approach
  • [x] No Non-Max-Suppression
  • [x] Support distributed data parallel training
  • [x] Release pre-trained models

The technical details are described here

Update 2020.09.06: Add ROS source code. The great work has been done by @AhmedARadwan. The implementation is here

Demonstration (on a single GTX 1080Ti)

demo

Youtube link

2. Getting Started

2.1. Requirement

The instructions for setting up a virtual environment is here.

git clone https://github.com/maudzung/SFA3D.git SFA3D
cd SFA3D/
pip install -r requirements.txt

2.2. Data Preparation

Download the 3D KITTI detection dataset from here.

The downloaded data includes:

  • Velodyne point clouds (29 GB)
  • Training labels of object data set (5 MB)
  • Camera calibration matrices of object data set (16 MB)
  • Left color images of object data set (12 GB) (For visualization purpose only)

Please make sure that you construct the source code & dataset directories structure as below.

2.3. How to run

2.3.1. Visualize the dataset

To visualize 3D point clouds with 3D boxes, let's execute:

cd sfa/data_process/
python kitti_dataset.py

2.3.2. Inference

The pre-trained model was pushed to this repo.

python test.py --gpu_idx 0 --peak_thresh 0.2

2.3.3. Making demonstration

python demo_2_sides.py --gpu_idx 0 --peak_thresh 0.2

The data for the demonstration will be automatically downloaded by executing the above command.

2.3.4. Training

2.3.4.1. Single machine, single gpu
python train.py --gpu_idx 0
2.3.4.2. Distributed Data Parallel Training
  • Single machine (node), multiple GPUs
python train.py --multiprocessing-distributed --world-size 1 --rank 0 --batch_size 64 --num_workers 8
  • Two machines (two nodes), multiple GPUs

    • First machine
    python train.py --dist-url 'tcp://IP_OF_NODE1:FREEPORT' --multiprocessing-distributed --world-size 2 --rank 0 --batch_size 64 --num_workers 8
    
    • Second machine
    python train.py --dist-url 'tcp://IP_OF_NODE2:FREEPORT' --multiprocessing-distributed --world-size 2 --rank 1 --batch_size 64 --num_workers 8
    

Tensorboard

  • To track the training progress, go to the logs/ folder and
cd logs/<saved_fn>/tensorboard/
tensorboard --logdir=./

Contact

If you think this work is useful, please give me a star!
If you find any errors or have any suggestions, please contact me (Email: [email protected]).
Thank you!

Citation

@misc{Super-Fast-Accurate-3D-Object-Detection-PyTorch,
  author =       {Nguyen Mau Dung},
  title =        {{Super-Fast-Accurate-3D-Object-Detection-PyTorch}},
  howpublished = {\url{https://github.com/maudzung/Super-Fast-Accurate-3D-Object-Detection}},
  year =         {2020}
}

References

[1] CenterNet: Objects as Points paper, PyTorch Implementation
[2] RTM3D: PyTorch Implementation
[3] Libra_R-CNN: PyTorch Implementation

The YOLO-based models with the same BEV maps input:
[4] Complex-YOLO: v4, v3, v2

3D LiDAR Point pre-processing:
[5] VoxelNet: PyTorch Implementation

Folder structure

${ROOT}
└── checkpoints/
    β”œβ”€β”€ fpn_resnet_18/    
        β”œβ”€β”€ fpn_resnet_18_epoch_300.pth
└── dataset/    
    └── kitti/
        β”œβ”€β”€ImageSets/
        β”‚   β”œβ”€β”€ test.txt
        β”‚   β”œβ”€β”€ train.txt
        β”‚   └── val.txt
        β”œβ”€β”€ training/
        β”‚   β”œβ”€β”€ image_2/ (left color camera)
        β”‚   β”œβ”€β”€ calib/
        β”‚   β”œβ”€β”€ label_2/
        β”‚   └── velodyne/
        └── testing/  
        β”‚   β”œβ”€β”€ image_2/ (left color camera)
        β”‚   β”œβ”€β”€ calib/
        β”‚   └── velodyne/
        └── classes_names.txt
└── sfa/
    β”œβ”€β”€ config/
    β”‚   β”œβ”€β”€ train_config.py
    β”‚   └── kitti_config.py
    β”œβ”€β”€ data_process/
    β”‚   β”œβ”€β”€ kitti_dataloader.py
    β”‚   β”œβ”€β”€ kitti_dataset.py
    β”‚   └── kitti_data_utils.py
    β”œβ”€β”€ models/
    β”‚   β”œβ”€β”€ fpn_resnet.py
    β”‚   β”œβ”€β”€ resnet.py
    β”‚   └── model_utils.py
    └── utils/
    β”‚   β”œβ”€β”€ demo_utils.py
    β”‚   β”œβ”€β”€ evaluation_utils.py
    β”‚   β”œβ”€β”€ logger.py
    β”‚   β”œβ”€β”€ misc.py
    β”‚   β”œβ”€β”€ torch_utils.py
    β”‚   β”œβ”€β”€ train_utils.py
    β”‚   └── visualization_utils.py
    β”œβ”€β”€ demo_2_sides.py
    β”œβ”€β”€ demo_front.py
    β”œβ”€β”€ test.py
    └── train.py
β”œβ”€β”€ README.md 
└── requirements.txt
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].