/tomo_TV

C++ library for Regularized 2D and 3D Tomography Reconstructions.

Primary LanguageJupyter Notebook

tomo_TV

Python and C++ toolbox for tomographic data processing and developing iterative reconstruction algorithms. Specifically, this repository provides a selection of various data models and regularizers for simple python development. Tomo_TV also contains supports experiments where data is 'dynamically' collected to facilitate real-time analysis of tomograms.

Features

2D and 3D reconstruction algorithms implemented purely in C++ wrapped in Python functions. These scripts can either perform simulations (sim) or reconstruct experimental (exp) projections. Available algorithms include:

  • Filtered Backprojection (FBP)
  • Simultaneous Iterative/Algebraic Reconstruction Technique (SIRT/SART)
  • Conjugate Gradient - Least Squares (CGLS)
  • KL-Divergence / Expectation Maximization for Poisson Limited Datasets
  • FISTA doi: 10.1137/080716542
  • ASD - POCS doi: 10.1088/0031-9155/53/17/021
  • (TODO: OGM and FASTA )

We provide a sample jupyter notebook (demo.ipynb) which outlines the reconstruction process for all these algorithms both with simulated and experimental datasets.

Installation

To clone the repositiory and all the core dependencies run the following line in the terminal:

git clone --recursive https://github.com/jtschwar/tomo_TV.git

For GPU accelerated reconstruction algorithms, we recomend using a Linux operating system. C++ accelerated operations is available on all three operating systems (Windows, macOS, and Linux).

Instructructions for building can be found in BUILDING.MD.

Multi-GPU Capabilities

tomo_TV can be used by running in parallel across multiple GPU devices on a personal computer or compute nodes in a high-performance computing cluster. In order to initiate a parallel run on multiple GPUs, MPI needs to be available.

References

If you use tomo_TV for your research, we would appreciate it if you cite to the following papers:

Contribute

Issue Tracker: https://github.com/jtschwar/tomo_TV/issues

Feel free to open an issue if you have any comments or concerns.

Contact

email: jtschw@umich.edu website: https://jtschwar.github.io