Giter Club home page Giter Club logo

odl's Introduction

PyPI version Build Status Coverage Status license DOI

ODL

Operator Discretization Library (ODL) is a Python library for fast prototyping focusing on (but not restricted to) inverse problems. ODL is being developed at KTH Royal Institute of Technology, Stockholm and Centrum Wiskunde & Informatica (CWI), Amsterdam.

The main intent of ODL is to enable mathematicians and applied scientists to use different numerical methods on real-world problems without having to implement all necessary parts from the bottom up. This is reached by an Operator structure which encapsulates all application-specific parts, and a high-level formulation of solvers which usually expect an operator, data and additional parameters. The main advantages of this approach are that

  1. Different problems can be solved with the same method (e.g. TV regularization) by simply switching operator and data.
  2. The same problem can be solved with different methods by simply calling into different solvers.
  3. Solvers and application-specific code need to be written only once, in one place, and can be tested individually.
  4. Adding new applications or solution methods becomes a much easier task.

Features

  • Efficient and well-tested data containers based on NumPy (default) or CUDA (optional)
  • Objects to represent mathematical notions like vector spaces and operators, including properties as expected from mathematics (inner product, norm, operator composition, ...)
  • Convenience functionality for operators like arithmetic, composition, operator matrices etc., which satisfy the known mathematical rules.
  • Out-of-the-box support for frequently used operators like scaling, partial derivative, gradient, Fourier transform etc.
  • A versatile and pluggable library of optimization routines for smooth and non-smooth problems, such as CGLS, BFGS, Chambolle-Pock and Douglas-Rachford splitting.
  • Support for tomographic imaging with a unified geometry representation and bindings to external libraries for efficient computation of projections and back-projections.
  • Standardized tests to validate implementations against expected behavior of the corresponding mathematical object, e.g. if a user-defined norm satisfies norm(x + y) <= norm(x) + norm(y) for a number of input vectors x and y.

Installation

Installing ODL should be as easy as

conda install -c odlgroup odl

or

pip install odl

For more detailed instructions, check out the Installation guide.

The code is compatible with Python 2 and 3 through the future library. It is intended to work on all major platforms (GNU/Linux / Mac / Windows).

Resources

Applications

ODL has been used in a wide range of research and development with several scientific articles and conference contributions as well as other open source projects using ODL as a back-end. Many of these release their code publicly and can serve as examples of how to use ODL. This is a short list of such projects. If you want to add your project to the list, contact the maintainers or file a pull request.

Articles
Description Code
Indirect Image Registration with Large Diffeomorphic Deformations. Arxiv GitHub
High-level algorithm prototyping: an example extending the TVR-DART algorithm. DGCI, 2017 GitHub
GPUMCI, a flexible platform for x-ray imaging on the GPU. Fully3D, 2017
Spectral CT reconstruction with anti-correlated noise model and joint prior. Fully3D, 2017 GitHub
Solving ill-posed inverse problems using iterative deep neural networks. Arxiv GitHub
Total variation regularization with variable Lebesgue prior. Arxiv GitHub
Generalized Sinkhorn iterations for regularizing inverse problems using optimal mass transport. Arxiv
A modified fuzzy C means algorithm for shading correction in craniofacial CBCT images. CMBEBIH, 2017 GitHub
Shape Based Image Reconstruction Using Linearized Deformations. Inverse Problems, 2017. DOI GitHub
Other projects
Description Code
Multigrid CT reconstruction GitHub
Inverse problems over Lie groups GitHub
Bindings for the EMRecon package for PET GitHub
ADF-STEM reconstruction using nuclear norm regularization GitHub

License

Mozilla Public License version 2.0 or later. See the LICENSE file.

ODL developers

To contact the developers either open an issue on the issue tracker or send an email to [email protected]

Main developers
Contributors

Funding

Development of ODL is financially supported by the Swedish Foundation for Strategic Research as part of the project "Low complexity image reconstruction in medical imaging".

Some development time has also been financed by Elekta.

odl's People

Contributors

adler-j avatar kohr-h avatar aringh avatar niinimaki avatar mehrhardt avatar hilding79 avatar chongchenmath avatar ozanoktem avatar wjp avatar moosmann avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.