Skip to content

Releases: LLNL/LEAP

v1.16

02 Jul 15:18
Compare
Choose a tag to compare

Version 1.16 release notes

  1. Improved the LEAP build scripts which relaxes constraints and should make it easier to compile. In the past I have said that Visual Studio 2022 was incompatible with CUDA but this may have changed and now LEAP may be able to be compiled with VS 2022. If one of our users could verify this for us, we'd really appreciate it! VS 2022 should be ready to be tested with the pip install and if you'd like to build it with cmake, use etc\win_build_vs_2022.bat.
  2. Added FBP_adjoint function which computes the adjoint operation of FBP.
  3. Made modifications to leaptorch.py to enable the FBP operator to be differentiable. See demo_leaptorch/test_recon_projections_NN.py for an example.
  4. Bug fix to cone-beam forward projector when projecting "small" voxels.
  5. Improved accuracy of scaling of helical FBP.
  6. Improved documentation.

v1.15

20 Jun 15:53
Compare
Choose a tag to compare

Version 1.15 release notes

  1. Added the capability to specify a user-specified mask on the reconstruction which can improve performance of iterative reconstruction algorithms. See demo script: d35_volume_masking.py
  2. Fixed minor bug in cone-beam sensitivity calculation
  3. Added space carving algorithm which provides a robust method to estimate the foreground of a reconstruction directly from the projection data which is used in the new demo script: d35_volume_masking.py
  4. Added error checking to all iterative reconstruction algorithms to make sure the provided projection and volume data are compatible with LEAP
  5. Enabled inconsistency reconstruction for helical
  6. Improvements to preprocessing algorithms including default arguments, documentation, and error checking
  7. Added function sliceRangeNeededForProjection which enables performing forward projection in chunks for situations where you don't have enough CPU memory
  8. Added demo script d34_iterative_reconstruction_long_object.py which shows you how to perform an iterative reconstruction where the object extends past the top and/or bottom of the detector. This script utilizes the so-called Ziegler method.
  9. Bug fix to medianFilter2D and BlurFilter2D for the case where you the algorithm had to perform in smaller chunks to fit into GPU memory.
  10. Improvements to documentation

v1.14

09 Jun 13:55
Compare
Choose a tag to compare

Version 1.14 release notes

  1. Fixed bugs in helical FBP that were causing some low frequency artifacts.
  2. Added mean and variance filters
  3. Fixed type in d12_geometricCalibration.py script
  4. Fixed bug in subsets partition that was causing the last subset to be missing a projection
  5. Added to documentation

v1.13

04 Jun 01:04
Compare
Choose a tag to compare

Version 1.13 release notes

  1. Fixed bug in axially-aligned modular-beam forward projector which was causing incorrect values when the detector had a significantly large rotation around the optical axis
  2. Improvements to parameter_sweep algorithm
  3. Added "consistency_cost" function to help with geometric calibration
  4. Added more examples to demo script: d12_geometric_calibration.py including examples of using items 2 and 3, above
  5. Added more features to logging utility to control the amount of screen output from none, to detailed debugging logs
  6. Added a new demo struct, d33_reducingConeBeamArtifacts.py
  7. Relaxed required cmake minimum version and made some changes to the build process
  8. Fixed bug in makeAttenuationRadiographs
  9. Added to documentation

v1.12

25 May 20:53
Compare
Choose a tag to compare

Version 1.12 release notes

  1. Bug fixes to FBP reconstruction, where occasionally ramp filter step was being skipped
  2. Added logging utility to control the amount of screen output from none, to detailed debugging logs
  3. Fixed bug in voxelizing phantom, where rotated objects were being clipped
  4. Added error catching to all CUDA operations
  5. Fixed bug where GPU was running out of memory because I forgot to reserve room for the texture memory
  6. Fixed bug where Parker weights were being applied even though angular converage was less than 180 degrees
  7. Added Lambda/Local Tomography (leapct.LT) reconstruction algorithm
  8. Fix bug in leapct.rotate_detector() function
  9. The leapct.rotate_detector() can now either take an angle (like before) or a 3D rotation matrix
  10. Improvements to the LEAP readthedocs webpage

