Introduction
This is an unofficial implementation of VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection in pytorch. A large part of this project is based on the work here
Dependencies
python3.5+
pytorch
(tested on 0.3.1)opencv
shapely
mayavi
Installation
- Clone this repository.
- Compile the Cython module for box_overlaps
$ python3 setup.py build_ext --inplace
- Compile the nms model
$ python3 nms/build.py
Data Preparation
-
Download the 3D KITTI detection dataset from here. Data to download include:
- Velodyne point clouds (29 GB): input data to VoxelNet
- Training labels of object data set (5 MB): input label to VoxelNet
- Camera calibration matrices of object data set (16 MB): for visualization of predictions
- Left color images of object data set (12 GB): for visualization of predictions
-
In this project, the cropped point cloud data for training and validation. Point clouds outside the image coordinates are removed.
$ python3 data/crop.py
- Split the training set into training and validation set according to the protocol here.
└── DATA_DIR
├── training <-- training data
| ├── image_2
| ├── label_2
| ├── velodyne
| └── crop
└── testing <--- testing data
| ├── image_2
| ├── label_2
| ├── velodyne
| └── crop
Train
TODO
- training code
- data augmentation
- validation code
- reproduce results for
Car
,Pedestrian
andCyclist
- multi-gpu support
- improve the performances