Coder Social home page Coder Social logo

emjian / cset Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cset-toolbox/cset

0.0 0.0 0.0 33.09 MB

CSET (Compressed Sensing Electron Tomography)-toolbox is a three-dimensional TV-based compressed sensing reconstruction toolbox that consists of algebraic iterative algorithms (SART and SIRT) with total variation (TV) based CS. In addition, it integrates a Fast Iterative Shrinkage-Thresholding Algorithm (FISTA) that is an acceleration method to speed up the algorithm convergence.

MATLAB 70.38% C 2.88% HTML 26.74%

cset's Introduction

SIRT-FISTA-TV Reconstruction Algorithm

SIRT-FISTA-TV is a regularized iterative reconstruction algorithm that is very robust to noisy and blurred data and can highly reduce missing wedge artifacts. It consists of three steps:

  1. SIRT update (SART and OS-SART could be used also)
  2. TV minimization (gradient descent is used)
  3. FISTA technique to speed up convergence speed

The algorithm is accelerated on GPU using CUDA mex functions.

It depends on two toolboxes: ASTRA and Spot.

  • The projection and backprojections functions of ASTRA are used.
  • The Spot toolbox is used to provide a MATLAB framework that wraps linear operations into MATLAB objects that act like matrices.

We provide two examples to test the algorithm: example1.m and example2.m that should run easily after installation is performed correctly.

Installation

  1. Select "ASTRA-toolbox", "Spot-toolbox", "TV minimization" and "Data" in MATLAB file browser -----> right click -----> Add to Path -----> Selected Folders and Subfolders. Note that you can type command "filebrowser" to open MATLAB file browser if it's not the case.
  2. Install CUDA toolkit (version 8.0 works well) Link: https://developer.nvidia.com/cuda-80-ga2-download-archive
  3. Install a C++ compiler (it's recommended to install Visual studio 2013 Community) Link: https://my.visualstudio.com/Downloads?q=visual%20studio%202013&wt.mc_id=o~msft~vscom~older-downloads

Directories

  1. "ASTRA-toolbox": includes ASTRA toolbox
  2. "Spot-toolbox": includes SPOT toolbox
  3. "Data": includes data that we have to reconstruct from
  4. "Reconstruction_results": Reconstruction results are saved here
  5. "TV minimization": includes mex cuda files for TV minimization

Example 1

The code named example1.m shows an example of reconstruction from simulated data. This code includes the following steps:

  1. Load a 3D numerical model "3D_model_with_pores_256_256_512_float.raw" from directory "Data"
  2. Generate 2D projections of this 3D model
  3. Perform 3D reconstruction
  4. Save reconstructed volume in directory "Reconstruction_results"

Example 2

The code named example2.m shows an example of reconstruction from experimental data. This code includes the following steps:

  1. Load 2D experimental projections "PdSiO2_aligned_tilt_series_1024_1024_69_16int" from directory "Data"
  2. Perform 3D reconstruction
  3. Save reconstructed volume in directory "Reconstruction_results"

Numerical Comparison With Noisy Data

We addded a Gaussian noise of zero mean and sigma = 2% of maximum value in noiseless projections. We show below a horizontal slice of each reconstructed volume (tilting angle range is [-70°,70°]).

picture1 picture2 picture3

    Original Image                  SIRT                      SIRT-FISTA-TV 

picture4 picture5 picture6

SIRT + Median filtering    SIRT + Gaussian Filtering   SIRT + Anisotropic Diffusion Filtering 

Referencing CS-ET

If you use CS-ET in any publications, please cite the following paper:

Banjak, H., Grenier, T., Epicier, T., Koneti, S., Roiban, L., Gay, A. S. & Maxim, V. (2018). Evaluation of noise and blur effects with SIRT-FISTA-TV reconstruction algorithm: Application to fast environmental transmission electron tomography. Ultramicroscopy, 189, 109-123.

cset's People

Contributors

cset-toolbox avatar thomasgre 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.