Home

Awesome

NeuralPCI

PWC

PWC

NeuralPCI: Spatio-temporal Neural Field for 3D Point Cloud Multi-frame Non-linear Interpolation
Zehan Zheng*, Danni Wu*, Ruisi Lu, Fan Lu, Guang Chen†, Changjun Jiang.
(* Equal contribution, † Corresponding author)
CVPR 2023

Paper (arXiv) | Paper (CVPR) | Project Page | Video (6min) | Talk (15min, Chinese) | Slides | Poster

Indoor ScenarioOutdoor Scenario
<video src="https://user-images.githubusercontent.com/51731102/228475246-e0f2d3c8-adad-41d5-a474-c05a2945cb20.mp4"><video src="https://user-images.githubusercontent.com/51731102/228474998-37c81904-061b-4b35-b70e-465c94a93ed8.mp4">
<!-- TABLE OF CONTENTS --> <details open="open" style='padding: 10px; border-radius:5px 30px 30px 5px; border-style: solid; border-width: 1px;'> <summary>Table of Contents</summary> <ol> <li> <a href="#changelog">Changelog</a> </li> <li> <a href="#get-started">Get Started</a> </li> <li> <a href="#introduction">Introduction</a> </li> <li> <a href="#dataset">Dataset</a> </li> <li> <a href="#benchmark">Benchmark</a> </li> <li> <a href="#visualization">Visualization</a> </li> <li> <a href="#citation">Citation</a> </li> <!-- <li> <a href="#acknowledgements">Acknowledgements</a> </li> --> <li> <a href="#license">License</a> </li> </ol> </details>

Changelog

2023-5-21: ✨ We release the code of NeuralPCI along with the NL-Drive dataset.
2023-3-27: We post the preprint paper on arXiv and release the project page.
2023-2-28: This paper is accepted by CVPR 2023 🎉🎉.

Introduction

This repository is the PyTorch implementation for NeuralPCI.

NeuralPCI is an end-to-end 4D spatio-temporal Neural field for 3D Point Cloud Interpolation, which implicitly integrates multi-frame information to handle nonlinear large motions for both indoor and outdoor scenarios.

<img src="img\overview.png" width=85%>

The 4D neural field is constructed by encoding the spatio-temporal coordinates of the multi-frame input point clouds via a coordinate-based multi-layer perceptron network. For each point cloud frame of the input, the interpolation time is set to the corresponding timestamps of four input frames for NeuralPCI to generate the corresponding point cloud. And then the neural field is optimized on runtime in a self-supervised manner without relying on ground truth. In the inference stage after optimization, NeuralPCI receives a reference point cloud and an arbitrary interpolation frame moment as input to generate the point cloud of the associated spatio-temporal location.

Get Started

Installation

Please follow instructions to setup the environment.

git clone https://github.com/ispc-lab/NeuralPCI.git
cd ./NeuralPCI/

conda create -n npci python=3.9
conda activate npci

conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch -y

conda install -c open3d-admin open3d==0.9.0 -y
conda install -c conda-forge -c fvcore -c iopath fvcore iopath -y
conda install -c bottler nvidiacub -y
conda install pytorch3d -c pytorch3d -y

conda install pyg -c pyg -y
conda install -c conda-forge shapely -y

# compile cuda CD&EMD
cd ./utils/CD/chamfer3D/
python setup.py install

cd ../../EMD/
python setup.py install
cp build/lib.linux-x86_64-cpython-39/emd_cuda.cpython-39-x86_64-linux-gnu.so .

# compile point cloud utils
cd ../point_cloud_query/
python setup.py install

cd ../pointnet2/
python setup.py install

Run NeuralPCI

Refer to Dataset for data downloading first.
Create a soft link to the dataset folder for DHB and NL-Drive.

ln -s /PATH/TO/DHB ./data/DHB-dataset
ln -s /PATH/TO/NL_Drive ./data/NL_Drive

Make sure you are in the root directory of this repo.

For DHB dataset, run

bash run_DHB.sh

For NL-Drive dataset, run

bash run_NL_Drive.sh

Dataset

NL-Drive

<img src="img/NL_Drive.png" width=50%>

Download link: [OneDrive] [Google Drive (testset only)]

NL-Drive dataset is a challenging multi-frame interpolation dataset for autonomous driving scenarios. Based on the principle of hard-sample selection and the diversity of scenarios, NL-Drive dataset contains point cloud sequences with large nonlinear movements from three public large-scale autonomous driving datasets: KITTI, Argoverse and Nuscenes.

DHB

<img src="img/DHB.png" width=50%>

Download link: [Google Drive]

Dynamic Human Bodies dataset (DHB), containing 10 point cloud sequences from the MITAMA dataset and 4 from the 8IVFB dataset. The sequences in DHB record 3D human motions with large and non-rigid deformation in real world. The overall dataset contains more than 3000 point cloud frames. And each frame has 1024 points.

Benchmark

MethodLongdressLootRed&BlackSoldierSquatSwingOverall ↓
IDEA-Net0.890.860.941.630.621.241.02
PointINet0.980.850.870.970.901.450.96
NSFP1.040.810.970.681.143.091.22
PV-RAFT1.030.820.940.910.571.420.92
NeuralPCI (Ours)0.700.610.670.590.030.530.54
MethodLongdressLootRed&BlackSoldierSquatSwingOverall ↓
IDEA-Net6.018.6210.3430.076.686.9312.03
PointINet10.8712.1010.6812.3913.9914.8112.25
NSFP7.457.138.145.257.9711.397.81
PV-RAFT6.885.997.035.312.8110.546.14
NeuralPCI (Ours)4.364.764.794.630.022.223.68
MethodFrame-1Frame-2Frame-3Average ↓
NSFP0.941.752.551.75
PV-RAFT1.361.921.631.64
PointINet0.931.241.011.06
NeuralPCI (Ours)0.720.940.740.80
MethodFrame-1Frame-2Frame-3Average ↓
NSFP95.18132.30168.91132.13
PV-RAFT104.57146.87169.82140.42
PointINet97.48110.2295.65101.12
NeuralPCI (Ours)89.03113.4588.6197.03

Visualization

<img src="img/DHB_vis.png" width=80%> <img src="img/NL_Drive_vis.png" width=80%>

Citation

If you find our code or paper useful, please cite

@inproceedings{zheng2023neuralpci,
  title     = {NeuralPCI: Spatio-temporal Neural Field for 3D Point Cloud Multi-frame Non-linear Interpolation},
  author    = {Zheng, Zehan and Wu, Danni and Lu, Ruisi and Lu, Fan and Chen, Guang and Jiang, Changjun},
  booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  year      = {2023}
  }
<!-- ## Acknowledgements -->

License

All code within this repository is under Apache License 2.0.