[Insight-developers] Problems with affine MI registration
Bill Lorensen
wlorens1@nycap.rr.com
Thu, 21 Jun 2001 16:49:02 -0400
Actually, I'm starting to make progress. Chalk the problems up to a number of things...
1) Anytime you use new software and things don't work, you assume there is a bug in the software. I went down this road several times and to date have not found a bug in the itk software.
2) Originally I tried to register full resolution images. Thanks to Lydia's comments a few weeks ago, I now start with 32x32x32
volumes down from 256x256x256.
3) I started by using the Affine registration for a rigid body problem. Now I'm using the rigid transformation MI code.
4) The Rigid MI code uses quaternions. I assumed the state vector was:
angle axis position
turns out it is
axis angle position
5) The state vector reports the position in SCALED units.
I was expecting my translation to be something like 10,-15,5 and I was getting something close to .1,-.15 and .05.
I had set the TranslationScale to 100. So in fact I was getting reasonable numbers.
6) I have created a test volume that a resample with a know transformation and I'm attempting to recover that transformation.
But, I was not specifying a StartingPosition that was close to the answer. For example, if I applied a 10 degree rotation about the X axis, I was still using the default start which is a rotation about an axis of length zero.
To sum up, I'm getting closer to something I can use on a real problem.
Bill
At 11:11 AM 6/21/01 -0700, Lydia Ng wrote:
>Paul, Bill:
>
>How many iterations are you running?
>
>In our experiments we have found that translation converges
>quite quickly but a large number of iterations (10-20k) is
>required for the rotation and scaling to converge.
>
>A multi-resolution approach is needed to increase the
>translation capture range.
>We found that multi-resolution made little difference
>to the capture range for rotation but the downsampling of the
>images helps with robustness.
>
>Conservatively, I would say the capture range for rotation
>is about 5-10 degrees. Higher if the images are the same
>modality.
>
>As discussed at various times at the tcon,
>there are also several parameters that can be tweaked:
>
>- Parzen window width
>Setting it to approx 0.3 seems to work if you normalized
>the image intensity to mean of 0 and variance of 1
>
>- Scaling between translation and affine matrix/rotation parameters
>Values of order of 50-100 should work for 256x256 images.
>Since small changes in rotation/scaling can have a large effect
>we can only make small incremental changes at each iteration
>Hence the large number of iterations required.
>
>- Rotation/Scaling origin
>Where the origin is set makes a big difference to the convergence.
>Setting it to the center of mass or of the image should help.
>
>Currently this is achieved by setting the origin of the PhysicalImage.
>Alternatively, we could set this in the Transformation object?
>Comments?
>
>If none of the above helps, I could have a try if put your
>data on a web/ftp site somewhere.
>
>On the multiresolution front, most of the base
>classes for the multiresolution framework is in the
>repository. But there are still a couple of issues to sort
>out.
>
>Lydia
>
>
>
> > -----Original Message-----
> > From: insight-developers-admin@public.kitware.com
> > [mailto:insight-developers-admin@public.kitware.com]On Behalf Of
> > Lorensen, William E (CRD)
> > Sent: Thursday, June 21, 2001 4:56 AM
> > To: 'Paul Hughett'; insight-developers@public.kitware.com
> > Subject: RE: [Insight-developers] Problems with affine MI registration
> >
> >
> > I am also having some problems with the registration. I'm
> > using the Rigid/mi/gradient descent. I can
> > successfully register translated volumes, but cannot if they
> > require a rotation.
> >
> > Bill
> >
> > -----Original Message-----
> > From: Paul Hughett [mailto:hughett@mercur.uphs.upenn.edu]
> > Sent: Wednesday, June 20, 2001 3:44 PM
> > To: insight-developers@public.kitware.com
> > Subject: [Insight-developers] Problems with affine MI registration
> >
> >
> >
> > I'm gearing up to try the ITK image registration algorithms on real
> > data. I took the test program for affine/mutual information/gradient
> > descent registration from the repository and modified it to try some
> > variations in the actual transformation and optimization parameters.
> > Discovered that the algorithm seems to work reasonably well for
> > translations, as long as they aren't too large, but I can't get it to
> > work at all for either isotropic or anisotropic scaling; an expansion
> > of even a few percent causes the algorithm to fail. Neither
> > increasing the learning rate nor increasing the number of samples up
> > to 500 seems to help.
> >
> > Any suggestions?
> >
> > Paul Hughett
> >
> >
> > _______________________________________________
> > Insight-developers mailing list
> > Insight-developers@public.kitware.com
> > http://public.kitware.com/mailman/listinfo/insight-developers
> >
> > _______________________________________________
> > Insight-developers mailing list
> > Insight-developers@public.kitware.com
> > http://public.kitware.com/mailman/listinfo/insight-developers
>
>_______________________________________________
>Insight-developers mailing list
>Insight-developers@public.kitware.com
>http://public.kitware.com/mailman/listinfo/insight-developers