[Insight-users] Tune Parameters

Luis Ibanez luis.ibanez at kitware.com
Sat, 28 Feb 2004 10:45:40 -0500


Hi Valli,

It will be quite difficult, if not impossible
to find parameters that will work for every
combination of image modalities.

I would suggest you to do a "medical-centerd"
application where the user has options for
registering:

    - CT to CT
    - CT to PET
    - MRI to PET

    ... and so on


then fine tune parameters independently for each
combination of image modalities that you are
offering.

The reason is that parameters such as the
optimizer step length are dependent on the
amount of noise in the metric, and that noise
depends on the image modality of the images.


--


Here are some guidelines:

A) Translation scales should be about:

    1.0 for the diagonal elements of the rotation matrix

   10.0 for the non-diagonal elements

    1.0 / (physical extent of the image) for translation element.

B) For numbrer of iterations you can usually go quite
    high.  If you tune the other parameters correctly,
    the number of iteration should never be exhausted.
    It is actually more important to setup a "Cancel"
    button in your GUI, and let the user decide when
    he/she has waited enough.


C) Initialization is key in registration. Any hint
    that the user have about the correction needed to
    register the image should be provided to the program
    via the SetInitialParameters(). This becomes more
    of a user interaction issue, since you don't want
    Doctors typing the components of a Quaternion:
    You can do a simple user interaction in the GUI
    for getting a rapid estimation of the rigid part
    of the transform.  Just by requiring the user to
    click on four point on the images you can compute
    a firt estimation of the transformation.

    A good initialization will make unnecessary many
    of the fine tunning efforts that you are facing
    right now.


D) You can also be formal and setup a script for
    exploring the parameters space for you. Let it
    running for a couple of days and then use the
    best combinations found as default parameters
    for your registration (again, this should be
    done modality by modality).



That could be a paper for an Open Access Journal...
if there were one capable to publish source code    :-)



Regards,



    Luis


--------------------
valli gummadi wrote:

>  Hi All,
> 
>       Our objective is to develop a registration tool which would work on single / muliti modality images.
> We used 
> MattesMutualInformationImageToImageMetric
> LinearInterpolateImageFunction
> MultiResolutionImageRegistrationMethod
> RecursiveMultiResolutionPyramidImageFilter
> CenteredAffineTransform
> RegularStepGradientDescentOptimizer
> classes in achieving the above tasks.
>  
> We had to fine tune the parameters such as TranslateScale,StepLength,Iterations,Levels etc. for the  classes. The parameters had to be modified / fine tuned for each and every dataset. I worked with SPECT SPECT volumes, MR SPECT, and CT PET volumes. We could fine tune the parameters by trial and error method to improve the registration of these datasets. 
>  
> The problem is that if I need to fine tune these parameters for every dataset by trial and error method it is real tough. Instead We would like to know more about these parameters so that the fine tuning work becomes simpler for us.
> I would like to know the relation between images and the parameters. 
> For example, I know the rotation included in the moving image. If i know the parameter which is related with rotation then it will be easy for me to make the application to work for various datasets..
> 
> 
> 
> Thankig you,
> Regards,
> Srivalli.
>