[Insight-users] Re: BSpline deformable transform

Luis Ibanez luis . ibanez at kitware . com
Mon, 08 Dec 2003 22:56:30 -0500


Hi Jesse,

You may want to start by reading the documentation of
the BSplineDeformableTransform class in

http://www . itk . org/Insight/Doxygen/html/classitk_1_1BSplineDeformableTransform . html

Then look at the testing file in

  Insight/Testing/Code/Common/itkBSplineDeformableTransformTest.cxx


Please let us know if you have more specific questions,


Thanks


  Luis


-------------------
iajesse wrote:

> Hi Luis,
>  
> I want to use  BSpline transforms using the basic registration 
> framework, can you give me some advice of it?
>  
> Thanks
>  
> Jesse
> 
> */Luis Ibanez <luis . ibanez at kitware . com>/* wrote:
> 
>     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 ima! ges 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 fi! le 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
>      >
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail . yahoo . com
>