• Stars
    star
    378
  • Rank 113,272 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 2 years ago
  • Updated about 1 year ago

Reviews

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

Repository Details

(CVPR 2023) NoPe-NeRF: Optimising Neural Radiance Field with No Pose Prior

NoPe-NeRF: Optimising Neural Radiance Field with No Pose Prior

Project Page | Arxiv | Data | Pretrained Model

Wenjing Bian, Zirui Wang, Kejie Li, Jiawag Bian, Victor Adrian Prisacariu. (CVPR 2023 highlight)

Active Vision Lab, University of Oxford.

Table of Content

Installation

git clone https://github.com/ActiveVisionLab/nope-nerf.git
cd nope-nerf
conda env create -f environment.yaml
conda activate nope-nerf

Data and Preprocessing

  1. Tanks and Temples: Our pre-processed Tanks and Temples data contains the 8 scenes shown in the paper. Each scene contains images, monocular depth estimations from DPT and COLMAP poses. You can download and unzip it to data directory.

  2. NeRF LLFF: We also provide config file for NeRF LLFF dataset. You can download the dataset and unzip it to data directory. One example of the config file is configs/LLFF/fern.yaml.

  3. If you want to use your own image sequence with customised camera intrinsics, you need to add an intrinsics.npz file to the scene directory. One example of the config file is configs/Test/images.yaml (please add your own data to the data/Test/images directory).

Monocular depth map generation: you can first download the pre-trained DPT model from this link provided by Vision Transformers for Dense Prediction to DPT directory, then run

python preprocess/dpt_depth.py configs/preprocess.yaml

to generate monocular depth maps. You need to modify the cfg['dataloading']['path'] and cfg['dataloading']['scene'] in configs/preprocess.yaml to your own image sequence.

Training

  1. Train a new model from scratch:
python train.py configs/Tanks/Ignatius.yaml

where you can replace configs/Tanks/Ignatius.yaml with other config files.

You can monitor on http://localhost:6006 the training process using tensorboard:

tensorboard --logdir ./out --port 6006

For available training options, please take a look at configs/default.yaml.

Evaluation

  1. Evaluate image quality and depth:
python evaluation/eval.py configs/Tanks/Ignatius.yaml

To evaluate depth: add --depth . Note that you need to add ground truth depth maps by yourself.

  1. Evaluate poses:
python evaluation/eval_poses.py configs/Tanks/Ignatius.yaml

To visualise trajectory: add --vis

More Visualisations

Novel view synthesis

python vis/render.py configs/Tanks/Ignatius.yaml

Acknowledgement

We thank Theo Costain and Michael Hobley for helpful comments and proofreading. We thank Shuai Chen and Xinghui Li for insightful discussions. Wenjing Bian is supported by China Scholarship Council (CSC).

We refer to NeRFmm, UNISURF, Vision Transformers for Dense Prediction, kitti-odom-eval and nerf-pytorch. We thank the excellent code they provide.

Citation

 @inproceedings{bian2022nopenerf,
	author    = {Wenjing Bian and Zirui Wang and Kejie Li and Jiawang Bian and Victor Adrian Prisacariu},
	title     = {NoPe-NeRF: Optimising Neural Radiance Field with No Pose Prior},
	journal   = {CVPR},
	year      = {2023}
	}

More Repositories

1

Awesome-LLM-3D

Awesome-LLM-3D: a curated list of Multi-modal Large Language Model in 3D world Resources
949
star
2

nerfmm

(Arxiv 2021) NeRF--: Neural Radiance Fields Without Known Camera Parameters
Python
550
star
3

MobileBrick

This repository contains evaluation code for CVPR2023 paper "MobileBrick: Building LEGO for 3D Reconstruction on Mobile Devices"
Python
137
star
4

porf

(ICLR 2024) PoRF: Pose Residual Field for Accurate Neural Surface Reconstruction
Python
123
star
5

DFNet

DFNet: Enhance Absolute Pose Regression with Direct Feature Matching (ECCV 2022)
Python
77
star
6

DualRC-Net

Python
56
star
7

DSConv

Python
49
star
8

SD4Match

Python
32
star
9

ray-onet

Python
29
star
10

gaussctrl

[ECCV 2024] GaussCtrl: Multi-View Consistent Text-Driven 3D Gaussian Splatting Editing
Python
27
star
11

LearningToCountAnything

This is the official implementation of: Learning to Count Anything: Reference-less Class-agnostic Counting with Weak Supervision Michael Hobley, Victor Prisacariu
Python
26
star
12

ANCNet

Correspondence Networks with Adaptive Neighbourhood Consensus
Python
24
star
13

LaLaLoc

Latent Layout Localisation
Python
21
star
14

direct-posenet

Direct-PoseNet: Absolute Pose Regression with Photometric Consistency (3DV 2021)
Python
20
star
15

BNInterpolation

Training scripts and Python modules for the ECCV 2018 paper "Interpolating Convolutional Networks Using Batch Normalization"
Python
12
star
16

NINormal

(BMVC 2020 Oral) Neighbourhood-Insensitive Point Cloud Normal Estimation Network
Python
10
star
17

NUQ

Finding Non-Uniform Quantization Schemes using Multi-Task Gaussian Processes
Python
4
star
18

ApproxConv

Code for the paper "Approximating Continuous Convolutions for Deep Network Compression"
Python
3
star
19

Quantization

Python
2
star
20

NeFeS

1
star