[Insight-users] Re: 2D deformable : FEMRegistrationFilter

Luis Ibanez luis . ibanez at kitware . com
Thu, 27 Nov 2003 23:08:43 -0500


Hi Jesse,

A)

The implementation of FEM in DeformableRegistration is
note based in a specific paper. It is rather a generalization
of an approach for deformable registration.

You will find relevant publications about this approach
in James Gee web page at the GRASP Lab in the University
of Pennsylvania.

    http://www . grasp . upenn . edu/people/gee . html

the bibliography can be found at

    http://www . cis . upenn . edu/~gee/grasp+med/bibliography . html


In particular you may want to read

J.C. Gee and D.R. Haynor, ¡°Numerical Methods for High
Dimensional Warps¡±. Chapter in ¡°Brain Warping¡±, ed. A.W.
Toga, Academic Press, 1998.

J.C. Gee and R.K. Bajcsy, ¡°Elastic Matching: Continuum
Mechanical and Probabilistic Analysis¡±. Chapter in ¡°Brain
Warping¡±, ed. A.W. Toga, Academic Press, 1998.



B) About the parameters of your configuration file

> % -------------------------------------------
> % Parameters for the single- or multi-resolution techniques
> % ---------------------------------------------
> 4       % Number of levels in the multi-res pyramid ( 1! = single-res)
> 1       % Highest level to use in the pyramid
> 4 4 4 % Scaling at lowest level of pyramid
> 4 4 4 4      % Number of pixels per element
> 1.e4 1.e4 1.e4 1.e4   % Elasticity (E)
> 1.e4 1.e4 1.e4 1.e4    % Density x capacity (RhoC)
> 1 1 1 1      % Image enery scaling (gamma) - sets gradient step size
> 4 1 1 2      % NumberOfIntegrationPoints
> 4 4 4 4      % WidthOfMetricRegion
> 10 10 10 10  % MaximumIterations


The Highest level of the pyramid

   should be = 4

The level zero is considered to be the coarser subsampling
while the highest level is the one with higher resolution.
If you set this to 1 only the levels =0 and =1 will be used
in the registration.

The scaling for the lowest level of the pyramid should be at
least equal to 2^(number of levels). That is, for 4 levels
this scaling value should be at leaset 2^4 = 16.

In this case you will have scaling factors =

Level    subsampling factor
  0             16
  1              8
  2              4
  3              2
  4              1   = full resolution = original image

You could use 4 levels and start with a subsampled image,
meaning that you will never use the original full resolution,
for example:

Level    subsampling factor
  0             64   = scaling at lowest level
  1             32
  2             16
  3              8
  4              4   not the full resolution


The number of pixels per element in your
configuration file looks fine.

For the parameters of elasticity you may want to use more
elastic materials in the higher resolutions since you need
to fit to finer details. The factor should then be a smaller
number as you go higher in the pyramid, for example:

   1.e4 1.e3 1.e2 1.e1   % Elasticity (E)

This is a critical parameter in the registration process
and you will have to fine tune this values. The recomended
process is to start with a low resolution registration in
a single level, and fine tune the parameters of this level
until the images are registered. Only when you succedd to
register at one level you will be in position for moving
to the next level.  If a level has not converged, there are
few chances that the next level will compensate.

For the density parameter you may want to
also reduce the values as you go higher in resolution.

   1.e4 1.e3 1.e2 1.e1    % Density x capacity (RhoC)

Again, note that the final Force/Displacement ratio is
a combination of the Density and the Elasticity.  By
tunning both parameters you may be over relaxing the
material,...   be sure to prepare a lot of coffee before
you start tunning these parameters.

---

You may want to keep the same number of integration points
at every level of the pyramid. This is related to the method
used for solving the FEM equations. Something like the following
line should be ok

 4 4 4 4      % NumberOfIntegrationPoints

Note that this will affect the performance of the FEM solver.

----

The maximum number of iterations at each level should be tunned
by running levels incrementally. That is, start by running only
level zero and do not move to level one until level zero has
produced acceptable results for the registration.



