Skip to main content

Datasets and benchmarks for neural Monte Carlo denoising

Project description

License PyPI - Version GitHub Repo stars

News  |  Benchmarks  |  Datasets

Datasets and benchmarks for neural Monte Carlo denoising.

What is Monte Carlo denoising?

Read More

Monte Carlo integration Kmhkmh

Monte Carlo methods approximate integrals by sampling random points from the function's domain, evaluating the function, and averaging the resulting samples. We mainly focus on light transport simulation as it's a complex and mature application, usually producing visual and intuitive results. In this case, our samples are light paths that a "photon" might take. Above on the right, you see an image rendered with 4 samples per pixel. It's quite noisy.

With a bit of napkin maths, we can estimate that rendering a relatively noise-free 4K image requires tens of billions of samples while rendering a two-hour movie requires quadrillions of samples. Astonishingly, we have data centres fit for this task. Not only do they consume electricity on par with a small town, but such computational requirements put creating 3D art outside the reach of many.

Deep neural networks have an incredible ability to reconstruct noisy data. They learn to combine the sliver of useful information contained in samples from the same object, both spatially from nearby pixels and temporally from subsequent frames. The images denoised with such neural networks (like above on the left) look absurd in comparison.

Getting started

You can start prototyping your denoiser by calling a single function:

from noisebase import Noisebase

data_loader = Noisebase(
   'sampleset_v1', # Our first per-sample dataset
   {
      'framework': 'torch',
      'train': True,
      'buffers': ['diffuse', 'color', 'reference'],
      'samples': 8,
      'batch_size': 16
   }
)

# Get training, pytorch stuff...
for epoch in range(25):
   for data in data_loader:
      ...

And here's the kicker: with just that, our data loaders seamlessly support asynchronous and distributed loading, decompression, and augmentation of large video datasets containing anything from normal maps, diffuse maps, motion vectors, temporally changing camera intrinsics, and noisy HDR samples.

As you scale up, you'll want a little more control. Thankfully, Noisebase is fully integrated with Hydra and Pytorch Lightning.

Noisebase can also:

  • Download training and testing data
  • Runs benchmark with many metrics
  • Neatly summarize everything into tables
  • Help you keep track of denoising performance while keeping your implementation simple

Installation

You can quickly install Noisebase from PyPI:

pip install noisebase

For more complicated workflows, we recommend cloning the repo instead:

git clone https://github.com/balintio/noisebase
cd noisebase
pip install -e . # Editable install

Check our manual for more details.

Citation

Please cite our paper introducing Noisebase when used in academic projects:

@inproceedings{balint2023nppd,
    author = {Balint, Martin and Wolski, Krzysztof and Myszkowski, Karol and Seidel, Hans-Peter and Mantiuk, Rafa\l{}},
    title = {Neural Partitioning Pyramids for Denoising Monte Carlo Renderings},
    year = {2023},
    isbn = {9798400701597},
    publisher = {Association for Computing Machinery},
    address = {New York, NY, USA},
    url = {https://doi.org/10.1145/3588432.3591562},
    doi = {10.1145/3588432.3591562},
    booktitle = {ACM SIGGRAPH 2023 Conference Proceedings},
    articleno = {60},
    numpages = {11},
    keywords = {upsampling, radiance decomposition, pyramidal filtering, kernel prediction, denoising, Monte Carlo},
    location = {<conf-loc>, <city>Los Angeles</city>, <state>CA</state>, <country>USA</country>, </conf-loc>},
    series = {SIGGRAPH '23}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

noisebase-1.1.1.tar.gz (36.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

noisebase-1.1.1-py3-none-any.whl (42.0 kB view details)

Uploaded Python 3

File details

Details for the file noisebase-1.1.1.tar.gz.

File metadata

  • Download URL: noisebase-1.1.1.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for noisebase-1.1.1.tar.gz
Algorithm Hash digest
SHA256 f32113a397d93ea4bdb9c25a3633b7b020efe5f6b3a7b12c76a7325297e8474b
MD5 276eeb30d1ce9ffe9f980fc95b7f09ea
BLAKE2b-256 d6a44c1633d131a7bcaf8e612649b670b928a2b9d7ffd5db73f8af92e7ae3865

See more details on using hashes here.

File details

Details for the file noisebase-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: noisebase-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 42.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for noisebase-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ab81237a67a7c976d50a2b76ddbe6fbc255f61780fcc8d8827155a23d90fa81f
MD5 3f66e8793e3864bbb9d931b43b27cadd
BLAKE2b-256 84b8ca2df50cbcab823f12f9087e2c9d957319c175d1e1d16ecad584a4655315

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page