[ITK-users] Problem Using ScaleEstimator in V4 Registration

sepideh movaghati sepideh.movaghati at gmail.com
Mon Aug 29 12:23:37 EDT 2016


Hi Dženan,

Thanks for your response.
You are right. The functions I mentioned are setting the sampling strategy
of the scale estimator not the registration metric. In my tests I made sure
that I use a regular sampling for registration metric.
The problem I mentioned is causing a non-deterministic behavior when
changing the order of two completely unrelated registrations.

I reposted the same issue in insight-developer mailing and there I
explained this non-deterministic behavior in detail.

Thanks a lot,
Sepide


On Wed, Aug 24, 2016 at 2:45 PM, Dženan Zukić <dzenanz at gmail.com> wrote:

> Hi Sepide,
>
> if I remember correctly, registration framework is advertised as using
> random sampling. And the function you mention is not used for sampling the
> registration metric, but rather for parameter scale estimation. So even if
> random sampling usage for scale estimation is unintentional, I don't
> believe it is a major problem. Perhaps someone who participated in writing
> the registration framework can chime in?
>
> Regards,
> Dženan
>
> On Wed, Aug 24, 2016 at 1:52 PM, Sepide Movaghati <
> sepideh.movaghati at gmail.com> wrote:
>
>> Hi,
>>
>> I found a problem while I was using ScaleEstimator in v4 registration:
>>
>> In itkRegistrationParametersScaleEstimator class there are two functions
>> SetScaleSamplingStrategy and SetStepScaleSamplingStrategy. In both the
>> sampling strategy is chosen based on the Transformation type. For example
>> if the transformation is of type displacement field or BSpline, it uses all
>> of the samples. If transformation is any regular affine or rigid
>> transformation (child of class MatrixOffsetTransformBase) it performs
>> corner sampling. However, if the transformation is none of the known ones,
>> it uses Random Sampling.
>>
>> Here is the problem: in itkImageRegistrationMethodv4.hxx the Metric
>> transformation is set using ->SetMovingTransform() and it is always a
>> CompositeTransform! Therefore, ScaleEstimator cannot detect the
>> transformation type and it always fall into "else" which is using Random
>> Sampling! It does not matter if you do a multilevel registration or not.
>> The transformation is always of type CompositeTransform even if you do just
>> a one level rigid transform!
>>
>> I would appreciate if you let me know if I was correct about this issue
>> and whether we can consider this a bug and hope to get it fixed for the
>> upcoming versions.
>>
>> Thanks a lot for your consideration in advance,
>> Sepide
>> _____________________________________
>> 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://www.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://public.kitware.com/mailman/listinfo/insight-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20160829/80216213/attachment.html>


More information about the Insight-users mailing list