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.
- A datasets module with common datasets for computational imaging tasks.
- A collection of advanced architectures that integrates optical systems with deep learning models.
- A module of deep learning models for computational imaging tasks.
- A collection of optical systems for spectral imaging tasks (SPC, SD-CASSI, C-CASSI, DD-CASSI, DOE)
- A set of regularization functions to force physical constraints on the optical coding elements.
- A recovery module with state-of-the-art recovery algorithms used in image restoration on inverse problems.
- A set of well-explained examples demonstrating how to use the features of
Colibri.
- Single Pixel Camera (SPC)
- Single Disperser CASSI (SD-CASSI)
- Dual Disperser CASSI (DD-CASSI)
- Color CASSI (C-CASSI)
- Diffractive Optical Element (DOE)
- Fast Iterative Shrinkage-Thresholding Algorithm (FISTA)
- Alternating Direction Method of Multipliers Plug and Play (ADMM-PnP)
The documentation is available at pycolibri.github.io/pycolibri.
- Clone the repository:
git clone https://github.com/pycolibri/pycolibri.git- Create a virtual environment with conda:
conda create -n colibri python=3.10
conda activate colibri- Install the requirements:
pip install .- Enjoy! π
You can go to examples folder and run cells of the notebook demo_colibri.ipynb to see how the library works.
|
Brayan Monroy |
David Santiago Morales Norato |
leonsuarez24 |
Roman Alejandro Jacome Carrascal |
Paula Andrea Arguello Gutierrez |
Emmanuel MartΓnez |
|
Romario Gualdron Hurtado |
Fabian Perez *-* |
Contributions are welcome! If you're interested in improving Colibri, please:
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -am 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Run quick_validation.sh to clear out old documentation, rebuild the documentation, run tests, and then open the newly generated documentation in a web browser.
See our contribution guide for more details.
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.