Home

Computational Imaging in Research: We keep reinventing the wheel

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.

1. Professional have standard*S*

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

Repository Language Stars Forks Last Update Create Date
mikgroup/sigpy Python 337 104 2026-04-22 2018-07-03
lanl/scico Python 160 24 2026-04-18 2021-09-21
PyLops/PyLops Python 519 124 2026-04-21 2018-11-08
bwohlberg/sporco Python 273 40 2026-03-20 2016-04-21
JeffFessler/mirt MATLAB 203 73 2026-04-20 2019-06-03
guanhuaw/MIRTorch Python 146 25 2026-04-20 2021-03-07
mrirecon/bart C 363 175 2026-04-10 2014-08-22
astra-toolbox/astra-toolbox C++ 595 228 2026-04-22 2014-12-12
deepinv/deepinv Python 715 163 2026-04-20 2023-02-10
carnotresearch/cr-sparse Jupyter Notebook 99 11 2026-04-09 2020-12-22
cea-cosmic/ModOpt Python 28 14 2026-01-13 2017-12-06
utcsilab/deepinpy Python 61 24 2026-01-19 2019-10-01
NKI-AI/direct Python 301 49 2026-04-19 2020-06-06
pyxu-org/pyxu Python 140 16 2025-12-23 2020-07-06
cabouman/mbirjax Python 21 10 2026-04-20 2024-03-20
Biomedical-Imaging-Group/GlobalBioIm MATLAB 91 36 2026-03-26 2018-03-07

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

Fortunately, the charging one has been solved now that we've all standardized on mini-USB. Or is it micro-USB? Shit.

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.

2. 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