Home

Awesome

Occlusion Guided Scene Flow Estimation on 3D Point Clouds

This is official implementation for the paper "Occlusion Guided Scene Flow Estimation on 3D Point Clouds"

Citation

If you find our work useful in your research, please cite:

    @InProceedings{Ouyang_2021_CVPR,
      author    = {Ouyang, Bojun and Raviv, Dan},
      title     = {Occlusion Guided Scene Flow Estimation on 3D Point Clouds},
      booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
      month     = {June},
      year      = {2021},
      pages     = {2805-2814}
    }

Requirement

To run our model, please install the following package (we suggest to use the Anaconda environment):

Compile the furthest point sampling, grouping and gathering operation for PyTorch. We use the operation from this repo.

cd pointnet2
python setup.py install
cd ../

Data preperation

We use the Flyingthings3D and KITTI dataset preprocessed by this work. Download the Flyingthings3D dataset from here and KITTI dataset from here. Create a folder named datasets under the root folder. After the downloading, extract the files into the datasets. The directory of the datasets should looks like the following:

datasets/data_processed_maxcut_35_20k_2k_8192   % FlyingThings3D dataset
datasets/kitti_rm_ground                        % KITTI dataset

Get started

Training

In order to train our model on the Flyingthings3D dataset with 8192 points, run the following:

$ python train.py --num_points 8192 --batch_size 8 --epochs 120 --use_multi_gpu True

for the help on how to use the optional arguments, type:

$ python train.py --help

Evaluation

In order to evaluate our pretrained model under the pretrained_model folder with the Flyingthings3D dataset, run the following:

$ python evaluate.py --num_points 8192 --dataset f3d --ckp_path ./pretrained_model/OGSFNet_94.8932_090_0.1636.pth

for the evaluation on KITTI dataset, run the following:

$ python evaluate.py --num_points 8192 --dataset kitti --ckp_path ./pretrained_model/OGSFNet_94.8932_090_0.1636.pth

For help on how to use this script, type:

$ python evaluate.py --help

Performance

All the following experiments were tested on a single GTX2080Ti GPU

  1. Evaluationg results on Flyingthings3D and KITTI datasets:
EPE_fullEPEACC05ACC10Outliers
Flyingthings3D0.16340.12170.55180.77670.5180
KITTI (without fine tune)0.0751~0.70600.86930.3277
  1. Inference time on the test set of Flyingthings3D and KITTI datasets:
batch sizeFlyingthings3D(min)KITTI(min)
51.350.21

Acknowledgement

In this project we use parts of the official implementations of the following libraries and repositories: