SynthMorph: learning image registration without images

Malte Hoffmann, Benjamin Billot,

Douglas N. Greve, Juan Eugenio Iglesias, Bruce Fischl, Adrian V. Dalca
IEEE International Symposium on Biomedical Imaging, pp 899-903, 2021

IEEE Transactions on Medical Imaging, 41 (3), 543-558, 2022

SPIE Medical Imaging: Image Processing, 12464, p 1246402, 2023


Explore our new demo on anatomy-aware affine registration with SynthMorph!


Recent advances in deep learning have dramatically enhanced the accuracy and efficiency of medical image registration. Yet, such algorithms often struggle to generalize beyond the image types they see at training.

The SynthMorph learning strategy for acquisition-agnostic registration directly addresses this challenge by exposing networks to wildly variable synthetic data, which leads to unprecedented robustness across a landscape of real image types and greatly alleviates the need for retraining.

Training images

SynthMorph training data

Registration tool

SynthMorph is also a tool leveraging the synthesis strategy for rigid, affine, and deformable registration of any brain image right off the MRI scanner, without preprocessing such as skull-stripping. Choose the regularization strength at test time!

We maintain a standalone container version of SynthMorph on the Docker Hub, with a script for easy setup and use supporting any of the following container tools: Docker, Podman, Apptainer, or Singularity.

In addition, FreeSurfer ships the command-line tool mri_synthmorph. For the latest version, download a build of the FreeSurfer development branch.

Affine examples

Affine SynthMorph registration examples

Command usage

Register a moving to a fixed image using the default joint affine-deformable transformation model and save the result as moved.mgz:

mri_synthmorph -o moved.mgz moving.mgz fixed.mgz

Estimate and save an affine transform trans.lta in FreeSurfer LTA format:

mri_synthmorph -m affine -t trans.lta moving.mgz fixed.mgz

For detailed instructions and information on transforms, run:

mri_synthmorph -h

Registration accuracy

Registration accuracy in terms of Dice overlap


For those interested in training registration models, we maintain Google Colab notebooks showcasing the SynthMorph learning strategy:

Code and weights

Users who wish to build custom environments can find SynthMorph scripts in FreeSurfer, access the Python requirements for the latest container, browse source code on GitHub, and download the weight files independently:


Several papers describe SynthMorph registration techniques. For example, affine or rigid registration (* denotes equal contribution):

Anatomy-specific acquisition-agnostic affine registration learned from fictitious images

Hoffmann M, Hoopes A, Fischl B*, Dalca AV*

SPIE Medical Imaging: Image Processing, 12464, p 1246402, 2023


For joint registration or the registration tool, see:

Anatomy-aware and acquisition-agnostic joint registration with SynthMorph

Hoffmann M, Hoopes A, Greve DN, Fischl B*, Dalca AV*

arXiv:2301.11329, 2024


For deformable registration and the general synthesis strategy, please cite:

SynthMorph: learning contrast-invariant registration without acquired images

Hoffmann M, Billot B, Greve DN, Iglesias JE, Fischl B, Dalca AV

IEEE Transactions on Medical Imaging (TMI), 41 (3), pp 543-558, 2022

(arXiv, PMC, PDF)

Learning MRI contrast-agnostic registration

Hoffmann M, Billot B, Iglesias JE, Fischl B, Dalca AV

IEEE International Symposium on Biomedical Imaging (ISBI), pp 899-903, 2021


If you use SynthMorph, please cite us (BibTex)!

Video (5 minutes)


Start a discussion, open an issue on GitHub, or reach out to the FreeSurfer list.


We thank Danielle F. Pace for help with computing surface distances. SynthMorph benefited from computational hardware generously provided by the Massachusetts Life Sciences Center.