[Insight-developers] The Insight Journal-New Submission

Luis Ibanez luis.ibanez at kitware.com
Tue Jul 17 12:10:33 EDT 2007


Marius, Stefan,

I agree with Stephen, it will be interesting to consider the Sampler
as an alternative way of providing the selection of points from the
fixed image.


A random thought:

    An image to image registration is equivalent to a PointSet to
    Image registration with a very dense point set. Note that the
    itkPointSet keeps the values of pixels.

    There is a moment when all the sampling strategies could be used
    as preprocessing for generating the "FixedPointSet", and we
    could convert the ImageToImage metrics into PointSetToImage
    metrics.

    That saves a bit of time in not having to convert indices to points
    in the Fixed image. In fact, if you look at the class:
    FixedImageSamplePoint class in the itkOptImageToImageMetric.h file,
    it is equivalent to what we could have stored in an itkPointSet.


---


Your sampler classes will be useful for many other applications
beside registration.

Have you considered submitting them as a paper to the Insight Journal ?



   Regards,


       Luis


-------------------------
Stephen R. Aylward wrote:
> Hi Marius and Stefan,
> 
> Thanks for the feedback!
> 
> The new image-to-image-metric class (in addition to optionally providing 
> a uniformly distributed, potentially masked, subsampling of the fixed 
> image for metric computation) also allows a user to pass-in a list of 
> fixed-image points to be used in computing the metric.  If we use the 
> same data structure for the point list as you use in your subsamplers - 
>  our classes should be partially compatible with what you've done.  The 
> question is, should we also allow your sampler class to be plugged-in. 
>  I think so - the user can then have the freedom to specify that 
> re-sampling should occur every N iterations, etc.
> 
> We (particularly Luis) are still working on the optimizations at a 
> furious pace.   Once the code settles a bit, we can give you cvs write 
> access to integrate your code.   I think your modification deserve to be 
> at the top level instead of in a derived class - it is a good idea!
> 
> The top-level metric code does check for when it is being used with 
> bsplines transforms and bspline interpolators and provides appropriate 
> general optimizations.  Also, the class has member variables that are 
> bools that specify if the transform or interpolator are the bsplines 
> versions - so derived classes can also perform related optimizations. 
> Great minds think alike :)
> 
> Sorry for not completing the paper yet - been traveling for three 
> weeks...family staying with me for the summer...my dog ate my laptop... 
> I should have the final paper uploaded today/tomorrow.
> 
> Stephen
> 
> 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()
>>
>> 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