[ITK] registration - memory concerns

Matias Montroull matimontg at gmail.com
Tue Nov 10 09:45:33 EST 2015


try this:
typedef  signed short  PixelType;


El mar., 10 de nov. de 2015 a la(s) 11:36 a. m., Luigi Riba <
ribaluigi at gmail.com> escribió:

> Dear Matt,
>
> I have tried following your suggestion but, unfortunately, it didn't work
> out.
>
> In particular:
>
>    1. I read a pair of uint16 images;
>    2. I cast them to float pixel type via the CastImageFilter;
>    3. I change the TInternalComputationValueType for the metric, the
>    optimizer, the transform and the registration doing something like:
>
> const unsigned int Dimension = 3;
>
> typedef float PixelType;
>
> typedef unsigned short IOPixelType;
>>
> typedef itk::Image<IOPixelType, Dimension> IOImageType;
>
> typedef itk::Image<PixelType, Dimension> ImageType;
>
> typedef itk::AffineTransform<float, Dimension > TransformType;
>
> typedef itk::RegularStepGradientDescentOptimizerv4<float> OptimizerType;
>
> typedef itk::MeanSquaresImageToImageMetricv4<ImageType,
>> ImageType,ImageType,float> MetricType;
>
> typedef itk::ImageRegistrationMethodv4<ImageType, ImageType,
>> TransformType> RegistrationType;
>
> typedef itk::ResampleImageFilter<IOImageType, IOImageType, float,float>
>> ResampleFilterType;
>
>
>
>
>
> I have put one memory probe before the registration procedure and one
> afterwards of it. In the "double" case and in the "float" case I've seen
> the same memory consumption.
>
> Am I missing something? Are there other things I should change in my code?
>
> Thanks again for the support,
> Luigi
>
>
>
> 2015-11-09 17:23 GMT+01:00 Matt McCormick <matt.mccormick at kitware.com>:
>
>> Hi Luigi,
>>
>> The type of optimizer should not have too large of an impact on memory
>> consumption.  Using a gradient-free optimizer may help slightly, but
>> try changing the pixel type of the input images or, if possible, the
>> parameter type of the transformation, from double to float.
>>
>> HTH,
>> Matt
>>
>> On Mon, Nov 9, 2015 at 10:24 AM, Luigi Riba <ribaluigi at gmail.com> wrote:
>> > Dear all,
>> >
>> > I am registering a couple of volumes with ITK 4 on windows 7 64 bit.
>> >
>> > I wrote a code based on the affine transformation, with the mean square
>> > error metric and the RegularStepGradientDescentOptimizerv4.
>> Unfortunately,
>> > the memory usage is pretty high.
>> >
>> > I have checked memory consumption with the itkMemoryProbe and, after
>> looking
>> > around on previous mailing list messages I have decided to try with a
>> > gradient free optimizer like the Nelder-Mead one.
>> >
>> > So I have rewrote the code using the AmoebaOptimizerV4 and I have
>> continued
>> > monitoring the memory consumption via MemoryProbe. Unfortunately, it
>> seems
>> > that nothing has changed. Is this working as expected? If this is the
>> case,
>> > do you have any suggestion to gave me in order to reduce the memory
>> > consumption of the code?
>> >
>> > Thanks in advance for the help.
>> >
>> > Best,
>> >
>> > Luigi
>> >
>> > _______________________________________________
>> > Community mailing list
>> > Community at itk.org
>> > http://public.kitware.com/mailman/listinfo/community
>> >
>>
> _______________________________________________
> Community mailing list
> Community at itk.org
> http://public.kitware.com/mailman/listinfo/community
>
-- 
Matias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20151110/8048c388/attachment-0001.html>


More information about the Community mailing list