Deep Learning Based Image Reconstruction for Single-Source Diffuse Optical Tomography system with Sparse Measurements
Files related to paper Deep Learning Based Image Reconstruction for single-source Diffuse Optical Tomography system with sparse measurements published on "Waves in Random and Complex Media" https://www.tandfonline.com/eprint/DDCIUQKS6QRTDWFCMXHR/full?target=10.1080/17455030.2021.1968540
This Repository consists of two main parts:
-
In this part, we create a dataset for training our neural network. Dataset is created with simulation of light propagation in tissue using the TOAST++ package to solve photon diffusion equation in 2D (DOT forward problem). the creating-dataset folder consists of scripts for creating mesh, solving forward problem, post-processing and evaluating results and several other parts some explained below
-
In this part, we train a Deep Neural Networks using the dataset created in part one and Evaluate Results. More Information on files is available below.
Dataset consists of sample pairs (X, Y) where X is boundary measurements and Y is absorption coefficient image. Final Output of this part is two matrices for X and Y of all examples. One can request access to the dataset from authors or create one with scripts in this part.
First we create all mesh files then we solve forward problem for each mesh to obtain boundary measurements and put them together in a matrix. All files and codes for creating meshes are stores in meshing folder. Fisrt We create gmsh .geo (Geometry) files and then we create meshes with these .geo files. Geometry files are created based on template geo files circle_single.geo and circle_double.geo which are geometries of circular phantoms with single or double inclusions.
Forward problem is then solved in forwad_create_dataset.m where we read mesh files, obtain boundary measurements and save two matrices X (boundary measurements) which is input of neural network and Y (absorption coefficient image) which is output of our network.
Training is done in training notebook training.ipynb Functions for reading and preprocessing data are stored in read_preprocess_data.py and various network architectures we tested are stored in network_architectures.py
Analysis of model built in prevoius section and it's outputs is done in analysis.ipynb. Evaluation metrics used to compare reconstruction performance of DL and Classic method are stored in evaluation_metrics.py.
Files for classical method image reconstruction including Gauss-Newton reconstruction and Conjugate gradient reconstruction and Grid search to select best parameters for these methods.