DIP-UP

March 20, 2026 · View on GitHub

deepMRI collection

DIP-UP provides a DIP-based enhancement mechanism for pre-trained 3D CNN models in MRI phase unwrapping. It refines existing network outputs using two unsupervised constraints: Laplacian loss and total variation (TV) loss — no additional labeled data needed.

Pipeline: (1) Train a base phase unwrapping network → (2) Apply DIP enhancement at test time.

16–24 GB GPU memory recommended. Tested on Windows 10.


Overview

Pipeline

DIP-UP Pipeline


Requirements

  • Python 3.7+, PyTorch
  • NVIDIA GPU (16–24 GB VRAM recommended)

Checkpoints and Test Data

  • Pre-trained models (PHU-NET3D and PhaseNet3D): Dropbox

  • Test data (simulation: 10 ms TE, σ=0.1; in vivo: 5.8 ms TE): Dropbox


Usage

Step 1 – Prepare data

Two network variants are provided:

NetworkData loaderInput channels
PHU-NET3DTrainingDataLoad_ResidueLoss_2Chan.pyimage_file, lap_file, Label_file
PhaseNet3DTrainingDataLoad_ResidueLoss_1Chan.pyimage_file, Label_file

Step 2 – Train base network

Edit the following variables in the training script:

VariableDescription
DATA_DIRECTORYRoot directory of training dataset
DATA_LIST_PATHIndex file (e.g. test_IDs_28800.txt)
ModelFolderPath to save trained model checkpoints
ModelNameName for saved model files

Step 3 – DIP enhancement (test time)

Edit and run the inference script:

VariableDescription
SourceDirDirectory of inference data
ReconTypeSimulation or InVivo
SaveDir_NIFTIOutput directory for .nii results

Learning rate options:

  • Variable: decays every 10 epochs during DIP
  • Constant: uses default fixed value

⬆ top  |  deepMRI collection