/self-supervised-post-corr

An official implementation of SIGGRAPH 2022 paper, "Self-Supervised Post-Correction for Monte Carlo Denoising"

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Jonghee Back, Binh-Son Hua, Toshiya Hachisuka, Bochang Moon

Teaser

Overview

This code is the official implementation of SIGGRAPH 2022 paper, Self-Supervised Post-Correction for Monte Carlo Denoising. For more detailed information, please refer to our project page or other materials as below:

We have tested the code on Ubuntu 20.04 with NVIDIA GeForce RTX 3090 graphics card, and we have additionally checked that this code works well on the following graphics cards: NVIDIA GeForce RTX 3060, TITAN RTX, Quadro RTX 8000.

Requirements

We highly recommend running this code through Docker and Nvidia-docker on Ubuntu. Please refer to the detailed instruction for the installation of Docker and Nvidia-docker.

Usage

Building Docker image

Please use run_docker.sh to build a docker file with Dockerfile and run it.

Running self-supervised post-correction

In order to run the provided post-correction codes, you can proceed in the following order:

  1. Prepare image buffers in data folder.
  2. Check configuration setting in main.py.
  3. Run main.py with arguments regarding a test scene.

If you have modified CUDA code in custom_op folder, please build the op library using build_custom_op.sh to update post_correction_lib.so file.

Example code

Please run this command for the provided example data as follows:

python main.py --scene dragon --spp 128 --deno afgsa

Example data

The example data consists of input-denoised pairs with auxiliary features rendered by PBRT-V3. We provide four test scenes (bathroom, hair, dragon and sanmiguel) with three different Monte Carlo denoisers (Kernel-Predicting Convolutional Networks for Denoising Monte Carlo Renderings (KPCN), Adversarial Monte Carlo Denoising with Conditioned Auxiliary Feature Modulation (AMCD) and Monte Carlo Denoising via Auxiliary Feature Guided Self-Attention (AFGSA)). The example data can be available here:

After downloading and unziping the data, please place it in data folder.

License

All source codes are released under a BSD License.

Citation

@inproceedings{Back22,
author = {Back, Jonghee and Hua, Binh-Son and Hachisuka, Toshiya and Moon, Bochang},
title = {Self-Supervised Post-Correction for Monte Carlo Denoising},
year = {2022},
isbn = {9781450393379},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3528233.3530730},
doi = {10.1145/3528233.3530730},
booktitle = {ACM SIGGRAPH 2022 Conference Proceedings},
articleno = {18},
numpages = {8},
keywords = {self-supervised denoising, self-supervised learning, self-supervised loss, Monte Carlo denoising},
location = {Vancouver, BC, Canada},
series = {SIGGRAPH '22}
}

Contact

If there are any questions, issues or comments, please feel free to send an e-mail to jongheeback@gm.gist.ac.kr.

Credits

We have used EXR I/O functionalities (exr.py in codes/image_io) from Kernel-Predicting Convolutional Networks for Denoising Monte Carlo Renderings (KPCN) project.