Skip to main content
  1. Posts/

Computational Imaging in Research: We keep reinventing the wheel

·3 mins
Essay
Pierre-Antoine Comby
Author
Pierre-Antoine Comby
PhD Student on Deep Learning for fMRI Imaging
Table of Contents

In the field of Computational Imaging, Solving inverse problem is a task that every graduate student learns to do. Starting from the simple \( y = Ax + n \) solved using Maximum Likelihood or Maximum a posterior estimate (aka regularization). And more and more using Deep Learning based approach. Those problem are solved using computers and codes. Yet there does not seem to be a standard in the community.

Professional have standard*S*
#

If we look for computation imaging on github, we can built the following table

RepositoryLanguageStarsForksLast UpdateCreate Data
mikgroup/sigpyPython300922024-08-052018-07-03
lanl/scicoPython93172024-08-132021-09-21
PyLops/PyLopsPython4111002024-08-132018-11-08
bwohlberg/sporcoPython258372024-08-122016-04-21
JeffFessler/mirtMATLAB166642024-08-082019-06-03
guanhuaw/MIRTorchPython114192024-08-052021-03-07
mrirecon/bartC2911612024-08-122014-08-22
astra-toolbox/astra-toolboxC++4332022024-08-092014-12-12
deepinv/deepinvPython261652024-08-092023-02-10
carnotresearch/cr-sparseJupyter Notebook86112024-06-172020-12-22
cea-cosmic/ModOptPython25152023-05-192017-12-06
utcsilab/deepinpyPython55242024-06-112019-10-01
NKI-AI/directPython228402024-08-062020-06-06
pyxu-org/pyxuPython113162024-08-072020-07-06
cabouman/mbirjaxPython332024-07-312024-03-20
Biomedical-Imaging-Group/GlobalBioImMATLAB77362024-08-012018-03-07

Overall, there is still some trend: People uses Python in the overwehlming majory (MATLAB is finally dead?).

Standards

Lets list the potential reason for such profilic replication of the proximal gradient descent algorithm

  • “Not Invented Here Syndrom”.
  • Research teams having slighly differents objective
  • People developing those toolboxes (aka us, PhD Students and postdocs) finds more values in creating something new (and getting a paper out of it), than contributing to an existing topic. We have strong incentive to publish something new, rather than reproducing or contributing.

So what’s the way forward ?
#

I don’t think that anyone (including me) wants to abandon their own work for a new shiny library.

One of the possibility is to compare these implementation on real problem and benchmark. And if you are thinking of building a library for doing benchmark of optimization … Please consider using and/or contributing to Benchopt instead (Full disclosure, it is developed partly by member and postdoc of our research team (MIND) at Inria)

Another way is to consider the common intersection of these toolboxes. In particular, Forward Models (the “\( A \)” in \(y = Ax \)) They usually are the computational bottlenecks of the inverse problems solver and too big to be represented in their matrix form, having efficient implementations is a common interest for everyone. We have done our part in https:://github.com/mind-inria/mri-nufft for Non Cartesian MRI. Getting such common library for other imaging problem where the sensing domain is not the image domain (CT, Electron tomography, radio-astronomy, etc.) will be interesting as well. Then on top of these base building blocks, every research team can build their own reconstruction algorithms or train their favorite Deep Neural Networks.