Skip to content

Feature/mace

Yang, Diyu requested to merge feature/mace into master

Created by: dyang37

This is my first attempt to merge mace into master branch. This PR contains the minimal code for a mace3D reconstruction demo using simulated data (bottle cap).

I set up the mace module in the way that no extra requirements (specifically keras and tensorflow) are needed for the mbircone library. All keras/tensorlow dependent part are moved into demo script. The reason for this setting is that ideally we want the user to be able to install mbircone without the dependencies of tensorflow and keras.

Scripts:

  • demo/demo_mace3D.py: demo script for 3D mace recon. This file demonstrates the usage of mace3D reconstruction algorithm by downloading phantom and denoiser data from a url, generating sinogram by projecting the phantom and adding transmission noise, and finally performing a 3D MACE reconstruction.
  • mbircone/mace/mace.py: script for mace3D function.
  • mbircone/mace/denoiser.py: script for denoiser functions.

Tests performed:

  • Start from a clean conda env and a freshly cloned mbircone repo, test that qGGMRF recon works by running demo_3D_shepp_logan.py without installing mace specific requirements. Make sure that the reconstructed images look correct.
  • Start from a clean conda env and a freshly cloned mbircone repo, install mace specific requirements, and test mace3D demo by running demo_mace3D.py, and make sure that we obtain good mace reconstructions.

Phantom (axial slice): phantom_slice

MACE reconstruction: recon_mace_slice

Merge request reports