Welcome to CIL’s documentation!#
The aim of this package is to enable rapid prototyping of optimisation-based reconstruction problems, i.e. defining and solving different optimization problems to enforce different properties on the reconstructed image, while being powerful enough to be employed on real scale problems.
Firstly, it provides a framework to handle acquisition and reconstruction data and metadata; it also provides a basic input/output package to read data from different sources, e.g. Nikon X-Radia, NeXus.
Secondly, it provides an object-oriented framework for defining mathematical operators and functions as well a collection of useful example operators and functions. Both smooth and non-smooth functions can be used.
Further, it provides a number of high-level generic implementations of optimisation algorithms to solve generically formulated optimisation problems constructed from operator and function objects.
Demos and Examples#
A number of demos can be found in the CIL-Demos repository.
For detailed information refer to our articles and the repositories with the code to reproduce the article’s results.
Cite this work#
If you use this software please consider citing one or both of the articles below.
1. Jørgensen JS et al. 2021 Core Imaging Library Part I: a versatile python framework for tomographic imaging https://doi.org/10.1098/rsta.2020.0192 . Phil. Trans. R. Soc. A 20200192. The code to reproduce the article results. TomographicImaging/Paper-2021-RSTA-CIL-Part-I
2. Papoutsellis E et al. 2021 Core Imaging Library - Part II: multichannel reconstruction for dynamic and spectral tomography https://doi.org/10.1098/rsta.2020.0193 Phil. Trans. R. Soc. A 20200193. The code to reproduce the article results. TomographicImaging/Paper-2021-RSTA-CIL-Part-II
Table of Contents#
- Introduction
- Framework
- Read/ write AcquisitionData and ImageData
- Optimisation framework
- Algorithms (Deterministic)
- Algorithms (Stochastic)
- Operators
- Functions
- Base classes
- Simple functions
- Composition of operator and a function
- Indicator box
- KullbackLeibler
- L1 Norm
- L2 Norm Squared
- Least Squares
- L1 Sparsity
- Mixed L21 norm
- Smooth Mixed L21 norm
- Mixed L11 norm
- Total variation
- Approximate Gradient base class
- Stochastic Gradient function
- SAG function
- SAGA function
- Stochastic Variance Reduced Gradient Function
- Loopless Stochastic Variance Reduced Gradient Function
- Utilities
- Block Framework
- Processors
- Recon
- Utilities
- CIL Plugins
- Developers’ Guide
- Tutorials
- A detailed look at CIL geometry
- 1D inverse problem demo using deriv2 from regtools
- CIL Callbacks How To
- Install CIL and set some defaults
- Load Data
- Default Behavior
- Available CIL Callbacks
- Early Stopping (Custom Callback Example)
- Calculating Data Discrepancy at Each Iteration (Custom Callback Example)
- Calculating a Noise Approximation for Each Iteration (Custom Callback Example)
- Image metric callbacks (complex custom callback example)
- Image metric callbacks with region of interest (complex custom callback example)
Contacts#
Please refer to the main CCPi website for up-to-date information.
The CIL developers may be contacted:
by joining the devel mailing list
on the CIL’s GitHub repository page TomographicImaging/CIL or
on the CIL Discord channel https://discord.gg/9NTWu9MEGq