Python implementation of paper: Deep speckle correlation: a deep learning approach towards scalable imaging through scattering media. We provide model, pre-trained weights(download link available below), test data and a quick demo.
If you find this project useful in your research, please consider citing our paper:
Imaging through scattering is an important, yet challenging problem. Tremendous progress has been made by exploiting the deterministic input-output transmission matrix for a fixed medium. However, this one-for-one approach is highly susceptible to speckle decorrelations -- small perturbations to the scattering medium lead to model errors and severe degradation of the imaging performance. Our goal here is to develop a new framework that is highly scalable to both medium perturbations and measurement requirement. To do so, we propose a statistical one-for-all deep learning technique that encapsulates a wide range of statistical variations for the model to be resilient to speckle decorrelations. Specifically, we develop a convolutional neural network (CNN) that is able to learn the statistical information contained in the speckle intensity patterns captured on a set of diffusers having the same macroscopic parameter. We then show for the first time, to the best of our knowledge, that the trained CNN is able to generalize and make high-quality object prediction through an entirely different set of diffusers of the same class. Our work paves the way to a highly scalable deep learning approach for imaging through scattering media.
python 3.6
keras 2.1.2
tensorflow 1.4.0
numpy 1.14.3
h5py 2.7.1
matplotlib 2.1.2
You can download pre-trained weights from here
After download the pre-trained weights file, put it under the root directory and run demo.py.
This project is licensed under the terms of the MIT license. see the LICENSE file for details