Left: Snapshot of the algorithm in progress showing stochastic random walks that form the basis of Stochastic Deconvolution. Green points represent energy added while blue correspond to energy subtracted from the reconstruction. The algorithm automatically focuses sampling effort in regions where the largest improvements to the system energy are obtained. Right: Example of deblurring with a spatially-varying (per-pixel) PSF simulating strong motion-blur. Input image (center-left) and a sampling of per-pixel PSFs at full- scale (center-right). Deblurred result using Stochastic Deconvolution algorithm (right). The Stochastic Deconvolution algorithm naturally handles PSFs with strong spatial variation, including rotations around the optical axis, without resorting to patch-based approximations.


We present a novel stochastic framework for non-blind deconvolution based on point samples obtained from ran- dom walks. Unlike previous methods that must be tailored to specific regularization strategies, the new Stochastic De- convolution method allows arbitrary priors, including non- convex and data-dependent regularizers, to be introduced and tested with little effort. Stochastic Deconvolution is straightforward to implement, produces state-of-the-art re- sults and directly leads to a natural boundary condition for image boundaries and saturated pixels.

Paper and Video

Video [StochasticDeconvolution-Gregson2013.mp4]



                               author = {James Gregson and Felix Heide and Matthias B. Hullin and Mushfiqur Rouf and Wolfgang Heidrich},
                               title = {{S}tochastic {D}econvolution},
                               booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
                               year = {2013},
                               month = {June},
                               pages = {(to appear)},


A subset of results from the paper are available in the [supplementary material]

Sample Code

Sample code implementing the basic method can be downloaded here: [sample code].
The sample code demonstrates applying the stochastic random walk to deblurring an input image that is synthetically blurred using a hard-coded PSF that mimics motion blur. The code depends on ImageMagick for image loading and saving as well as CMake for a build system. The code is heavily commented and primarily intended to illustrate the basic method, many features are omitted to keep the code simple and easy to understand and modify.
The following are NOT implemented by the sample code:
  • Color images
  • Boundary conditions and saturation
  • Gamma correction
  • Most priors from the paper (demo uses isotropic TV)

However we hope that this code will allow others to use and adapt the method for their work. Please see the README file included with the code for compilation and usage instructions.
All images are © IEEE, 2013, reproduced here by permission for your personal use. Not for redistribution.