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