-
Notifications
You must be signed in to change notification settings - Fork 16
Features
villekf edited this page Apr 16, 2024
·
15 revisions
Full list of features for OMEGA v2.0
- Supports any data that uses ray-tracing
- Only the source and detector coordinates need to be input
- Source and/or detector can be inside the FOV
- Supported projectors include:
- Improved Siddon's ray tracer
- Also multi-ray version available
- Interpolation-based ray tracer
- Volume of intersection ray tracer
- Supports hybrid projectors
- All projectors have 100% GPU support
- Improved Siddon's ray tracer
- Use custom algorithms by using the built-in projectors
- A class object can be created which can be used to compute the forward and/or backward projections
- Available in MATLAB, GNU Octave and Python
- Wide range of algorithms supported:
- MLEM, OSEM, RAMLA, BSREM, MBSREM, PKMA, LSQR, CGLS, FISTA, (A/E)COSEM, ROSEM, DRAMA, PDHG, CV, FDK/FBP, PDDY, SPS, RBI and OSL
- PDHG supports L1, L2 and Kullback-Leibler optimization
- FDK/FBP supports several different windowing methods: Hamming, Hann, Blackman, Nuttal, Gaussian, Shepp-Logan, cosine, Parzen (de la Vallée Poussin) or none (ramp)
- Wide range of regularization techniques/priors:
- Quadratic prior, Huber, MRP, Weighted mean, TV, NLM, RDP, APLS, (proximal) TGV, proximal TV and hyperbolic prior
- Several different non-local variations
- TV, NLM and APLS support anatomic/prior image weighting
- Supports time-varying dynamic data
- Reconstruct dynamic data with static algorithms
- OpenCL and CUDA support (single precision only)
- Point spread function blurring
- Optional deblurring available
- Save the last iteration or specific iterations
- Supports subsets
- Several different ways to select subsets
- Non-PET/Non-CT/Non-SPECT data or list-mode PET data supports three subset selection methods
- Divide the data into N segments
- Take every Nth measurement
- Randomly sample the measurement data
- Seven image-based preconditioners
- Diagonal preconditioner
- EM-preconditioner
- IEM-preconditioner
- Momentum-based preconditioner
- Gradient-based preconditioner
- Filtering-based preconditioner
- Curvature-based preconditioner
- Two measurement-based preconditioners
- Diagonal preconditioner
- Filtering-based preconditioner
- Both filtering-based preconditioners support the same windowing functions as FDK/FBP
- Filtering-based preconditioner can optionally be used for N iterations/subiterations only
- Supports positivity enforcement for non-Poisson algorithms
- Supports manual initial values
- Allows the storage and output of the intermediate forward projections
- Insert scatter and/or randoms correction data into the reconstruction with supported algorithms (Poisson-based algorithms)
- Allows input of object offsets
- If the object is not centered on the origin
- Use 2D masks to limit forward projection and/or backprojection
- 2D mask in measurement space can be used to ignore certain measurements (values that are set at 0 are ignored)
- Similarly in backprojection the 2D mask can be used to specify the voxels to reconstruct (likewise values that are 0 are not reconstructed)
- Supports multi-resolution reconstruction
- Extended FOV can have reduced resolution
- Resolution can be manually set
- Can be set only for axial, only for transaxial or for both directions
- Should work with all non-SPECT data
- Allows the use of extended FOV without multi-resolution as well
- Priors/regularization computed only in the main volume
- Automatic cropping of the image
- Optimized for PET
- Load GATE ROOT data for cylindrical/ECAT PET systems
- Automatically convert the PET data into sinograms
- Export trues, prompts, randoms and scatter sinograms
- Rayleigh or Compton scatter in the detector and/or phantom can be separately selected
- Form and reconstruct dynamic sinograms
- Obtain a ground truth image from the GATE ROOT data
- Supports orthogonal distance-based ray tracer
- All projectors automatically use probabilities rather than the length of the line of intersection
- Automatically compute detector/source coordinates for cylindrical PET data (both GATE and non-GATE data)
- Several other subset selection methods
- Use every Nth column sinogram bin
- Use every Nth sinogram row
- Use every Nth sinogram column
- Use every Nth sinogram
- Randomly sample the sinograms
- Select the sinograms based on prime factors
- Supports attenuation correction during reconstruction, either image-based or sinogram-based
- Supports normalization correction during reconstruction
- Supports any manual sinogram-based correction
- Supports time-of-flight (TOF) data
- Supports formation of TOF sinograms from GATE data
- Supports list-mode data
- Supports pseudo detectors/rings or ring gaps
- Supports easy inclusion of GATE attenuation maps as the attenuation correction images
- Optimized for (CB)CT data
- Automatically load Planmeca CBCT data
- Automatically load image-based projections (e.g. tiff-images)
- Load GATE CT projections images
- Automatically compute source/detector coordinates for CBCT systems
- Allows input of source and/or detector offsets
- Supports multi-bed (step-and-shoot) data
- Supports GPU-optimized projectors
- Voxel-based backprojector as well as the previously mentioned forward projectors
- Branchless distance-driven projector, both for forward and backward projections
- Allows subtraction of the DC-component
- Supports hybrid projectors
- Supports projection image extrapolation
- Automatically extrapolate and weight projections to fix out-of-FOV artifacts
- Supports offset correction
- Offset weights can be automatically computed
- Each projection has their own weight
- Several other subset selection methods
- Use every Nth column of the projection image
- Use every Nth projection image row
- Use every Nth projection image column
- Use every Nth projection image
- Randomly sample the projection images
- Select the projection images based on prime factors
- Most of the Poisson-based algorithms are supported with transmission-based (i.e. Lambert-Beer law) data as well
- These include PKMA, MBSREM, RAMLA, ROSEM, OSEM, MLEM and BSREM
- Optimized for parallel hole SPECT data
- Load GATE SPECT projections images
- Automatically compute detector response function for hexagonal or round holes
- Supports rotation-based projector
- Supports same subset selection methods as CT
- Load GATE ASCII and LMF (LMF support has bee deprecated) data for cylindrical/ECAT PET systems
- Load Inveon PET list-mode data
- Load Siemens Biograph mCT and Vision list-mode data
- Supports both binned 32-bit list-mode data as well as 64-bit
- Supports also .ptd-files
- Automatically convert any of the above PET data into sinograms
- Obtain a ground truth image from GATE ASCII or LMF data (LMF support has bee deprecated)
- Several different "implementations" available that perform the computations either on the CPU or the GPU
- Implementation 1 forms a sparse system matrix that is used in computations
- Double precision only
- System matrix can be extracted
- System matrix can be created for only a subset of data
- Supports all features except hyperbolic prior
- Implementation 2 uses OpenCL or CUDA for the reconstructions
- Supports all features
- Single precision only
- Implementation 3 uses OpenCL for the reconstructions
- Supports only MLEM/OSEM
- Single precision only
- Implementation 4 is a parallel matrix-free CPU implementation
- Uses OpenMP
- Supports all features except hyperbolic prior
- Single (default) or double precision
- Implementation 5 is similar to implementation 4, except that forward and backward projections are performed using OpenCL
- All other computations are done in MATLAB/GNU Octave
- Supports all features except hyperbolic prior
- Single precision only
- Implementation 1 forms a sparse system matrix that is used in computations
- Supports custom algorithms with the use of OpenCL or CPU
- A class object needs to be created first
- Forward and/or backward projections are transferred to host (CPU) first if using OpenCL
- Simply using
y = A*x
computes the forward projection when A is the class object - Similarly,
x = A' * y
computes the backprojection - Supports the system matrix approach, OpenCL or OpenMP (CPU)
- For SPECT, only OpenMP version is available
- Visualization function that does not require any toolboxes
- Supports arc correction for PET (MATLAB only)
- Supports randoms/scatter smoothing
- Supports randoms variance reduction (PET only)
- Supports computation of the normalization coefficients from a normalization measurement (PET only)
- Component-based
- Supports increasing the sampling (i.e. interpolation) of PET sinograms
- Supports sinogram gap filling
- Supports scaling of CT-based attenuation coefficient to 511 keV attenuation coefficients
- Supports pre-correcting the sinogram
- Allows to automatically crop voxelized phantoms/sources for MC simulations
- Individual functions to load MetaImage or Interfile data
- Few additional priors
- FMH and L-filter
- Supports custom algorithms with the use of OpenCL or CUDA
- All computations can be performed on the GPU without the need to transfer the data to host first
-
y = A * x
computes the forward projection -
x = A.T() * y
computes the backprojection - Allows the seamless use of Arrayfire arrays for easy implementation of custom, user-made, algorithms without the need for GPU coding knowledge
- Same code can be used for either OpenCL or CUDA
- Home
- Installation help
- Getting started
- PET Tutorials
- CT Tutorials
- Useful information
- Function help
- Visualization
- Using GATE PET data
- Using GATE CT data
- Extracting GATE scatter, randoms and trues data
- Computing the forward and/or backward projections
- Using non-cylindrical PET scanners
- Custom detector coordinates and/or list mode reconstruction
- Using TOF data
- Extracting the system matrix
- Using Inveon PET data
- Using Inveon CT data
- Using Biograph PET data
- Using custom gradient-based priors
- Adding custom built-in algorithms
- Toolbox overview
- Contributing code to OMEGA
- Contact