[Insight-users] mutual information registration

Luis Ibanez luis . ibanez at kitware . com
Mon, 10 Nov 2003 23:19:01 -0500


Hi John,

Averaging 500 iteration of the metric is an overkill.
You shouldn't be needing to do this.  Are you computing
this average for the same set of transform paramters ?

Are you doing this with the Viola-Wells MutualInformation
or with the Mattes MutualInformation metric ?

Have you plotted the values that you get from the metric ?

It is to expect that the Viola-Well metric will be quite
noisy, while the Mattes implementation will be smoother
(still noisy...).

The response to this noise level is to use an appropriate
optimizer and tune its parameters.

--

Note that the scaling parameters that you pass to the
optimizer are a critical piece of the registration process.
The scaling for the translation paramters  should be on
the order 1.0 / (image diagonal measured in millimeters).

If you want to get familiar with the CenteredRigid2DTransform
you can play with the examples in:

     Insight/Examples/Registration/ImageRegistration5.cxx
     Insight/Examples/Registration/ImageRegistration6.cxx
     Insight/Examples/Registration/ImageRegistration7.cxx
     Insight/Examples/Registration/ImageRegistration8.cxx

Note that a key piece for using this class, is to initialize
it with the CenteredTransformInitializer.

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

In your case, you want to use the initializer in "Moments"
mode. You will find details about this in the SoftwareGuide

   http://www . itk . org/ItkSoftwareGuide . pdf


Section 8.5.l, pdf-page 263, paper-page 289.



Please let us know if you have further questions.



Thanks




   Luis






-------------------
Dill, John wrote:
> I have made some progress on my registrations between a portfilm image and a
> drr.  Since the search algorithms weren't working well and didn't know how
> to adjust them, I instead sampled the transformation space (which is always
> small in all test cases available) and for each point in the [x tx, y tx,
> rotation] for a small range [-10 10] pixels for translation and [-5 5]
> degrees for rotation, and average the metric over 500 iterations.  From
> this, I selected the maximum average value of the metric, and I was able to
> get registrations within acceptable limits for the large majority of my test
> cases.
> 
> Of course using this method, the calculation times are too long (with my
> current algorithm iterations evaluating about 5000 different registration
> parameter vectors with 500 avg of mi metric each, amount to approx 3 hours,
> but I should be able reduce that time by using a multi-res sampling
> approach, maybe reducing the avg iterations), and am trying to go back to
> the search method.  Can someone list off what I can vary with respect to
> mutual information 2D rigid registration (variance, scale parameters,
> iterations, others)?  Right now I seem to be having problems with rotation
> going haywire and don't know how to make its value less volatile than
> translation.  Right now I am using CenteredRigid2DTransform.  Is there an
> example program available which allows you to vary all the parameters of a
> CenteredRigid2DTransform for testing different parameters?
> 
> Thanks for any advice.
> John
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk . org
> http://www . itk . org/mailman/listinfo/insight-users
>