v1.11

18 May 15:24
Compare
Choose a tag to compare

Version 1.11 release notes

There are a lot of great new features in this release and some important bug fixes. Thanks to @ProjX0 and @hws203 for their help in tracking down some of these bugs!

  1. Various minor bug fixes
  2. A lot of improvements to the LEAP readthedocs webpage
  3. Bug fixes to offsetScan FBP reconstruction
  4. Can now combine offsetScan and truncatedScan parameters for those cases where you do have an offset scan, but there are also some projections that are truncated on both sides
  5. Bug fix related to checking whether or not one has a full scan acquisition
  6. Major bug fix to CPU-based projectors
  7. Added parameter_sweep algorithm which allows one to reconstruct a sequence of single slice reconstructions for a range of parameter values to assist in geometric calibration
  8. Added 3D Guided Filter function
  9. Added Prior Bilateral Filter, where intensity differences are calculated from a given prior
  10. Added laminogramy CT demo script
  11. Added HighPassFilter function
  12. Improvements to LpNorm filter and dictionary denoising
  13. 25% speed improvement to analytic ray-tracing algorithms
  14. Bug fixes for symmetric projectors with odd number of columns

v1.10

05 May 23:17
Compare
Choose a tag to compare

Version 1.10 release notes

  1. Can now compile without CUDA. Now LEAP can be run on machines without GPUs and on Mac OS. See wiki page for more information.
  2. Fixed major bug in scaled bilateral filter which was causing it to crash.
  3. Speed improvements to bilateral filter and blur filters by using texture memory.
  4. Bug fix to TVcost function which evaluates the cost value of the TV seminorm. Did not notice this bug before because this function is not used in any algorithms.
  5. Fixed bug in LpNorm filter in filter_sequence.

v1.9

30 Apr 03:16
Compare
Choose a tag to compare

Version 1.9 release notes

  1. Changed compiled library from "libleap" to "libleapct". We did this to avoid possible naming collisions with the term "leap".
  2. Added Metal Artifact Reduction (MAR) algorithm. The algorithm is called sinogram_replacement and provided a sample script here: d30_MAR_and_sinogram_replacement.py
  3. Added single material, single order scatter correction algorithm. See function documentation here: scatter_model and sample script here: d31_scatter_correction.py
  4. Added up and down sampling routines for volume and projection data. These routines change the size of the data arrays and update the LEAP parameters accordingly.
  5. Added the ability to apply regularization to MLEM and OSEM reconstruction algorithms. The regularization is done with the One Step Late (OSL) method.
  6. Added synthesized_symmetry function which converts a 2D axially-symmetric reconstruction into a 3D volume.
  7. Removed most of the compiler warnings.

v1.8

11 Apr 13:57
Compare
Choose a tag to compare

Version 1.8 release notes

  1. New feature: filter sequence. Note that this new feature changes the API for LEAP iterative reconstruction algorithms and thus introduces some backward compatibility issues. We are sorry about this and we try really hard to keep everything backward compatible, but this is a really effective feature and we really think it is worth it. See filter sequence documentation and example script.
  2. Can now specify the p-value for the Lp loss function used in Total Variation.
  3. Added a new ring removal algorithm that runs fast and has good results.
  4. Some changes preparing for AMD support. This should be ready in the next release.

v1.7

16 Mar 15:54
Compare
Choose a tag to compare

Version 1.7 release notes

  1. Minor bug fix to modular-beam projectors that may have caused unnecessary GPU memory to be allocated and may give slightly inaccurate results.
  2. Added the ability to simulate data using analytic ray tracing methods. See demo script and documentation for more information.
  3. Added the capability to rebin data from a curved array of detector modules. See demo script and documentation.