Skip to content

Commit

Permalink
update docs and readme
Browse files Browse the repository at this point in the history
  • Loading branch information
kylechampley committed Sep 15, 2024
1 parent e565a3a commit 9b37b7e
Show file tree
Hide file tree
Showing 8 changed files with 28 additions and 25 deletions.
26 changes: 5 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,9 @@ This is a C++/CUDA library (Linux, Windows, and Mac*) of 3D tomographic algorith
<img src=https://github.com/LLNL/LEAP/blob/main/documentation/LEAPoverview.png>
</p>

There are a lot of CT reconstruction packages out there, so why choose LEAP? In short, LEAP has more accurate projectors and FBP algorithms, more features, and most algorithms run as fast or faster than other popular CT reconstruction packages, but here is a more detailed list:
1) **Seamless integration with PyTorch** using torch.nn.Module and torch.autograd.Function to enable differentiable forward and backward projectors for AI/ML-driven Computed Tomography (CT) applications.
2) **Quantitatively accurate, matched (forward and back) projector pairs** that model the finite size of the voxel and detector pixel; very similar to the Separable Footprint method [Long, Fessler, and Balter, TMI, 2010]. These matched projectors ensure convergence and provide accurate, smooth results. Unmatch projectors or those projectors that do not model the finite size of the voxel or detector pixel may produce artifacts when used over enough iterations [DeMan and Basu, PMB, 2004].
3) **Multi-GPU and multi-core CPU implementations of all algorithms** that are as fast or faster than other popular CT reconstruction packages.
4) **Algorithms not limited by the amount of GPU memory**.
5) **Flexible 3D CT geometry** specification that allows users to specify arbitrary shifts of the source and detector positions, non-uniform angular spacing, and more.
6) **Flexible 3D CT volume** specification.
7) **Quantitatively accurate and flexible** analytic reconstruction algorithms, i.e., Filtered Backprojection (**FBP**).
8) Can **avoid** costly **CPU-to-GPU data transfers** by performing operations on data already on a GPU.
9) Special-case FBP algorithms that are rarely included in other packages, such as helical, truncated projections, offset detector scan, and Attenuated Radon Transform.
10) Special-case models such as the Attenuated Radon Transform (SPECT and VAM applications) and reconstruction of cylindrically-symmetric objects (flash x-ray applications).
11) Iterative reconstruction algorithms: OSEM, OS-SART, ASD-POCS, RWLS, RDLS, ML-TR, IFBP (RWLS-SARR)
12) Fast multi-GPU 3D densoing methods.
13) Pre-processing algorithms: outlier correction, detector deblur, ring removal, scatter correction, metal artifact reduction (MAR), multi-material beam hardening correction (BHC), dual energy decomposition, and SIRZ
14) Easy-to-use, simple API.
15) Easy-to-build executable because the only dependency is CUDA. Python API can be run with or without PyTorch (of course the neural network stuff requires PyTorch).
16) Permissible license.
There are a lot of CT reconstruction packages out there, so why choose LEAP? In short, LEAP has more accurate projectors and FBP algorithms, more features, and most algorithms run as fast or faster than other popular CT reconstruction packages, but [here](https://github.com/LLNL/LEAP/blob/main/LEAP_features.md) is a more detailed list.

The LEAP PyQt GUI can be found [here](https://github.com/kylechampley/LEAPCT-UI-GUI).

Physics-based modeling and correction algorithms (e.g., scatter correction, beam hardening correction (BHC), dual energy decomposition, and SIRZ) can be applied when used with the [XrayPhysics](https://github.com/kylechampley/XrayPhysics) package.

Expand Down Expand Up @@ -49,10 +35,8 @@ As a simple demonstration of the accuracy of our projectors we show below the re
For the next releases, we are working on the following:
1) Fixes of bugs reported by our users
2) AMD GPU Support
3) [PyQt GUI](https://github.com/kylechampley/LEAPCT-UI-GUI)
4) multi-material beam hardening correction algorithms for more than two materials and that account for variable takeoff angle and graded collimator/ bowtie filter
5) triple energy decomposition
6) ball phantom calibration routine
3) multi-material beam hardening correction algorithms for more than two materials and that account for variable takeoff angle and graded collimator/ bowtie filter
4) triple energy decomposition

