Deconvolution Libraries

Deconvolution Libraries

Survey of Deconvolution Libraries #

Library Repo Lang CPU GPU Active Methods
cudaDecon github C++ x x Richardson-Lucy
itk github C++ x x Direct Linear Inverse, Landweber, Blind Least Squares, Richardson-Lucy, Tikhonov Regularized Inverse, Weiner
Flowdec github TensorFlow x x x Richardson-Lucy
scikit image python x x Richardson-Lucy, Wiener, Unsupervised Wiener
Clarity github C++ x x Wiener, Jansson-van Cittert Iterative, Maximum Likelihood Iterative
YacuDecu github C++ x Richardson-Lucy
DeconvolutionLab2 github Java x Regularized Inverse Filter, Tikhonov Inverse Filter Naive Inverse Filter, Richardson-Lucy, Richardson-Lucy Total Variation, Landweber (Linear Least Squares), Non-negative Least Squares, Bounded-Variable Least Squares, Van Cittert, Tikhonov-Miller, Iterative Constraint Tikhonov-Miller, FISTA, ISTA
Parallel Iterative Deconvolution personal Java x Modified Residual Norm Steepest Descent, Wiener Filter Preconditioned Landweber, Conjugate Gradient for Least Squares, Hybrid Bidiagonalization Regularization
BigStitcher github Java x x Multi-View variant of Richardson-Lucy
Multi-View Deconvolution github Java x Multi-View variant of Richardson-Lucy

Notes #

There was some discussion about ITK’s deconvolution on the image.sc forum here. The thread points out a blog post about using ITK with dask. Interestingly, they conclude that ITK is slow. Here is what they say:

When doing some user research on image processing and Dask, almost everyone we interviewed said that they wanted faster deconvolution. This seemed to be a major pain point. Now we know why. It’s both very common, and very slow.

Running deconvolution on a single chunk of this size takes around 2-4 minutes, and we have hundreds of chunks in a single dataset. Multi-core parallelism can help a bit here, but this problem may also be ripe for GPU acceleration. Similar operations typically have 100x speedups on GPUs. This might be a more pragmatic solution than scaling out to large distributed clusters.

Here is another image.sc discussion on deconvolution libraries.

Inspiration from Astronomy #

The Common Astronomy Software Applications (CASA) contains some 2D deconvolution algorithms. This code is written in C++. These might still be useful to look at as inspiration for 3D methods.


Last modified Apr 20, 2020