This is the official Pytorch implementation of "Large Deformation Diffeomorphic Image Registration with Laplacian Pyramid Networks" (MICCAI 2020), written by Tony C. W. Mok and Albert C. S. Chung.
Python 3.5.2+
Pytorch 1.3.0 - 1.7.0
NumPy
NiBabel
This code has been tested with Pytorch 1.3.0
and GTX1080TI GPU.
If you prefer diffeomorphic solutions, please try:
python Test_LapIRN_diff.py
If you prefer solutions with maximized registration accuracy, please try:
python Test_LapIRN_disp.py
Step 1: Replace /PATH/TO/YOUR/DATA
with the path of your training data. You may also need to implement your own data generator (Dataset_epoch
in Functions.py
).
Step 2: Change the imgshape
variable (in Train_LapIRN_diff.py
or Train_LapIRN_disp.py
) to match the resolution of your data.
(Optional) Step 3: You may adjust the size of the model by manipulating the argument --start_channel
.
Step 3: python Train_LapIRN_diff.py
to train the LapIRN formulated with the stationary velocity field, or python Train_LapIRN_disp.py
to train the LapIRN formulated with the displacement field.
If you find this repository useful, please cite:
- Large Deformation Diffeomorphic Image Registration with Laplacian Pyramid Networks
Tony C. W. Mok, Albert C. S. Chung
MICCAI 2020. eprint arXiv:2006.16148
We changed the regularization term in the loss function. The original regularization term is computed on the normalized velocity/displacement field, which may cause bias to the short axis.
Some codes in this repository are modified from IC-Net and VoxelMorph.
Keywords: Diffeomorphic Image Registration, Large Deformation, Laplacian Pyramid Networks, Convolutional neural networks