Skip to content

Patch2Self Denoising - NeurIPS 2020 Spotlight Presentation

Notifications You must be signed in to change notification settings

ShreyasFadnavis/patch2self

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repo is outdated and work in progress. Please use the implementation in DIPY (>=1.4.0) for the best possible implementation of Patch2Self.

Video on how to use: YouTube

Medium Article for detailed instructions: Blogpost Link

Patch2Self: Denoising Diffusion MRI with Self-Supervised Learning

This repo demonstrates a framework (Patch2Self) for denoising Diffusion MRI, as described in the paper: NeurIPS Spotlight

The main model to perform the denoising is contained in: model/patch2self.py

We provide support for 4 different types of regressors:

  • Ordinary Least Squares ('ols')
  • Ridge ('ridge')
  • Lasso ('lasso')
  • Multilayer Perceptron ('mlp')

API: To denoise any diffusion data via Patch2Self:

# load the 4D DWI data 
denoised_data = patch2self(data, model='ridge')

# one can save the denoised data in the Nifti file format using DIPY:
from dipy.io.image import save_nifti
save_nifti('filename.nii.gz', denoised data, np.eye(4))

Tutorial Notebooks:

Denoise various datasets shows how patch2self can be used to denoise different datasets.

Denoising simulated phantom shows how patch2self works on denoising on simulated data.

Regression Comparison shows effect of patch2self using different regressors mentioned above. To run the MLP Regressor, make sure to run the MLP Regressor first.

Tractography Comparison shows effect of patch2self on tractography using probabilistic tractography via CSA and CSD. We show comparison between different denoising algorithms using Fiber Bundle Coherency metric explaines in the paper.

Voxel-wise k-fold Crossvalidation and Box-plots: k-fold Crossvalidation shows the k-fold crossvalidation analyses.

Diffusion Kurtosis Imaging Analysis depicts the effects denoising on DKI maps.

  • Links to the data used in the above tutorials are provided in the supplement.

Dependencies are in the environment.yml file.