[Insight-users] Can you block some parameters from being optimized

Dan Mueller dan.muel at gmail.com
Thu Nov 20 08:55:25 EST 2008


Hi Uros,

> I just wonder, which one is correct: do I
> set the SetScaling() parameters to zero for the parameters I want to keep
> static, or to very high values?

For most optimizers (I'm not sure if this holds for all) the scaling
is applied by dividing the parameters: scaledParams = params[i]  /
scales[i]. So to make a particular parameter less important, increase
the scaling parameter.

> I am afraid that setting them very high
> means that they are still optimized but much slower which could considerably
> delay the registration.

Yes, I believe that even setting the scaling, the now non-contributing
parameters are still "optimized". To avoid this, you have to use a
transform which represents your registration problem for the correct
the number/type of parameters. Eg. TranslationTransform for 3
translation parameters, VersorTransform for 3 rotation parameters,
VersorRigid3DTransform for 3 translation and 3 rotation parameters,
etc.

HTH

Cheers, Dan

2008/11/20 Uros Krzic <crapie at email.si>:
> Hi Dan,
>
>   Thanks for your rapid reply. I just wonder, which one is correct: do I
> set the SetScaling() parameters to zero for the parameters I want to keep
> static, or to very high values? I am afraid that setting them very high
> means that they are still optimized but much slower which could considerably
> delay the registration.
>
> Thanks,
>    Uros
>
> -----Original Message-----
> From: Dan Mueller [mailto:dan.muel at gmail.com]
> Sent: Thursday, November 20, 2008 12:53 PM
> To: Urlek
> Cc: insight-users at itk.org
> Subject: Re: [Insight-users] Can you block some parameters from being
> optimized
>
> Hi,
>
>> Can SetScaling() be used for that in any way? E.g. by setting very large
>> values (or zero) to the elements I don't want optimized?
>
> This is exactly how to do it.
>
> Alternatively you may consider using the transforms successively --
> first translation, then rotation, then rigid, then affine, then
> deformable, etc. -- at each step getting closer to the desired
> outcome.
>
> HTH
>
> Cheers, Dan
>
> 2008/11/20 Urlek <crapie at email.si>:
>>
>> Hi,
>>   is it possible to stop some parameters in a set from being optimized by
>> the ITK's optimizers? For example, can you run an affine transformation
>> based registration and first optimize only the last three elements
>> (translation), then include the affine matrix diagonal (elements 1, 4 and
> 7
>> - scaling factors) and optimize the rest of the matrix only at the end? Or
>> do I really have to initialize 3 different transformations and
> sequentially
>> plug them into optimization process?
>>
>> Thanks!
>>
>>
>> PS: Can SetScaling() be used for that in any way? E.g. by setting very
> large
>> values (or zero) to the elements I don't want optimized?
>> --
>> View this message in context:
> http://www.nabble.com/Can-you-block-some-parameters-from-being-optimized-tp2
> 0348811p20348811.html
>> Sent from the ITK - Users mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> Insight-users mailing list
>> Insight-users at itk.org
>> http://www.itk.org/mailman/listinfo/insight-users
>>
>
>


More information about the Insight-users mailing list