[ITK] [ITK-dev] ImageRegistrationMethod tests and command call backs.

Nicholas Tustison ntustison at gmail.com
Fri Jun 6 16:07:15 EDT 2014


Hey Brad,

In the v4 framework, the use of the “InitializationEvent” is to indicate 
the start of a new multiresolution level.  The “IterationEvent” is 
invoked in the optimizers.  I think the MultiResolutionIterationEvent
is a good idea and so I’ll take a look at your patch as soon as I can.

Nick


On Jun 6, 2014, at 8:38 AM, Bradley Lowekamp <blowekamp at mail.nih.gov> wrote:

> Nick,
> 
> It appears the v3 Registration methods used and "IterationEvent" while the v4 is using an "InitializationEvent". To get the test working with the call back I am tempted to change the to the prior "IterationEvent" that is used else where. Additionally, I was thinking to create a new event derived from the "IterationEvent" called "MultiResolutionIterationEvent" to further clarify things. Unfortunately, programs like ANTs would need to change to the "IterationEvent" or derived "MultiResolutionIterationEvent". Since the tests aren't working the way the look like they are suppose to I think this could be considered a "BUG".
> 
> Related to information available in callbacks/observers, the ImageRegistrationMethodv4 has the following accessors "CurrentMetricValue", "IsConverged", "CurrentConvergenceValue", which are 0 for the base Method but used for the SyN methods. What is the intention here? In SimpleITK I have to jump through a couple hoops to propagate this information from the Optimizer to the Method interface. This could be done in ITK, by adding call backs from the optimizer's iteration event to the update these attributes in the method. The other addition in SimpleITK I did was when a observer for an "IterationEvent" was added to the Method is actually added to the itk optimizer. This could also be added to ITK, by having the Method repeat the optimizer's iteration event.
> 
> Thanks for your thoughts when you have a moment,
> Brad
> 
> 
> On May 29, 2014, at 12:59 PM, Nicholas Tustison <ntustison at gmail.com> wrote:
> 
>> It might be a situation where I simply copied over code from another 
>> example not realizing that it wasn’t needed.
>> 
>> Nick
>> 
>> 
>> On May 29, 2014, at 12:10 PM, Bradley Lowekamp <blowekamp at mail.nih.gov> wrote:
>> 
>>> Hello,
>>> 
>>> I am looking at some of the ImageRegistrationMethodv4 tests. I noticed they have Command observers added to the method for the iteration even:
>>> 
>>> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Registration/RegistrationMethodsv4/test/itkSimpleImageRegistrationTest.cxx#L31
>>> https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Registration/RegistrationMethodsv4/test/itkSimpleImageRegistrationTest.cxx#L197
>>> 
>>> But the method doesn't emit iteration events so there is no output:
>>> 
>>> http://open.cdash.org/testDetails.php?test=228724433&build=3347968
>>> 
>>> I know I saw some test/example which had a nice observer, but I don't recall which ones...
>>> 
>>> What's the intension here? How should this be fixed?
>>> 
>>> Thanks,
>>> Brad
>> 
> 

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers



More information about the Community mailing list