[Insight-users] A deformable registration/segmentation question

Matt McCormick matt.mccormick at kitware.com
Tue May 7 21:21:47 EDT 2013


Hi Andrew,

That is a good strategy, and I'm glad to hear that it is working for you.

14 GB's is certainly a lot, but the images are large, too.  There is
effort from developers at the University of Iowa to make registrations
work more completely with the "float" data type in addition to
"double", which will help with memory usage, but it is not available
yet.

Thanks,
Matt


On Tue, May 7, 2013 at 11:31 PM, Andrew Ho <andrewkennethho at gmail.com> wrote:
> Hey Matt, that's a handy way to find sample code, thanks very much.
>
> I modified itkTimeVaryingBSplineVelocityFieldImageRegistrationTest very
> slightly to be able to run it outside the ITK testing framework (just
> renaming the function
> "itkTimeVaryingBSplineVelocityFieldImageRegistrationTest" to "main" was
> sufficient). I'm having it register two 3D images and it's currently taking
> over 14 GB's of memory! (though thankfully it is continuing to run without
> anything horrible happening). Is this normal? I am using all the default
> parameters:
> learningRate: 0.5
> iterations per level: 10, 20, 11
>
> Each image is quite large, 320x320x160 array of short ints. I guess as long
> as it finishes, I can't really complain. Still though, it doesn't seem
> normal to be using so much memory. Perhaps I've done something horribly
> wrong?
>
> Thanks,
> andrew
>
>
> On Tue, May 7, 2013 at 7:48 AM, Matt McCormick <matt.mccormick at kitware.com>
> wrote:
>>
>> Hi Andrew (CC'ing the mailing list -- please remember to reply-to-all),
>>
>> The tests for the class are also a useful reference.  To see the tests,
>>
>> ctest -R TimeVarying -N
>>
>> which yields:
>>
>>
>>   Test #478: itkTimeVaryingVelocityFieldTransformTest
>>   Test #479: itkTimeVaryingVelocityFieldIntegrationImageFilterTest
>>   Test #480: itkTimeVaryingBSplineVelocityFieldTransformTest
>>   Test #1782: itkTimeVaryingVelocityFieldImageRegistrationTest
>>   Test #1783: itkTimeVaryingBSplineVelocityFieldImageRegistrationTest
>>
>> The code for the tests can be found in
>> Modules/Registration/RegistrationMethodsv4/test/
>>
>> HTH,
>> Matt
>>
>> On Mon, May 6, 2013 at 7:56 PM, Andrew Ho <andrewkennethho at gmail.com>
>> wrote:
>> > Hey Matt,
>> > Thanks for the pointer, it sounds like this might be just what I need.
>> > Is
>> > there any documentation, examples, or papers for this method (or class
>> > of
>> > methods) beyond the doxygen generated ones?
>> >
>> > Also, are there any limitations on the metric and optimizer which can be
>> > used with this method? Sorry if these are dumb questions, I'm really new
>> > to
>> > ITK and image registration in general.
>> >
>> > Thanks,
>> > andrew
>> >
>> >
>> > On Mon, May 6, 2013 at 10:28 AM, Matt McCormick
>> > <matt.mccormick at kitware.com>
>> > wrote:
>> >>
>> >> Hi Andrew,
>> >>
>> >> You may find this class useful:
>> >>
>> >>
>> >>
>> >> http://www.itk.org/Doxygen/html/classitk_1_1TimeVaryingVelocityFieldImageRegistrationMethodv4.html
>> >>
>> >> HTH,
>> >> Matt
>> >>
>> >> On Fri, Apr 26, 2013 at 7:29 PM, Andrew Ho <andrewkennethho at gmail.com>
>> >> wrote:
>> >> > Hi there,
>> >> > I'm wondering if there is a suitable set of tools in ITK for my
>> >> > purpose:
>> >> >
>> >> > I have high-resolution 4D CT data of the human upper airway during
>> >> > swallowing. I'd like segment the upper airway and use it as the
>> >> > moving
>> >> > boundaries in a physics simulation. The dataset is large, but it's
>> >> > not
>> >> > too
>> >> > much to ask to manually segment it (frame by frame). The problem is
>> >> > that
>> >> > some interpolation is required in time. For this, it seems like a
>> >> > good
>> >> > approach would be to register sequential time frames and use the
>> >> > resulting
>> >> > deformation field to move a mesh. Then interpolation can be performed
>> >> > on
>> >> > the
>> >> > deformation field in order to advance the airway structure in time.
>> >> >
>> >> > There are a few approaches that I am considering, some of which I
>> >> > gleaned
>> >> > from searching the mailing list:
>> >> >
>> >> > 1) Perform 3D deformable registration between time frames (using the
>> >> > raw
>> >> > image data) and acquire deformation fields. Use the deformation field
>> >> > to
>> >> > move a mesh which is segmented from the first time frame. -- The
>> >> > problem
>> >> > here is that the registration problem is difficult because of the
>> >> > rapidly
>> >> > moving bolus (the fluid being swallowed). There is also poor contrast
>> >> > between some structures as they close the airway during the sequence.
>> >> >
>> >> > 2) Perform 3D manual segmentation on two sequential frames. Generate
>> >> > meshes
>> >> > from the segmented surfaces and register these two meshes. Use the
>> >> > resulting
>> >> > deformation field to move one mesh to the next time frame. -- The
>> >> > problem
>> >> > here (not really a problem) is that I don't know if a mesh to mesh
>> >> > registration (such as ICP) can be used to generate a deformable
>> >> > field.
>> >> >
>> >> > 3) Perform manual segmentation of the airway in frame 1 and use it as
>> >> > input
>> >> > to a simplex registration method on frame 2 (suggested here, way back
>> >> > in
>> >> > 2004:
>> >> > http://www.itk.org/pipermail/insight-users/2004-November/011080.html)
>> >> > -- The problem here is that I'm not sure if the segmentation will be
>> >> > able to
>> >> > handle the low-contrast areas when closure occurs. Another problem
>> >> > (again,
>> >> > not really a problem) is that the files seem to have changed and I'm
>> >> > not
>> >> > sure if the listed examples are still relevant
>> >> >
>> >> > Any suggestions and insight (sorry for that) would be much
>> >> > appreciated!
>> >> >
>> >> > Thanks,
>> >> > andrew
>> >> >
>> >> > _____________________________________
>> >> > 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://www.itk.org/mailman/listinfo/insight-users
>> >> >
>> >
>> >
>
>


More information about the Insight-users mailing list