Code Monkey home page Code Monkey logo

deepdih's Introduction

DeepDIH

The repo shows the corresponding codes of the paper: Deep DIH : Statistically Inferred Reconstruction of Digital In-Line Holography by Deep Learning

In this paper, we propose a novel DL method that takes advantages of the main characteristic of auto-encoders for blind single-shot hologram reconstruction solely based on the captured sample and without the need for a large dataset of samples with available ground truth to train the model. The simulation results demonstrate the superior performance of the proposed method compared to the state-of-the-art methods used for single-shot hologram reconstruction.

If you have any question, please contact the author: [email protected]

File list:

You can also review the existed rusults on .html file or .ipynb file

  • Complex_conv.html:
  • DeepDIH.html / DeepDIH.ipynb
  • main.py

Noting:The HTML and Notebook could be also found in https://drive.google.com/drive/folders/13o86AYWUPvxQxanq4cHxIiDjW22vOd75?usp=sharing

Requirement:

  • GPU memory > 8 GB
  • Python 3
  • PyTorch(=1.6.0) install:

conda install pytorch torchvision cudatoolkit=10.2 -c pytorch(anaconda)

pip install torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

  • OpenCV for Python install:

pip install opencv-contrib-python

For more information, check:

Installation

  • Clone this repository. git lfs clone https://github.com/XiwenChen-NAU/DeepDIH.git
  • cd DeepDIH
  • run python main.py
  • The ouputs (amplitude and phase) in the subfolder ./results

Optical paras (pre-defined in main.py):

  • Spherical light function Nx, Ny :Nx = 1000 Ny = 1000
  • hologram size z:z = 857
  • object-sensor distance wavelength:wavelength = 0.635
  • wavelength of light deltaX, deltaY : deltaX = 1.67 deltaY = 1.67
  • If you want to setup your paras, go main.py and modify them in: main(Nx = *, Ny = *, z = *, wavelength = *, deltaX = *, deltaY = *) then run it.

Network Structure

The objective function can be formulated as:

image

where we want to propagate the reconstructed object wave to the hologram plane with transmission $T$ and minimize the error between the captured hologram and the forward-propagated result. image Deep convolutional autoencoder with “hourglass” architecture. Batch normalization is deployed after each convolution layer except for the last three layers to stabilize the training steps. The hyper-parameters (e.g., the kernel size and feature channels for each layer) is shown. The network is fully convolutional that enables us to feed inputs with different sizes.

Our Experiments

We implement our model using the PyTorch Framework in a GPU workstation with an NVIDIA Quadro RTX5000 graphics card. Adam optimizer is adopted with a fixed learning rate of 0.0005 for simulation-based experiments and 0.01 for optical experiments. We train the network with an angular spectrum propagation (ASP) back-propagation reconstruction as input for 1500 to 3500 iterations for simulated holograms, and 2500 to 5000 iterations for real-world holograms, respectively.

Results

image Optical Experimental hologram of USAF Resolution Chart and reconstructions. (A) The captured hologram. (B) Amplitude reconstruction with our method. (C) The reconstructed quantitative phase with our method.

deepdih's People

Contributors

huayulinau avatar xiwenc1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.