parallelproj: a Python array API compatible library for fast tomographic projections
parallelproj provides simple and fast forward and back projectors for tomographic reconstruction (non-TOF and TOF, sinogram ans listmode) in Python that are python array API compatible meaning that they can be used with a variety of python array libraries (e.g. numpy, cupy, pytorch) and devices (CPU and CUDA GPUs).
github repository https://github.com/gschramm/parallelproj
Note
Features of parallelproj
C/OpenMP and CUDA implementations of 3D Joseph matched forward and back projectors [Jos82]
non-TOF and TOF versions of the projectors
dedicated sinogram and listmode versions of the projectors
Python array API compatible Python interface (e.g. directly compatible with numpy, cupy, pytorch)
available on conda-forge
Hint
If you are using parallelproj, we highly recommend to read and cite our publication [ST23]
Schramm, K. Thielemans: “PARALLELPROJ - An open-source framework for fast calculation of projections in tomography”, Front. Nucl. Med., Volume 3 - 2023, doi: 10.3389/fnume.2023.1324562, link to paper, link to arxiv version
Hint
For bug reports or feature requests, please open a github issue here.
Getting started
All examples can be run interactively without installation on mybinder.org:
Python API
C/CUDA lib API
References
Alavaro De Pierro. A modified expectation maximization algorithm for penalized likelihood estimation in emission tomography. IEEE Transactions on Medical Imaging, 14(1):132–137, 1995. doi:10.1109/42.370409.
P. Dempster, N. Laird, and D. Rubin. Maximum Likelihood from Incomplete Data via the EM Algorithm. Journal of the Royal Statistical Society. Series B (Methodological), 39:1–38, 1977.
Matthias J. Ehrhardt, Pawel Markiewicz, and Carola Bibiane Schönlieb. Faster PET reconstruction with non-smooth priors by randomization and preconditioning. Physics in Medicine and Biology, 2019. doi:10.1088/1361-6560/ab3d07.
H. M. Hudson and R. S. Larkin. Accelerated Image Reconstructiong using Ordered Subsets of Projection Data. IEEE transactions on medical imaging, 13(4):601–609, 1994. doi:10.1109/42.363108.
Peter Joseph. An Improved Algorithm for Reprojecting Rays Through Pixel Images. IEEE Transactions on Medical Imaging, 1(3):192–196, 1982. doi:10.1109/TMI.1982.4307572.
Kenneth Lange and Richard Carson. EM reconstruction algorithms for emission and transmission tomography. Journal of Computer Assisted Tomography, 8(2):306–316, 1984.
Georg Schramm and Martin Holler. Fast and memory-efficient reconstruction of sparse Poisson data in listmode with non-smooth priors with application to time-of-flight PET. Physics in Medicine & Biology, 67(15):155020, 2022. doi:10.1088/1361-6560/ac71f1.
Georg Schramm and Kris Thielemans. Parallelproj—an open-source framework for fast calculation of projections in tomography. Frontiers in Nuclear Medicine, 2023. doi:10.3389/fnume.2023.1324562.
L. A. Shepp and Y. Vardi. Maximum Likelihood Reconstruction for Emission Tomography. IEEE Transactions on Medical Imaging, 1(2):113–122, 1982. doi:10.1109/TMI.1982.4307558.