Computational Optical Learning Library (Colibri) Documentation =================================================================== |Test Status| |Docs Status| |Python 3.8+| |colab| Colibri is a deep learning based library specialized in optimizing the key parameters of optical systems that can be learned from data to improve the performance of the system. In Colibri, optical systems, neural networks, model based recovery algorithms, and datasets are implemented to be easily used or modified for new research ideas. The purpose of Colibri is to boost the research-related areas where optics and networks are required and introduce new researchers to state-of-the-art algorithms in a straightforward and friendly manner. 🔗 Relevant Links ------------------ * Source code: `https://github.com/pycolibri/pycolibri `_ * Documentation: `https://pycolibri.github.io/pycolibri/ `_ 🥅 Goals ------------------ - Easy to use, customize and add modules. - Comprehensive documentation and examples. - High-quality code and tests. - Fast and efficient algorithms. - Wide range of optical systems, neural networks, recovery algorithms, and datasets. - Support for the latest research in the field. 💿 Installation ------------------ To get started with Colibri, install the library using the following steps: 1. Clone the repository: .. code-block:: bash git clone https://github.com/pycolibri/pycolibri.git 2. Create a virtual environment with conda: .. code-block:: bash conda create -n colibri python=3.10 conda activate colibri 3. Install the requirements: .. code-block:: bash pip install -r requirements.txt 4. Enjoy! 😄 🚀 Quick Start ------------------ Check out the demo list in the `examples `_ folder to get started with Colibri. * `Demo Colibri `_ * `Demo PnP `_ * `Demo FISTA `_ * `Demo DOEs `_ * `Demo Datasets `_ 🧰 Available Modules -------------------------- 📷 **Optical Systems** * Spectral Imaging - `Single Pixel Camera (SPC) `_ - `Single Disperser CASSI (SD-CASSI) `_ - `Dual Disperser CASSI (DD-CASSI) `_ - `Color CASSI (C-CASSI) `_ - `Diffractive Optical Element (DOE) `_ 📈 **Regularizers** * Binary Regularizers - `Values `_ - `Transmitance `_ * Stochastic Regularizers - `Correlation `_ - `Kullback-Leibler Divergence `_ - `Minimal Variance `_ 💻️ **Deep Neural Networks** - `Autoencoder `_ - `Unet `_ 🖥 **Recovery Algorithms** * Algorithms - `Fast Iterative Shrinkage-Thresholding Algorithm (FISTA) `_ - `Alternating Direction Method of Multipliers Plug and Play (ADMM-PnP) `_ * Solvers - `L2L2Solver `_ * Fidelity Terms - `L2 `_ - `L1 `_ * Priors - `Sparsity `_ * Transforms - `DCT `_ 🎆 **Frameworks** * Coupled Optimization for Optics and Recovery - `End-to-end framework `_ 🫂 Contributors ------------------ .. raw:: html :file: contributors.html 💡 Contributing ------------------ Information about contributing to Colibri can be found in the `CONTRIBUTING.md `_ guide. and in the guide `How to Contribute `_ 🛡️ License ------------------ .. code-block:: text Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. .. toctree:: :maxdepth: 2 :hidden: :caption: Contents: miscellaneous models optics datasets regularizers recovery contributing auto_examples/index .. |Test Status| image:: https://github.com/pycolibri/pycolibri/actions/workflows/test.yml/badge.svg :target: https://github.com/pycolibri/pycolibri/actions/workflows/test.yml .. |Docs Status| image:: https://github.com/pycolibri/pycolibri/actions/workflows/documentation.yml/badge.svg :target: https://github.com/pycolibri/pycolibri/actions/workflows/documentation.yml .. |Python 3.8+| image:: https://img.shields.io/badge/python-3.8%2B-blue :target: https://www.python.org/downloads/release/python-380/ .. |colab| image:: https://colab.research.google.com/assets/colab-badge.svg :target: https://colab.research.google.com/github/pycolibri/pycolibri/blob/main/main.ipynb .. |Github| image:: https://img.shields.io/badge/github-%23121011.svg :target: https://github.com/pycolibri/pycolibri