[ITK Community] [Insight-users] Efficient distance to a sparse level set in ITK v4

Danielle Pace dfpace at MIT.EDU
Mon Feb 17 12:26:32 EST 2014


Thanks Arnaud!  I would like to use real-valued distances, and the
distance constraint could be quite loose in my case (e.g. 10-20
voxels).  Based on your suggestions, for now I will use the sparse
representation /w few layers and compute distance maps on each
iteration.

BTW, the neuroinformatics paper was very helpful for me to understand
the transition from v3 -> v4 - it's a very nice paper!

Best,

Danielle




On Mon, Feb 17, 2014 at 2:47 AM, Arnaud Gelas <arnaudgelas at gmail.com> wrote:
> Hi Danielle,
>
> it sounds like really interesting problem!
>
> You're right: as it is now, it is not possible to set the number of layers
> in sparse representations in v4.
>
> ---
>
> For Malcolm's representation the number of layers if fixed to 1 representing
> the zero level set (value equal to 0), and 2 values {-1;+1} to represent
> inner and outer parts.
> For Shi's representation the number of layers if fixed to 2 {-1;+1}, and 2
> values {-3;+3} to represent inner and outer parts.
>
> By principle, these 2 representations are optimized to use only these little
> number of layers. You should also note that since the level set values are
> discrete, even if you could add extract layers you would not get a real
> distance in between your 2 objects.
>
> For the Whitaker's representation, in principle you could add more layers;
> but in the implementation we constrain it to the minimum set.
>
> ---
>
> To answer your question, I think it really depends on (1) your constrain on
> the distance you want to apply, on (2) the shape of the object you want to
> segment and (3) your initialization.
>
> (1) If the distance is rather small, you could add some extra layers (I
> would highly recommend not to add too many layers, e.g 1 or 2 extra layers
> on each side). Whitaker's representation could be extended or another sparse
> representation could be implemented to be able to set the number of layers,
> but it would depends if you want real value for the level set or if you are
> ok with discrete (?). I think such a contribution would be a great addition
> to the toolkit; and we could give you some guidance for that ;)!!
> else if it is too large, you would loose the main interest of sparsity for
> level-set; and in such a case I would rather go for a sparse representation
> with few layers (Malcolm or Shi), then compute a distance map from the zero
> set.
>
> (2) (3) If you can provide some bounds on the position and shape of the
> objects, you could fix and restrain domains on which the level sets would
> evolve, and thus here you could directly use a dense representation, or use
> (1). Your initialisation needs to be in this domain...
>
> You can get some additional details in the neuroinformatics paper on v4
> level set:
>
> http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3872740/
>
> Best
>
> HTH,
> Arnaud
>
> On Feb 15, 2014, at 12:03 AM, Danielle Pace <dfpace at MIT.EDU> wrote:
>
> Hi all,
>
> Is there an efficient way to compute the distance from a point to a
> sparse level set (Whitaker/Shi/Malcolm), where that point lies outside
> the sparse layers?
>
> More details:
>
> I am working on a coupled level sets implementation, where there are
> two level sets and a distance constraint between them.  I would like
> to do this in v4 so that I can take advantage of the better setup for
> multiple level sets, and ideally keep a sparse representation for
> efficiency.
>
> I need to create a new equation term that incorporates the distance,
> so that the speed function = 0 when the distance between the level
> sets is outside [minDistance, maxDistance].  Practically, this means
> that the level sets should never be much more than maxDistance apart
> at any time in the evolution.
>
> In ITK v3 I could do this efficiently by increasing the number of
> layers in the SparseFieldLevelSetImageFilter to correspond to
> maxDistance.  Then I would always be able to grab the distance from
> one level set to the other, without losing the sparse representation.
> But, the option to change the number of layers doesn't seem to exist
> in v4.
>
> Any suggestions, or should I cave and use the dense representation?
>
> One idea would be, on each iteration, to get a label map
> representation of the (sparse) level set and then run the Maurer
> distance map filter.  Perhaps this would still be more efficient than
> using the dense level set representation, because the level set
> evolution part would still be computed on a small fraction of the
> pixels?  (I don't think this would be more overhead compared to the
> dense representation, since the Maurer distance map filter runs on
> every iteration anyways in
> itkLevelSetEvolution::ReinitializeToSignedDistance).
>
> Thanks,
>
> Danielle
> _____________________________________
> 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
>
>
_____________________________________
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 Community mailing list