C) DeformableRegistration2 doesn't have a parameter file
   because is using a different algorithm, instead of a
   FEM based deformation it is using the Demons algorithm.
   Which minimizes the means squares difference between the
   two images. In order to do multi-resolution here you will
   have to do a bit more of manual work.

   You could use the MultiResolution Pyramid objects in order
   to generate the images at the different levels, then level
   by level register the images and make sure that for the
   next level you provide the resampled moving image of the
   previous level.


D) Yes, other approaches for deformable registration are:

   - Demons Algorithm as described in (c)
   - BSpline transforms using the basic registration framework
   - Kernel Based transforms also using the basic framework





Regards,


   Luis




===================
iajesse wrote:

> Hi Luis,
>  
> There are some question.
>  
> 1 which paper is the reference to DeformableRegistration1 ? I don;t find 
> it in ITK Guide
>  
> 2 I made a para file for multiresolutin in DeformableRegistration1, I'm 
> not sure it is right? can you help me to  check it ?
>  
> 3 DeformableRegistration2 has no parameter file, if I want to do a 3D 
> registration using multiresolutin? how to do next?
>  
> 4 are there any other nonrigid registration method in ITK? i.e,
>  
> D. Rueckert, L. I. Sonoda, D. L. G. Hill, M. O. Leach, and D. J.
> Hawkes, ``Nonrigid Registration Using Free-Form Deformations:
> Application to Breast MR Images,"
>  
> Thanks
>  
> Jesse
> 
> Para file for multiresolutin in DeformableRegistration1
> 
> % Configuration file #1 for DeformableRegistration1.cxx
> %
> % This example demonstrates the setup of a basic registration
> % problem that doest NOT use multi-resolution strategies. As a
> % result, only on evalue for the parameters between
> % (# of pixels per element) and (maximum iterations) is necessary.
> % If you were using multi-resolution, you would have to specify
> % values for those parameters at each level of the pyramid.
> %
> % Note: the paths in the parameters assume you have the traditional
> % ITK file hierarchy as shown below:
> % ITK/Insight/Examples/Registration/DeformableRegistration1.cxx
> % ITK/Insight/Examples/Data/RatLungSlice*
> % ITK/Insight-Bin/bin/DeformableRegistration1
> %
> % -------------------------------------------
> % Parameters for the single- or multi-resolution techniques
> % ---------------------------------------------
> 4       % Number of levels in the multi-res pyramid ( 1! = single-res)
> 1       % Highest level to use in the pyramid
> 4 4 4 % Scaling at lowest level of pyramid
> 4 4 4 4      % Number of pixels per element
> 1.e4 1.e4 1.e4 1.e4   % Elasticity (E)
> 1.e4 1.e4 1.e4 1.e4    % Density x capacity (RhoC)
> 1 1 1 1      % Image enery scaling (gamma) - sets gradient step size
> 4 1 1 2      % NumberOfIntegrationPoints
> 4 4 4 4      % WidthOfMetricRegion
> 10 10 10 10  % MaximumIterations
> % ---------------------------------------------
> % Parameters for the registration
> % ---------------------------------------------
> 0 0.99  % Similarity metric ( 0=mean sq, 1 =ncc, 2=pattern int, 
> 3=MI,5=demons)
> 1.0     % Alpha
> 0       % DescentDirection (1 = max, 0 = min)
> 0       % DoLineSearch (0=never, 1=always, 2=if needed)
> 1.e2    % TimeStep
> 0.5     % Landmark variance
> 0       % Employ regridding / enforce diffeomorphism ( >=1 -> true)
> %-------------------------------------
> % Information about the image inputs
> %-------------------------------------
> 191    % Nx (image x dimension)
> 236    % Ny (image y dimension)
> 171    % Nz (image z dimension - not used if 2D)
> Bai.mha       % ReferenceFileName
> Tan.mha       % TargetFileName
> %----------------------------------
> % The actions below depend on the values of the flags preceding them.
> % For example, to write out the displacement fields, you have to set
> % the value of WriteDisplacementFields to 1.
> %----------------------------------
> 0       % UseLandmard! s? - read the file name below if this is true
> -       % LandmarkFileName
> ./My_result        % ResultsFileName (prefix only)
> 1       % WriteDisplacementField?
> ./My_disp          % DisplacementsFileName (prefix only)
> 0       % ReadMeshFile?
> -       % MeshFileName
> END
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail . yahoo . com
>