[Insight-developers] [Insight-registration] vector transformation / reorientation

Tom Vercauteren tom.vercauteren at m4x.org
Mon Nov 22 03:41:30 EST 2010


Hi all,

As Brian just mentioned, there may be several ways of performing
re-orientation for a given type. PPD or FS being the most widely
encountered choices for diffusion tensors reorientation. Besides, what
can be of interest, especially for image registration, is the the
derivative of this reorientation strategy. It should indeed come into
the computation of the derivative of the objective function.

[Shameless add] For the specific case of FS in dimension 3, the
analytical derivative can be found in Thomas Yeo's paper (which I
co-authored):
http://people.csail.mit.edu/ythomas/publications/2009DTI-TMI.pdf

Hence, I believe that we need a generic approach where one can plug
its own reorientation strategy. In that view, I would prefer a 2bis
option where resampling and reorientation are done in one pass but
where the user can choose its reorientation strategy much like he can
now choose its interpolator.

The tricky part is how to handle the derivative of the reorientation
strategy in a generic manner in the registration framework and not
kill performance.

If we add a good linear algebra package (say eigen 3*), we could have
a no-op reorientation strategy that simply multiplies by identity
matrices but does not cost anything at run-time thanks to expression
templates.

My two cents,
Tom

*Sadly, several people in ITK would like not to rely on eigen 3
because of its license:
http://www.itk.org/mailman/private/insight-developers/2010-March/014318.html

On Sun, Nov 21, 2010 at 02:43, brian avants <stnava at gmail.com> wrote:
> Right.  The eigendecomposition approach is part of the "preservation of
> principal directions" algorithm used when reorienting diffusion tensors.
>  The idea is that, as long as your deformation is a diffeomorphism, you can
> estimate it, locally, as an affine transformation.   Then you use the rigid
> part of the affine transformation to reorient the tensor's eigenvectors.
>  There are a few other steps, though.
>
> My question, in part, is whether ITK's pixel types are specific enough to
> uniquely specify the required reorientation.   Some examples:
>
> A diffusion tensor may be reoriented by either PPD (above) or finite strain
> estimates.   So this is a non-unique mapping from pixel type to
> reorientation strategy.
>
> When reorienting a vector, one may want to change its relative orientation
> but not change its length, even under an affine transformation.  Also a
> non-unique mapping from pixel type to reorientation strategy.
>
> One approach (what we've done in the past) is to implement filters for each
> of these strategies for DTI.  While having filters would be nice, I can see
> this becoming confusing, in particular if some metrics/interpolators are
> performing reorientation as well.
>
> Matt, I look forward to seeing the strain filter.  Thans much!
> Re: Tcon , when would you like to discuss?  Previously, we used 10 am
> Tuesday for registration discussions.
> Brian
> On Nov 20, 2010 4:36 PM, "Luis Ibanez" <luis.ibanez at kitware.com> wrote:
>> On Sat, Nov 20, 2010 at 7:14 PM, Matthew McCormick (thewtex) <
>> matt at mmmccormick.com> wrote:
>>
>>> On Sat, Nov 20, 2010 at 6:07 PM, Luis Ibanez <luis.ibanez at kitware.com>
>>> wrote:
>>> >
>>> >
>>> > On Sat, Nov 20, 2010 at 7:00 PM, Matthew McCormick (thewtex)
>>> > <matt at mmmccormick.com> wrote:
>>> >>
>>> >> >
>>> >> > (b) Estimating the Rotational and Stress component of the
>>> >> > deformation field at that pixel location and use it to correct
>>> >> > the Vector (or covariant vector) accordingly. This is
>>> >> > essentially based on the Jacobian matrix of the deformation
>>> >> > field, estimated at the location of the pixel.
>>> >> >
>>> >>
>>> >> I have a StrainImageFilter that calculates the strain tensor from a
>>> >> deformation field if it would be of any help. I assume what is meant
>>> >> by the 'Rotational and Stress component' are the same as the angles to
>>> >> the principle strains and the principle strains. I intend on
>>> >> submitting this filter to the Insight Journal in the next week or two
>>> >> after I get another paper out and the following patch gets merged:
>>> >>
>>> >>
>>> >>
>>>
>>> http://review.source.kitware.com/#q,status:open+project:ITK+branch:master+topic:BUG0010725_VTKTensors3,n,z
>>> >>
>>> >> Matt
>>> >
>>> >
>>> > Excellent !
>>> >
>>> > Yes,
>>> > that what I meant by the stress component.
>>> >
>>> > Do you see a way of deriving as well
>>> > the rotational component of the Jacobian ?
>>> >
>>>
>>> I was thinking just using
>>>
>>>
>>> http://www.itk.org/Doxygen320/html/classitk_1_1SymmetricEigenAnalysis.html#_details
>>>
>>> And the eigenvectors determine the rotation, while the eigenvalues
>>> (principle strains) determine the compression/expansion of the
>>> components? Correct?
>>>
>>> Matt
>>>
>>
>>
>> Yes,
>> That sound very reasonable to me.
>>
>>
>> Luis
>
> _______________________________________________
> Insight-registration mailing list
> Insight-registration at public.kitware.com
> http://public.kitware.com/cgi-bin/mailman/listinfo/insight-registration
>
>


More information about the Insight-developers mailing list