Atlas Registration: Non Linear (MI/FFD)

Estimate a non-linear transformation, modeled with a grid of B-splines (Free-Form Deformation, FFD), by optimization of the mutual information between two images.

The deformation field can be estimated in a multiresolution framework, from a coarse grid to a finer one, by successively increasing the number of control points. Spline parameters are optimized with a L-BFGS-B optimizer.

This is the most demanding step of the whole pipeline in terms of computation time.

Description

References

Rueckert et al. (1999) first proposed the FFD model. They optimized the Normalized Mutual Information, contained a regularization term for the deformation field and was optimized by gradient descent. Mattes et al. (2003) modified it to optimize the Mutual Information, without regularization term and with a L-BFGS-B optimizer. We used a fortran implementation of the L-BFGS-B optimizer (Byrd, Lu and Nocedal, 1995) provided by Zhu, Bird and Nocedal (1997).

Parameters

input_mri: P:MRI VIP Bias Corrected ( input )
Reference image. In order to minimize deformations of the input image, in Primatologist's framework, the atlas is registered towards the target MRI space.
input_mask: P:Morpho Skull Stripping Mask ( optional, input )
input_template: P:Atlas Raw Template ( input )
Moving image. In Primatologist, this should be the template image associated with the anatomical or probabilistis atlas.
input_affine_motion: P:Template To Subject Affine Transformation ( input )
FFD can only model small deformations (x' = x + d(x)). Global differences, modeled by an affine transformation, must thus be estimated beforehand (Affine transform estimation).
input_test_points: P:Evaluation Points Bucket ( optional, input )
List of coordinates in the target image space to which the estimation of MI will be restricted. This allows to diminish computing time but also lowers the quality of the MI estimation. Because the parameters space is, here, very large, it is advised not to use an estimation subset unless computing time is of major importance.
test_bins: Integer ( optional, input )
Number of histogram bins for the test (moving) image.
ref_bins: Integer ( optional, input )
Number of histogram bins for the reference image.
init_grid: ListOf( Integer ) ( optional, input )
Initial grid size. It should be a low number in order to capture large deformations. This parameter can be provided for each dimention of the space (x, y, z).
final_grid: ListOf( Integer ) ( optional, input )
Initial grid size. It should be a high number in order to capture local deformations. This parameter can be provided for each dimention of the space (x, y, z).
incr_grid: ListOf( Integer ) ( optional, input )
Increase of the grid size between resolution levels. This parameter can be provided for each dimention of the space (x, y, z).
max_def: ListOf( Float ) ( optional, input )
Maximum value allowed for control points (which will be close to the maximum deformation of the resulting deformation field). By default, this is defined by the grid spacing, but it can be constrained to avoid too large deformations. This parameter can be provided for each dimention of the space (x, y, z).
min_iter: Integer ( optional, input )
Minimum number of optimization iterations at each resolution level. Because the L-BFGS-B optimizer estimates the Hessian of the objective function from the last m iterations, it might be useful to force a minimum number of iterations in order to insure an accurate estimation. Indeed, the first displacements in the parameters space are often too low because of Hessian estimation innacuracy.
final_criterion: Float ( optional, input )
Stop criterion is the gain of Mutual Information between two consecutive iterations. Here, the stop threshold can be modulated at each resolution level with coef_criterion. This parameter should contain the threshold value at the finer resolution level.
coef_criterion: Integer ( optional, input )
Stop criterion is the gain of Mutual Information between two consecutive iterations. Here, the stop threshold can be modulated at each resolution level. This parameter should contain the coefficient applied to the threshold between resolution levels.
output_ffd_motion: P:Template To Subject FFD Transformation ( output )

Technical information

Toolbox : Primatologist

User level : 0

Identifier : primate_AtlasFFD

File name : brainvisa/toolboxes/primatologist/processes/blocks/primate_AtlasFFD.py

Supported file formats :

input_mri :
gz compressed NIFTI-1 image, Aperio svs, BMP image, DICOM image, Directory, ECAT i image, ECAT v image, FDF image, FreesurferMGH, FreesurferMGZ, GIF image, GIS image, Hamamatsu ndpi, Hamamatsu vms, Hamamatsu vmu, JPEG image, Leica scn, MINC image, NIFTI-1 image, PBM image, PGM image, PNG image, PPM image, SPM image, Sakura svslide, TIFF image, TIFF image, TIFF(.tif) image, TIFF(.tif) image, VIDA image, Ventana bif, XBM image, XPM image, Zeiss czi, gz compressed MINC image, gz compressed NIFTI-1 image
input_mask :
gz compressed NIFTI-1 image, Aperio svs, BMP image, DICOM image, Directory, ECAT i image, ECAT v image, FDF image, FreesurferMGH, FreesurferMGZ, GIF image, GIS image, Hamamatsu ndpi, Hamamatsu vms, Hamamatsu vmu, JPEG image, Leica scn, MINC image, NIFTI-1 image, PBM image, PGM image, PNG image, PPM image, SPM image, Sakura svslide, TIFF image, TIFF image, TIFF(.tif) image, TIFF(.tif) image, VIDA image, Ventana bif, XBM image, XPM image, Zeiss czi, gz compressed MINC image, gz compressed NIFTI-1 image
input_template :
gz compressed NIFTI-1 image, Aperio svs, BMP image, DICOM image, Directory, ECAT i image, ECAT v image, FDF image, FreesurferMGH, FreesurferMGZ, GIF image, GIS image, Hamamatsu ndpi, Hamamatsu vms, Hamamatsu vmu, JPEG image, Leica scn, MINC image, NIFTI-1 image, PBM image, PGM image, PNG image, PPM image, SPM image, Sakura svslide, TIFF image, TIFF image, TIFF(.tif) image, TIFF(.tif) image, VIDA image, Ventana bif, XBM image, XPM image, Zeiss czi, gz compressed MINC image, gz compressed NIFTI-1 image
input_affine_motion :
Transformation matrix, Transformation matrix
input_test_points :
Bucket, Bucket
output_ffd_motion :
GIS image, GIS image