Paper: Imaging through scattering media via generative diffusion model
Authors: Z. Chen, B. Lin, S. Gao, W. Wan*, Q. Liu*
Applied Physics Letters (Vol.124, Issue 5)
https://pubs.aip.org/aip/apl/article/124/5/051101/3176612/Imaging-through-scattering-media-via-generative
Date : Jan-29-2024
Version : 1.0
The code and the algorithm are for non-comercial use only.
Copyright 2024, Department of Electronic Information Engineering, Nanchang University.
The scattering medium scrambles the light paths emitted from the targets into speckle patterns, leading to a signifi-cant degradation of the target image. Conventional iterative phase recovery algorithms typically yield low-quality reconstructions. On the other hand, supervised learning methods exhibit limited generalization capabilities in the con-text of image reconstruction. An approach is proposed for achieving high-quality reconstructed target images through scattering media using a diffusion generative model. The gradient distribution prior information of the target image is modeled using a scoring function, which is then utilized to constrain the iterative reconstruction process. The high-quality target image is generated by alternatively performing the stochastic differential equation solver and physical model-based data consistency steps. Simulation and experimental validation demonstrate that the proposed method achieves better image reconstruction quality compared to traditional methods, while ensuring generalization capabili-ties.
python==3.7.11
Pytorch==1.7.0
tensorflow==2.4.0
torchvision==0.8.0
tensorboard==2.7.0
scipy==1.7.3
numpy==1.19.5
ninja==1.10.2
matplotlib==3.5.1
jax==0.2.26
We provide pretrained checkpoints. You can download pretrained models from [Baidu cloud] (https://pan.baidu.com/s/1YBI7PLmGyzId-YLg_BW1sA) Extract the code (im5k)
The dataset used to train the model in this experiment is MNIST.
place the dataset in the train file under the Train_data folder.
python main.py --config=configs/ve/church_ncsnpp_continuous.py --workdir=exp_train_MNIST_max1_N1000 --mode=train --eval_folder=result
Use the following command to test: python A_PCsampling.py
The implementation is based on this repository: https://github.com/yang-song/score_sde_pytorch.