/tensorflow-mri

A Library of TensorFlow Operators for Computational MRI

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

TFMRI logo


pypi build docs doi

TensorFlow MRI is a library of TensorFlow operators for computational MRI. The library has a Python interface and is mostly written in Python. However, computations are efficiently performed by the TensorFlow backend (implemented in C++/CUDA), which brings together the ease of use and fast prototyping of Python with the speed and efficiency of optimized lower-level implementations.

Being an extension of TensorFlow, TensorFlow MRI integrates seamlessly in ML applications. No additional interfacing is needed to include a SENSE operator within a neural network, or to use a trained prior as part of an iterative reconstruction. Therefore, the gap between ML and non-ML components of image processing pipelines is eliminated.

Whether an application involves ML or not, TensorFlow MRI operators can take full advantage of the TensorFlow framework, with capabilities including automatic differentiation, multi-device support (CPUs and GPUs), automatic device placement and copying of tensor data, and conversion to fast, serializable graphs.

TensorFlow MRI contains operators for:

  • Multicoil arrays (tfmri.coils): coil combination, coil compression and estimation of coil sensitivity maps.
  • Convex optimization (tfmri.convex): convex functions (quadratic, L1, L2, Tikhonov, total variation, etc.) and optimizers (ADMM).
  • Keras initializers (tfmri.initializers): neural network initializers, including support for complex-valued weights.
  • I/O (tfmri.io): additional I/O functions potentially useful when working with MRI data.
  • Keras layers (tfmri.layers): layers and building blocks for neural networks, including support for complex-valued weights, inputs and outputs.
  • Linear algebra (tfmri.linalg): linear operators specialized for image processing and MRI.
  • Loss functions (tfmri.losses): for classification, segmentation and image restoration.
  • Metrics (tfmri.metrics): for classification, segmentation and image restoration.
  • Image processing (tfmri.image): filtering, gradients, phantoms, image quality assessment, etc.
  • Image reconstruction (tfmri.recon): Cartesian/non-Cartesian, 2D/3D, parallel imaging, compressed sensing.
  • k-space sampling (tfmri.sampling): Cartesian masks, non-Cartesian trajectories, sampling density compensation, etc.
  • Signal processing (tfmri.signal): N-dimensional fast Fourier transform (FFT), non-uniform FFT (NUFFT) (see also TensorFlow NUFFT), discrete wavelet transform (DWT), k-space filtering, etc.
  • Unconstrained optimization (tfmri.optimize): gradient descent, L-BFGS.
  • And more, e.g., supporting array manipulation and math tasks.

Installation

You can install TensorFlow MRI with pip:

$ pip install tensorflow-mri

Note that only Linux is currently supported.

TensorFlow Compatibility

Each TensorFlow MRI release is compiled against a specific version of TensorFlow. To ensure compatibility, it is recommended to install matching versions of TensorFlow and TensorFlow MRI according to the table below.

TensorFlow MRI Version TensorFlow Compatibility Release Date
v0.22.0 v2.10.x Sep 26, 2022
v0.21.0 v2.9.x Jul 24, 2022
v0.20.0 v2.9.x Jun 18, 2022
v0.19.0 v2.9.x Jun 1, 2022
v0.18.0 v2.8.x May 6, 2022
v0.17.0 v2.8.x Apr 22, 2022
v0.16.0 v2.8.x Apr 13, 2022
v0.15.0 v2.8.x Apr 1, 2022
v0.14.0 v2.8.x Mar 29, 2022
v0.13.0 v2.8.x Mar 15, 2022
v0.12.0 v2.8.x Mar 14, 2022
v0.11.0 v2.8.x Mar 10, 2022
v0.10.0 v2.8.x Mar 3, 2022
v0.9.0 v2.7.x Dec 3, 2021
v0.8.0 v2.7.x Nov 11, 2021
v0.7.0 v2.6.x Nov 3, 2021
v0.6.2 v2.6.x Oct 13, 2021
v0.6.1 v2.6.x Sep 30, 2021
v0.6.0 v2.6.x Sep 28, 2021
v0.5.0 v2.6.x Aug 29, 2021
v0.4.0 v2.6.x Aug 18, 2021

Documentation

Visit the docs for guides, tutorials and the API reference.

Issues

If you use this package and something does not work as you expected, please file an issue describing your problem. We're here to help!

Credits

If you like this software, star the repository! stars

If you find this software useful in your research, you can cite TensorFlow MRI using its Zenodo record.

In the above link, scroll down to the "Export" section and select your favorite export format to get an up-to-date citation.

Contributions

Contributions of any kind are welcome! Open an issue or pull request to begin.