DIP-UP
March 20, 2026 · View on GitHub
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
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:
| Network | Data loader | Input channels |
|---|---|---|
| PHU-NET3D | TrainingDataLoad_ResidueLoss_2Chan.py | image_file, lap_file, Label_file |
| PhaseNet3D | TrainingDataLoad_ResidueLoss_1Chan.py | image_file, Label_file |
Step 2 – Train base network
Edit the following variables in the training script:
| Variable | Description |
|---|---|
DATA_DIRECTORY | Root directory of training dataset |
DATA_LIST_PATH | Index file (e.g. test_IDs_28800.txt) |
ModelFolder | Path to save trained model checkpoints |
ModelName | Name for saved model files |
Step 3 – DIP enhancement (test time)
Edit and run the inference script:
| Variable | Description |
|---|---|
SourceDir | Directory of inference data |
ReconType | Simulation or InVivo |
SaveDir_NIFTI | Output directory for .nii results |
Learning rate options:
- Variable: decays every 10 epochs during DIP
- Constant: uses default fixed value