A Monte Carlo Framework for Rendering Speckle Statistics in Scattering Media
Chen BarMarina AltermanIoannis GkioulekasAnat Levin
ACM Trans. Graph. (2019)
teaser

We present a Monte Carlo rendering framework for the physically-accurate simulation of speckle patterns arising from volumetric scattering of coherent waves. These noise-like patterns are characterized by strong statistical properties, such as the so-called memory effect. These properties are at the core of imaging techniques for applications as diverse as tissue imaging, motion tracking, and non-line-of-sight imaging. Our rendering framework can replicate these properties computationally, in a way that is orders of magnitude more efficient than alternatives based on directly solving the wave equations. At the core of our framework is a path-space formulation for the covariance of speckle patterns arising from a scattering volume, which we derive from first principles. We use this formulation to develop two Monte Carlo rendering algorithms, for computing speckle covariance as well as directly speckle fields. While approaches based on wave equation solvers require knowing the microscopic position of wavelength-sized scatterers, our approach takes as input only bulk parameters describing the statistical distribution of these scatterers inside a volume. We validate the accuracy of our framework by comparing against speckle patterns simulated using wave equation solvers, use it to simulate memory effect observations that were previously only possible through lab measurements, and demonstrate its applicability for computational imaging tasks.

Chen Bar, Marina Alterman, Ioannis Gkioulekas, Anat Levin (2019). A Monte Carlo Framework for Rendering Speckle Statistics in Scattering Media. ACM Trans. Graph..

@article{Bar:2019:Speckle,
author = {Chen Bar and Marina Alterman and Ioannis Gkioulekas and Anat Levin},
title = {A Monte Carlo Framework for Rendering Speckle Statistics in Scattering Media},
journal = {ACM Trans. Graph.},
year = {2019},
publisher = {ACM},
address = {New York, NY, USA},
}