SkillAgentSearch skills...

CSET

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.

Install / Use

/learn @CSET-Toolbox/CSET
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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

<pre> Original Image SIRT SIRT-FISTA-TV </pre>

picture4 picture5 picture6

<pre>SIRT + Median filtering SIRT + Gaussian Filtering SIRT + Anisotropic Diffusion Filtering </pre>

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.

View on GitHub
GitHub Stars36
CategoryDevelopment
Updated5mo ago
Forks16

Languages

MATLAB

Security Score

77/100

Audited on Oct 13, 2025

No findings