If you are interested in requesting a new feature in LEAP, please make a post in the [Feature Request](https://github.com/LLNL/LEAP/discussions/88) discussion.

Expand Down
Binary file modified docs/source/LEAPoverview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/LEAPoverview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions results/LEAP_features.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# LEAP Features

1) **Seamless integration with PyTorch** using torch.nn.Module and torch.autograd.Function to enable differentiable forward and backward projectors for AI/ML-driven Computed Tomography (CT) applications.
2) **Quantitatively accurate, matched (forward and back) projector pairs** that model the finite size of the voxel and detector pixel; very similar to the Separable Footprint method [Long, Fessler, and Balter, TMI, 2010]. These matched projectors ensure convergence and provide accurate, smooth results. Unmatch projectors or those projectors that do not model the finite size of the voxel or detector pixel may produce artifacts when used over enough iterations [DeMan and Basu, PMB, 2004].
3) **Multi-GPU and multi-core CPU implementations of all algorithms** that are as fast or faster than other popular CT reconstruction packages.
4) **Algorithms not limited by the amount of GPU memory**.
5) **Flexible 3D CT geometry** specification that allows users to specify arbitrary shifts of the source and detector positions, non-uniform angular spacing, and more.
6) **Flexible 3D CT volume** specification.
7) **Quantitatively accurate and flexible** analytic reconstruction algorithms, i.e., Filtered Backprojection (**FBP**).
8) Can **avoid** costly **CPU-to-GPU data transfers** by performing operations on data already on a GPU.
9) Special-case FBP algorithms that are rarely included in other packages, such as helical, truncated projections, offset detector scan, and Attenuated Radon Transform.
10) Special-case models such as the Attenuated Radon Transform (SPECT and VAM applications) and reconstruction of cylindrically-symmetric objects (flash x-ray applications).
11) Iterative reconstruction algorithms: OSEM, OS-SART, ASD-POCS, RWLS, RDLS, ML-TR, IFBP (RWLS-SARR)
12) Fast multi-GPU 3D densoing methods.
13) Pre-processing algorithms: outlier correction, detector deblur, ring removal, scatter correction, metal artifact reduction (MAR), multi-material beam hardening correction (BHC), dual energy decomposition, and SIRZ
14) Easy-to-use, simple API.
15) [PyQt GUI](https://github.com/kylechampley/LEAPCT-UI-GUI)
16) Easy-to-build executable because the only dependency is CUDA. Python API can be run with or without PyTorch (of course the neural network stuff requires PyTorch).
17) Permissible license.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@

setup(
name='leapct',
version='1.21',
version='1.22',
author='Kyle Champley, Hyojin Kim',
author_email='[email protected], [email protected]',
description='LivermorE AI Projector for Computed Tomography (LEAPCT)',
Expand Down
2 changes: 1 addition & 1 deletion setup_AMD.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@

setup(
name='leapct',
version='1.21',
version='1.22',
author='Kyle Champley, Hyojin Kim',
author_email='[email protected], [email protected]',
description='LivermorE AI Projector for Computed Tomography (LEAPCT)',
Expand Down
2 changes: 1 addition & 1 deletion setup_ctype.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@

setup(
name='leapct',
version='1.21',
version='1.22',
author='Kyle Champley, Hyojin Kim',
author_email='[email protected], [email protected]',
description='LivermorE AI Projector for Computed Tomography (LEAPCT)',
Expand Down
2 changes: 1 addition & 1 deletion src/tomographic_models.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#pragma once
#endif

#define LEAP_VERSION "1.21"
#define LEAP_VERSION "1.22"

/*
#include <iostream>
Expand Down

0 comments on commit 9b37b7e

Please sign in to comment.