[Insight-developers] The Insight Journal-New Submission

Mathieu De Craene decraene at tele.ucl.ac.be
Tue Jul 17 13:21:49 EDT 2007


On Tue, 2007-07-17 at 12:55 +0200, Marius Staring wrote:
> Hi all,
> 
> The refactoring of the registration framework is a very nice initiative.
> 
> We have a few remarks/suggestions:
> 
> 1. From the powerpoint presentation in the Insight journal we noticed 
> that the new OptImageToImageMetric now includes the functionality to 
> sample the fixed image, like the MattesMutualInformation used to do 
> already. We have implemented something similar. You may be interested to 
> inspect our implementation. We have tried to seperate the sampling 
> functionality from the ImageToImageMetric, by designing a set of filters 
> that accept an image as input and return a vector containing the samples 
> as output (in a so-called itk::VectorDataContainer). For this purpose we 
> wrote a base class, the itk::ImageSamplerBase, from which different 
> image samplers can inherit. We have implemented several of them: the 
> itk::ImageFullSampler (takes all voxels within mask), the 
> itk::ImageRandomSampler (which does the same as the 
> MattesMutualInformation class does), and some others. The ImageSampler 
> is just another component to be set in the metric, just like the 
> Interpolator, Transform, etc.
> 
> The code (metricwithsampler.zip) can be found at 
> www.isi.uu.nl/People/Stefan. The AdvancedImageToImageMetric inherits 
> from the ImageToImageMetric and supports setting an ImageSampler. Don't 
> mind the somewhat ambitious name, by the way :)
> The relevant methods are:
> - SetImageSampler() and GetImageSampler()
> - SetUseImageSampler() and GetUseImageSampler()
> - InitializeImageSampler()
> The provided code won't compile as is, since it contains some references 
> to other code that we use, see www.isi.uu.nl/Elastix.
> 
> 2. The same class includes also some functions that benefit from 
> transforms that have sparse Jacobians (compact suppport), such as the 
> B-spline transform. The code does essentially the same as the code in 
> the MattesMutualInformation, but can be re-used by all inheriting 
> metrics. The relevant functions for this are:
> - CheckForBSplineTransform()
> - TransformPoint()
> - EvaluateTransformJacobian()
> 



I strongly vote for the creation of *Local Transformations* in ITK that
support a sparse jacobian representation. It is not sufficient to
optimize the metrics for BSpline transforms... We need to support any
type of local transformations. When computing the metric derivatives,
only taking into account the non-zero columns of the Jacobian can save a
lot of time. It is only done in Mattes but I am not sure all metrics are
taking implementing this.


The refactoring of the registration framework looks great ! It would be
cool to have multi-threading in all the metrics !


Thanks a lot for this effort,


Math


> If you are interested, feel free to adopt (parts of) the code. If you 
> have any questions, don't hesitate to contact us.
> 
> Stefan and Marius
> 
> 
> Insight Journal wrote:
> > Hello,
> > A new submission has been added to the Insight Journal.
> >
> > Title: Optimizing ITK’s Registration Methods for Multi-processor, Shared-Memory Systems
> > Author(s): Aylward, Stephen; Jomier, Julien; Barre, Sebastien; Davis, Brad; Ibanez, Luis
> > Abstract: 
> > This document describes work-in-progress for refactoring ITK’s registration methods to exploit the parallel, computation power of multi-processor, shared-memory systems.  Refactoring includes making the methods multi-threaded as well as optimizing the algorithms.  API backward compatibility is being maintained.  Helper classes that solve common registration tasks are also being developed.
> >
> >
> > The refactoring has reduced computation times by factors of 2 to 200 for metrics, interpolators, and transforms computed on multi-processor systems.  Extensive sets of tests are being developed to further test operation and backward compatibility.
> >
> > Download the paper at: http://hdl.handle.net/1926/566
> > Review the paper at: http://insight-journal.org
> >
> > Generated by the Insight Journal Manager
> >
> > You are receiving this email because you asked to be informed by the Insight Journal for new submissions.
> > To change your email preference go to http://insight-journal.org.
> >
> > _______________________________________________
> > Insight-developers mailing list
> > Insight-developers at itk.org
> > http://www.itk.org/mailman/listinfo/insight-developers
> >
> >   
> 



More information about the Insight-developers mailing list