[Insight-users] Versor3D Registration

Jaety Edwards jaety at cs.berkeley.edu
Thu Sep 21 20:47:56 EDT 2006


Hello All,
I am working with a registration process that uses the
VersorRigitd3DTransform, and the corresponding
VersorRigid3DTransformOptimizer. I think I am a little confused about
the way to scale the rotation vs. translation parameters and I'm
hoping the list can help. Summing up my question: I'd like to make
sure that the optimizer only takes relatively small steps (a few
degrees) along the rotational parameters, while taking similarly small
steps (a few units) on the translation axes. I'm having trouble
figuring out how to make it do this correctly.

As the help document explains, the rotation and scaling parameters
have very differently scaled domains, and it goes on to explain that
we can fix this by setting the scaling of the parameters. So, for
instance, say I want to set up a registration where  initially the
biggest rotation step I can take is about 1 degree, and the biggest
scaling translation is 1 unit. I  thought that to do this I could set
the initial step size to 1, set the translation scalings to 1, and set
the rotation scalings to 360/(2*pi), but that still took huge steps
along the rotation.

So next I looked into the optimizer step update code
(itkVersorRigid3DTransformOptimizer.cxx). Summing up what I found
there, the update for the rotation goes like

transformed_gradient = gradient / scaling;
axis = (first 3 entries of transformed_gradient)

and finally, the rotation about the axis is set as
step_length * ||axis|| / ||transformed_gradient||

Thinking about this though, it means that if the gradient (for
instance) points purely along one parameter axis, the update step
along that axis will be the step length, regardless of the scaling of
that axis. If that's right, I can't see how to set a step length that
is meaningful both for the rotations and the translations. I'm sure I
must be missing something though, so I'm hoping someone can help me
clear up my confusion.

Thanks a lot,
Jaety


More information about the Insight-users mailing list