/spyrit

A Python toolbox for deep image reconstruction, with emphasis on single-pixel imaging.

Primary LanguagePythonGNU Lesser General Public License v3.0LGPL-3.0

GitHub tag (latest by date) GitHub PyPI pyversions

Spyrit

SPYRIT is a PyTorch-based toolbox for deep image reconstruction. While SPYRIT was originally designed for single-pixel image reconstruction, it can solve any linear reconstruction problem.

Getting Started

User mode

The spyrit package is available for Linux, MacOs and Windows. You can install it with pypi (we recommend you to use virtual environment).

Linux and MacOs

pip install spyrit

Windows

On Windows you need first to install torch. Here it's cpu version, adapt to your configuration.

pip install requests torch==1.8.0+cpu torchvision==0.9.0+cpu -f https://download.pytorch.org/whl/torch_stable.html
pip install spyrit

Developper mode

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

First, you need to clone the repository:

git clone --recurse-submodules https://github.com/openspyrit/spyrit.git

Then, you can install the spyrit package with python (we recommend you to use virtual environment)

Linux and MacOs

cd spyrit
pip install -e .

Windows

On Windows you need first to redo the symbolic link to fht inside the spyrit repository and then to install torch. Here it's cpu version, adapt to your configuration. It may be necessary to run the following commands using administrator rights (e.g. starting your Python environment with administrator rights).

cd spyrit
rm -r -fo fht
cmd /c mklink /d fht spyrit\fht\fht
pip install requests torch==1.8.0+cpu torchvision==0.9.0+cpu -f https://download.pytorch.org/whl/torch_stable.html
pip install -e .

Versioning

To change the version of the package on pypi, you need to:

  • change the version in setup.py to new_version
  • git commit setup.py -m "Towards new_version"
  • git tag -a new_version -m "new_version"
  • git push --follow-tags

Prerequisites

All the necessary packages and libraries are contained within the setup.py file.

  • numpy (==1.19.3)
  • matplotlib
  • scipy
  • torch
  • torchvision
  • Pillow
  • opencv-python
  • imutils
  • PyWavelets
  • wget
  • imageio
  • fht (included as a submodule in spyrit/fht),

Test

To check that the installation has been a success, try running the following lines in yout python terminal :

import spyrit

End with an example of getting some data out of the system or using it for a little demo

import torch;
a = torch.randn(64,64);

A minimal exemple can be found here. To run it, clone or download the file and you can do:

python example.py

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

  • Antonio Tomas Lorente Mur - Initial work - Website
  • Nicolas Ducros - Initial work - Website
  • Sebastien Crombez - Initial work - [Website]

License

This project is licensed under the Creative Commons Attribution Share Alike 4.0 - see the LICENSE.md file for details

Acknowledgments

  • Nicolas Barbey for his Fast Hadamard Transform implementation in python
  • Jin LI for his implementation of Convolutional Gated Recurrent Units for PyTorch
  • Erik Lindernoren for his processing of the UCF-101 Dataset.