Skip to content

sadrasafa/WarpRF

Repository files navigation

WarpRF: Multi-View Consistency for Training-Free Uncertainty Quantification and Applications in Radiance Fields

Official implementation of: "WarpRF: Multi-View Consistency for Training-Free Uncertainty Quantification and Applications in Radiance Fields" Accepted at WACV 2026

by Sadra Safadoust, Fabio Tosi, Fatma Güney, and Matteo Poggi

📑 Table of Contents

  1. Overview
  2. Installation
  3. Active View Selection
  4. Uncertainty Quantification
  5. Citation
  6. Acknowledgements

🍉 Overview

WarpRF introduces a training-free uncertainty quantification framework for radiance fields by leveraging multi-view consistency. It does not require modifiying the internal strucutre of the radiance fields, making it compatible with a wide range of representations such as 3D Gaussian Splatting (3DGS), NeRF, SVRaster, and more. Additionally, it requires no changes to the training procedure, allowing it to be applied directly to trained radiance fields. This repository provides the implementation for 3DGS experiments, with code for NeRF and SVRaster experiments coming soon.

⚙️ Installation

Clone our repository with submodules:

git clone git@github.com:sadrasafa/WarpRF.git --recursive

Create a conda environment and install the requirements:

conda create -n warprf python=3.10
conda activate warprf
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt
pip install --no-build-isolation submodules/diff-gaussian-rasterization/
pip install --no-build-isolation submodules/simple-knn/
pip install --no-build-isolation -e ./diff/ -v
Possible Installation Issues

We have tested the code using the specified package versions. However, you may need to install PyTorch with the CUDA version that is compatible with your system.

If you encounter the following error:

simple_knn.cu(90): error: identifier "FLT_MAX" is undefined

add the line

#include <float.h>

to submodules/simple-knn/simple_knn.cu to resolve the issue.

📸 Active-View Selection

Download the MipNeRF360 and NeRF-Synthetic datasets and place them in your preferred data directory. Use the scripts/active_*.sh files to run the active view selection with 3DGS experiments.

# active view selection on MipNeRF360
bash scripts/active_mipnerf.sh   [PATH_TO_SCENE] [OUTPUT_DIR] 

# active view selection on NeRF-Synthetic with 20 views
bash scripts/active_blender20.sh [PATH_TO_SCENE] [OUTPUT_DIR] 

# active view selection on NeRF-Synthetic with 10 views
bash scripts/active_blender10.sh [PATH_TO_SCENE] [OUTPUT_DIR] 

📉 Uncertainty Quantification

ETH3D

Download the ETH3D. We only need the undistorted jpg images and the undistorted depths. Note that only ground-truth depth that match the distorted images are provided, therefore they need to be undistorted given the camera parameters. (see here). To match our train/val split, download and unzip the split files from here.

ScanNet++

Download the ScanNet++ dataset. We use the DSLR data for the following scenes: 27dd4da69e, 3864514494, 5eb31827b7, 8b5caf3398, 8d563fc2cc, b20a261fdf. Follow the instructions at Official ScanNet++ Toolkit to render depth and then undistort the images and depths. Note that the provided undistortion script only undistorts the images, however it can be easily extended to undistort depths too (e.g., check this). Also, it saves the camera intrinsics for the undistorted pinhole camera in the nerfstudio's json format, so make sure to update the camera parameters in the colmap format (cameras.txt) accordingly as well. To match our train/val split, download and unzip the split files from here.

Expected Directory Structure

At the end you should have the following directory structure:

├── [DATASET-NAME]
    ├── [SCENE-NAME]
        ├── split.json
        ├── images
        ├── depths
        ├── sparse
            ├── 0
                ├── cameras.txt
                ├── images.txt
                ├── points3D.txt

Use the scripts/ause_*.sh files to run uncertainty quantification with 3DGS experiments.

# uncertainty quantification on ETH3D
bash scripts/ause_ETH3D.sh     [PATH_TO_SCENE] [OUTPUT_DIR]

 # uncertainty quantification on ScanNet++
bash scripts/ause_scannetpp.sh [PATH_TO_SCENE] [OUTPUT_DIR]

🖋️ Citation

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

@inproceedings{safadoust2026warprf,
  title={WarpRF: Multi-View Consistency for Training-Free Uncertainty Quantification and Applications in Radiance Fields},
  author={Safadoust, Sadra and Tosi, Fabio and G{\"u}ney, Fatma and Poggi, Matteo},
  booktitle={Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision},
  year={2026}
}

🙏 Acknowledgements

This project builds heavily on FisherRF and 3D Gaussian Splatting. We are grateful to the authors for making their code publicly available.

About

Source code for WACV 2026 paper "WarpRF: Multi-View Consistency for Training-Free Uncertainty Quantification and Applications in Radiance Fields"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors