• Stars
    star
    328
  • Rank 128,352 (Top 3 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created almost 3 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[NeurIPS2022] Official implementation of PeRFception: Perception using Radiance Fields.

PeRFception - Perception using Radiance Fields

teaser

Quick Access

Project Page | Paper | Supplementary Materials

Author Info

News

  • 22.10.27: Added HuggingFace repo for ScanNet.
  • 22.10.25: Moved PeRFception datasets from OneDrive to HuggingFace.
  • 22.08.04: The first version of PeRFception has been released.
teaser

Abstract

The recent progress in implicit 3D representation, i.e., Neural Radiance Fields (NeRFs), has made accurate and photorealistic 3D reconstruction possible in a differentiable manner. This new representation can effectively convey the information of hundreds of high-resolution images in one compact format and allows photorealistic synthesis of novel views. In this work, using the variant of NeRF called Plenoxels, we create the first large-scale implicit representation datasets for perception tasks, called PeRFception, which consists of two parts that incorporate both object-centric and scene-centric scans for classification and segmentation. It shows a significant memory compression rate (96.4%) from the original dataset, while containing both 2D and 3D information in a unified form. We construct the classification and segmentation models that directly take as input this implicit format and also propose a novel augmentation technique to avoid overfitting on backgrounds of images. The code and data will be publicly available.

Downloading PeRFception-Datastes [CO3D-link1] [CO3D-link2] [CO3D-link3] [ScanNet]

# Link1 - PeRFception-CO3D-v1
git clone https://huggingface.co/datasets/YWjimmy/PeRFception-v1-1
# Link2 - PeRFception-CO3D-v1
git clone https://huggingface.co/datasets/YWjimmy/PeRFception-v1-2
# Link3 - PeRFception-CO3D-v1
git clone https://huggingface.co/datasets/YWjimmy/PeRFception-v1-3
# Link1 - PeRFception-ScanNet
git clone https://huggingface.co/datasets/YWjimmy/PeRFception-ScanNet

Downloading specific chunks

mkdir <repo>
cd <repo>
git init
git remote add -f origin [link] 
git config core.sparseCheckout true
echo "some/dir/" >> .git/info/sparse-checkout
echo "another/sub/tree" >> .git/info/sparse-checkout
git pull origin main

# ex) If you want to download data only from 288_30460_58530
echo "30/plenoxel_co3d_288_30460_58530" >> .git/info/sparse-checkout

PeRFception-CO3D

Dataset # Scenes # Frames 3D Shape Features 3D-BKGD Memory Memoery(Rel)
CO3D 18.6K 1.5M pcd C X 1.44TB $$\pm0.00%$$
PeRFception-CO3D 18.6K $$\infty$$ voxel SH + D O 1.33TB $$-6.94%$$

PeRFception-ScanNet

Dataset # Scenes # Frames 3D Shape Features 3D-BKGD Memory Memoery(Rel)
ScanNet 1.5K 2.5M pcd C X 966GB $$\pm0.00%$$
PeRFception-ScanNet 1.5K $$\infty$$ voxel SH + D O 35GB $$-96.4%$$

Get Ready (Installation)

Our code is verified on Ubuntu 20.04 with a CUDA version 11.1.

conda create -n perfception -c anaconda python=3.8 -y
conda activate perfception
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge -y
pip3 install imageio tqdm requests configargparse scikit-image imageio-ffmpeg piqa wandb pytorch_lightning==1.5.5 opencv-python gin-config gdown plyfile
pip3 install .

Demo

We provide a short demo for rendering a scene on CO3D or ScanNet. After installing the requirements, you could run the demo with the codes below:

# CO3D demo
python3 -m run --ginc configs/co3d.gin
# ScanNet demo
python3 -m run --ginc configs/scannet.gin

Rendering CO3D and ScanNet

We deliver the full code to reproduce the performance reported in the main paper. To run the code, you should first put the dataset on a proper location.

data
  |
  |--- co3d
         -- apple 
         -- banana
         ... 
  |
  |--- scannet
         -- scene000_00
         -- scene000_01
         ...

ScanNet-v2 can be downloaded in here and CO3D-v1 can be downloaded in here. Thanks to great functions in wandb, we could manage tremendous scripts. You can download the sweep file here.

Downstream Tasks

Codes for downstream tasks: https://github.com/POSTECH-CVLab/NeRF-Downstream

2D object classification (PeRFception-CO3D)

We benchmark several 2D classification models on rendered PeRFception-CO3D. For faster reproducing, we also provide the rendered images from PeRFception-CO3D on the link link. Before running the code, be sure that you had put the downloaded dataset on data/perfcepton_2d. You can easily reproduce the scores using the scripts of scripts/downstream/2d_cls/[model].sh. Details for the training pipeline and models are elaborated in the main paper.

The pretrained models can be reached with the links below:

2D score

3D object classification (PeRFception-CO3D)

We also benchmark several 3D classification models on PeRFception-CO3D. We provide the full code on the link . You can downloa

3D score

3D semantic segmentation (PeRFception-ScanNet)

In PeRFception-ScanNet, we have evaluated several 3D semantic segmentation models with depth-supervised labels.

Plans for v2

According to the official CO3D repository[link], authors provided an improved version, v2, of CO3D, which would result in better rendering quality and more accurate geometries in our model. We are planning to extend this work to PeRFception-CO3D-v2 from the CO3D-v2.

Citation

@article{jeong2022perfception,
  title   = {PeRFception: Perception using Radiance Fields},
  author  = {Jeong, Yoonwoo and Shin, Seungjoo and Lee, Junha and Choy, Chris and Anandkumar, Anima and Cho, Minsu and Park, Jaesik}
  year    = {2022}
}

Acknowledgement

We appreciate for the reviewers for their constructive comments and suggestions.

More Repositories

1

PyTorch-StudioGAN

StudioGAN is a Pytorch library providing implementations of representative Generative Adversarial Networks (GANs) for conditional/unconditional image generation.
Python
3,423
star
2

point-transformer

This is an unofficial implementation of the Point Transformer paper.
Python
499
star
3

SCNeRF

[ICCV21] Self-Calibrating Neural Radiance Fields
Python
466
star
4

FastPointTransformer

Official source code of Fast Point Transformer, CVPR 2022
Python
264
star
5

Combinatorial-3D-Shape-Generation

An official repository of paper "Combinatorial 3D Shape Generation via Sequential Assembly", presented at NeurIPS 2020 Workshop on Machine Learning for Engineering Modeling, Simulation, and Design
Python
66
star
6

DHVR

[ICCV 2021] Deep Hough Voting for Robust Global Registration
Python
62
star
7

InstaOrder

Instance-wise Occlusion and Depth Orders in Natural Scenes (CVPR 2022)
Jupyter Notebook
34
star
8

style-agnostic-RL

Python
15
star
9

NeRF-Downstream

Official implementation of the benchmarked 2D, 3D classficiation, and 3D semantic segmentation models on PeRFception.
Python
15
star
10

HighQualityFrameInterpolation

An official source code of Choi et al., High-quality Frame Interpolation via Tridirectional Inference, WACV 2021 paper.
Python
15
star
11

nvsadapter

[ECCV2024] Official Implementation of "NVS-Adapter: Plug-and-Play Novel View Synthesis from a Single Image"
CSS
15
star
12

Brick-by-Brick

Official repository of Brick-by-Brick, presented at NeurIPS-2021
Python
14
star
13

CHOIR

Official source code of "Stable and Consistent Prediction of 3D Characteristic Orientation vis Invariant Residual Learning", ICML 2023
14
star
14

daily-reading-group

14
star
15

circlegan

Python
9
star
16

useful_utils

We provide useful util functions. When adding a util function, please add a description of the util function.
Python
6
star
17

Geometric-Primitives

Python
5
star
18

GRLOV

Grasping with Reinforced Learning rObot in Virtual space - 2021 summer 학부생 강화학습 연구참여 프로젝트
Python
4
star
19

NeRF-Factory

NeRF-Factory
2
star
20

LAGS

Python
2
star