Convolutional neural network for limited-angle tomographic reconstruction inspired by pseudodifferential operators
- License: GNU General Public License v3.0
- Author: Mathilde Galinier
- Institution: Università degli studi di Modena e Reggio Emilia
- Doctoral programme: INdAM Doctoral Programme in Mathematics and Applications Cofunded by Marie Sklodowska-Curie Actions (INdAM-DP-COFUND-2015)
- Email: [email protected]
- Related publication: https://arxiv.org/abs/2006.01620
- Please use the following citation:
T. A. Bubba, M. Galinier, M. Lassas, M. Prato, L. Ratti, and S. Siltanen. 'Deep neural networks for inverse problems with pseudodifferential operators: an ap-plication to limited-angle tomography'. To appear in SIAM Journal on Imaging Sciences (SIIMS), 2020.
- Install anaconda.
- Create an environment with python version 3.6.9.
$ conda create -n PsiDONet_tf_env python=3.6.9
- Activate the environment
$ conda activate PsiDONet_tf_env
- Inside this environment install the following packages.
$ conda install -c anaconda numpy=1.14.6
$ conda install -c conda-forge matplotlib=3.2.1 scikit-image=0.17.2 pywavelets=1.1.1
$ conda install tensorflow-gpu=1.13.1
$ conda install -c astra-toolbox astra-toolbox=1.8.3
$ conda install -c odlgroup odl=0.7.0
- Use the demo notebook to train and test PsiDONet models.
- Install anaconda.
- Create an environment with python version 3.6.9.
$ conda create -n PsiDONet_torch_env python=3.6.9
- Activate the environment
$ conda activate PsiDONet_torch_env
- Inside this environment install the following packages.
$ conda install -c anaconda numpy=1.14.6
$ conda install -c conda-forge matplotlib=3.2.1 scikit-image=0.17.2 pywavelets=1.1.1
$ conda install pytorch=1.0.0 torchvision=0.2.1 cuda80 -c pytorch
$ conda install -c astra-toolbox astra-toolbox=1.8.3
$ conda install -c odlgroup odl=0.7.0
- Add the pytorch wavelet package with pip.
$ git clone https://github.com/fbcotter/pytorch_wavelets
$ cd pytorch_wavelets
$ pip install .
- Use the demo notebook to train and test PsiDONet models.
-
Tensorflow
: Contains the tensorflow version of PsiDONet filesfundamental_functions
: Contains PsiDONet filesTrain_Test_PsiDONet.py
: Contains the training and testing functions of PsiDONetutils_learning.py
: Includes the definition of the PsiDONet unrolled iterationsutils_bowtie.py
: Contains functions for filter computationtools.py
: Includes loading and quality evalutation functionsauxiliary_functions.py
: Contains some useful side functionstf_wavelets.py
: Contains wavelet transform functionshaar_psi.py
: Contains the implementation of HaarPSI (code from http://www.haarpsi.org/)
demo.ipynb
: shows how to train and test PsiDONet with the tensorflow implementation
-
PyTorch
: Contains the PyTorch version of PsiDONet files (only PsiDONetO and PsiDONetO+ are implemented)fundamental_functions
: Contains PsiDONet filesTrain_Test_PsiDONet.py
: Contains the training and testing functions of PsiDONetmodel.py
: Includes the definition of the layers in PsiDONetmodules.py
: Contains useful functions employed in PsiDONettools.py
: Includes loading and quality evalutation functionsauxiliary_functions.py
: Contains some useful side functionshaar_psi.py
: Contains the implementation of HaarPSI
PyTorch_ssim
: forward and backward functions to use SSIM as the training loss, (code from https://github.com/Po-Hsun-Su/pytorch-ssim)demo.ipynb
: shows how to train and test PsiDONet with the PyTorch implementation
-
Ellipses_Datasets
: Datasets of ellipse imagesSize_128
: Dataset of 128x128 imagestrain
: Training setImages
: Contains 10000 ground truth ellipse imagesSinograms
: Contains 10000 complete-angle sinograms
val
: Validation setImages
: Contains 500 ground truth ellipse imagesSinograms
: Contains 500 complete-angle sinograms
test
: Test setImages
: Contains 500 ground truth ellipse imagesSinograms
: Contains 500 complete-angle sinograms
The ground truth images and the sinograms were simulated with Matlab. The sinograms were corrupted by gaussian noise and generated according to a procedure that avoids inverse crime.