[Insight-users] A deformable registration/segmentation question

Andrew Ho andrewkennethho at gmail.com
Tue May 7 19:31:43 EDT 2013


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
> >> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20130507/e3c47d56/attachment.htm>


More information about the Insight-users mailing list