Skip to content

v2.0.0

Latest
Compare
Choose a tag to compare
@villekf villekf released this 23 Oct 12:14
· 19 commits to master since this release

This is the official full release of version 2.0. Compared to the release candidate the biggest changes are the inclusion of ray-based projector for SPECT parallel hole reconstruction (projector_type = 1). Some bugs were also fixed. For a complete list of changes, see release notes. Below are some highlights for this release (includes the highlights of the previous RC):

  • Added (limited) support for Python
    • Only a subset of features are implemented
    • All core components have been implemented though
    • Supports only implementation 2 and the class object
    • Custom algorithms can be computed fully in the GPU by using ArrayFire arrays (OpenCL), PyTorch tensors (CUDA) or CuPy arrays (CUDA)
    • The OMEGA forward and/or backward projection operators thus accept ArrayFire arrays, PyTorch tensors or CuPy arrays
  • (CB)CT reconstructions are much more efficient now than before as long as GPU computing is used
  • Support for raw data format dropped
  • Added two new projectors for CT data
    • Projector type 4 is an interpolation-based GPU-only projector
    • Projector type 5 is the branchless distance-driven projector (GPU only)
    • Only supported by implementations 2 and 5
  • Added support for SPECT reconstruction
    • Supports also GATE projection data
    • Supports parallel hole collimators
    • Built-in support for hexagonal and circular holes for the detector-response function
    • Forward/backward projection class object is CPU (implementation 4) only in MATLAB/Octave, OpenCL and CUDA only in Python
    • Supported only by implementations 2 and 4
    • Rotation- and ray-based projectors
    • Ray-based projector does not officially support the class object yet
    • Ray-based projector was implemented by @saarlemo
  • Added support for hybrid projectors
  • New algorithms/priors and preconditioners
  • Almost complete code overhaul
  • Complete rework of the example-files
  • Changed coordinate system to be centered on origin

Documentation for the new release is available at https://omega-doc.readthedocs.io/en/latest/index.html

Included in this release are also the MATLAB toolbox file that you can use to easily install OMEGA in MATLAB. Note that you still need either manually build the mex-files or download the prebuilt ones. Additionally included are prebuilt mex and library files for MATLAB, Octave and Python, either in Linux or Windows. In all cases the MATLAB files were built with version 2023b, while Octave were built version 8.3. Windows version were built on Windows 10 using Visual Studio 2022, while Linux versions were built on Ubuntu 22.04 using g++ version 10.5.

It is recommended to manually build the necessary files whenever possible. In MATLAB/Octave, simply run install_mex (you may need to manually provide the location for ArrayFire, OpenCL, CUDA or ROOT) or run compile.py in Python. See details at https://omega-doc.readthedocs.io/en/latest/installation.html