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.
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).
- R. H. Byrd, P. Lu and J. Nocedal, "A Limited Memory Algorithm for Bound Constrained Optimization," SIAM Journal on Scientific and Statistical Computing , vol. 16, no. 5, pp. 1190-1208, 1995. DOI: 10.1137/0916069
- C. Zhu, R. H. Byrd and J. Nocedal, "L-BFGS-B: Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization," ACM Transactions on Mathematical Software, vol. 23, no. 4, pp. 550 - 560, 1997. DOI: 10.1145/279232.279236
- D. Rueckert, L. I. Sonoda, C. Hayes, D. L. Hill, M. O. Leach, and D. J. Hawkes, "Nonrigid registration using free-form deformations: application to breast MR images," IEEE Trans. Med. Imaging, vol. 18, no. 8, pp. 712-21, Aug. 1999. DOI: 10.1109/42.796284
- D. Mattes, D. R. Haynor, H. Vesselle, T. K. Lewellen, and W. Eubank, "PET-CT image registration in the chest using free-form deformations," IEEE Trans. Med. Imaging, vol. 22, no. 1, pp. 120-8, Jan. 2003. DOI: 10.1109/TMI.2003.809072
- Y. Balbastre, "Morphometry analysis tools for the Macaque brain: development and validation," PhD thesis, Université Paris-Saclay, 2016.
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 )
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 imageinput_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 imageinput_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 imageinput_affine_motion :Transformation matrix, Transformation matrixinput_test_points :Bucket, Bucketoutput_ffd_motion :GIS image, GIS image