[Insight-users] Curvature in ShapeDetectionLevelSetImageFilter

Luis Ibanez luis . ibanez at kitware . com
Thu, 10 Jul 2003 09:58:10 -0400


This is a multi-part message in MIME format.
--------------000605020500000407020604
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit


Hi Nils,

I just performed a couple of tests, and the
ShapeDetectionLSIF is behaving as expected.
(Note that I did this with the current CVS
  version, not ITK 1.2).

A couple of sample images that help to test
your case were checked in under:

  - Insight/Examples/Data/Circle.png
  - Insight/Examples/Data/CircleSpikes.png

http://www . itk . org/cgi-bin/cvsweb . cgi/Insight/Examples/Data/Circle . png?cvsroot=Insight
http://www . itk . org/cgi-bin/cvsweb . cgi/Insight/Examples/Data/CircleSpikes . png?cvsroot=Insight

CircleSpikes.png simulates the conditions of your
tube but in 2D.

The example ShapeDetectionLevelSetImageFilter
was also slightly modified in order to take the
scaling parameter from the command line arguments.

http://www . itk . org/cgi-bin/cvsweb . cgi/Insight/Examples/Segmentation/ShapeDetectionLevelSetFilter . cxx?cvsroot=Insight&sortby=date

Running this example with the parameters below
succeded to segment the internal circle without
taking the spikes (bridges).  Note that although
the segmentation doesn't goes into the spikes, they
excert some influence on the shape of the final
contour.

Here are the parameters:

ShapeDetectionLevelSetFilter

   input image:        CirclesSpikes.png
   output image:       SegmentedCircle.png
   seed point:         50 50
   distance:           20
   sigma:              1.0
   sigmoid alpha:      -40
   sigmoid beta:       128
   curvatureScaling:   3.1
   propagationScaling: 0.97

The overlay of the segmented circle, on top
of the CircleSpikes.png image is shown in
the attachement.

---

The balance between the curvatureScaling and the
propagationScaling parameters is quite delicate.

For example:

keeping curvature scaling = 3.1
propagation scaling = 0.98  will overflow the whole image
while prop. scaling = 0.96  will grow just to half the circle

OR

keeping propagation scaling = 0.97
curvature scaling = 3.0 will overflow the image
curvature scaling = 3.2 will fall short on reaching the edges



My guess is that it may be possible to find a
continuous function F():

    curvatureScaling = F( propagationScaling )

for which the segmentation grabs on the circle edges,
but at some threshold of "PropagationScaling" the
computation will start presenting numerical
instabilities.




Regards,



    Luis



---------------------
Nils Hanssen wrote:
> Hi Luis,
> 
> thank you for the detailed answer.
> 
> 
> My initial level set conforms to the "negative inside" convention.
> Now, I am using a curvature weighting of 1000 (just to see what happens in
> the extreme case) and a propagation weighting of 0.001. When running the
> ShapeDetectionLSIF, the contour is not collapsing at all. Maybe that's
> because of the feature image that dictates the curvature speed (==
> propagation speed in the ShapeDetectionLSIF)?
> 
> Since the curvature speed in the ShapeDetectionLSF equals the propagation
> speed, I derived my own classes called "TubularLevelSetFunction" and
> "TubularLevelSetImageFilter". These are basically clones of the
> ShapeDetection* classes, but with the difference that I set the curvature
> speed to (constant) one in the Level-set function.
> Now, the contour is collapsing according to the mean curvature but all this
> happens _very_ slowly (the curvature weighting is 1000!).
> 
> In itk::LevelSetFunction::ComputeUpdate(...) I see the following:
> ---
>   curvature_term = curve;
>   curvature_term *= m_CurvatureWeight * this->CurvatureSpeed(it, offset);
> ---
> so it should make no difference when I set the curvature weight to 1 and the
> curvature speed to (constant) 1000 (and not vice versa), right? But when I
> do this, I get numerical instabilities during the evolution. What is wrong
> with my assumption?
> 
> Luis, what was the curvature weighting and curvature speed when you tested
> the collapsing contour with the syntethic sphere image? Was the curvature
> speed constant or dependent on the image?
> 
> For now, I do all calculations in 2D. Could that be a problem? I have
> installed a observer that shows me the progress of the contour after each
> update event.
> 
> 
> Regards,
> Nils
> 
> 
> 
>>-----Original Message-----
>>From: Luis Ibanez [mailto:luis . ibanez at kitware . com]
>>Sent: Wednesday, July 09, 2003 6:14 PM
>>To: Nils Hanssen
>>Cc: Insight-users at public . kitware . com
>>Subject: Re: [Insight-users] Crash in
>>ShapeDetectionLevelSetImageFilter
>>
>>
>>
>>Hi Nils,
>>
>>You are right in your interpretation of the
>>behavior for the ShapeDetectionLevelSetFilter.
>>
>>Increasing the curvature scaling while decreasing
>>the propagation scaling should make the contour
>>collapse (contract).
>>
>>I just verified this behavior using a syntethic
>>image of a sphere.
>>
>>Note that in version 1.2 this filter is expecting
>>the input level set to conform to the convention
>>of "negative inside" which means that the level
>>set has negative values 'inside' the contour and
>>positive values outside the contour.
>>
>>You may have to push the curvature scaling to
>>a value higher than 1.0. (e.g. 5.0 or so).
>>
>>I would avoid to use 0.0 for the propagation
>>scaling ( in part just for superstition  against
>>zeros values as parameters). You may want to
>>try something like 0.1 for the propagation
>>scaling.
>>
>>Please verify the convention used by your initial
>>level set. That may be the cause for the contour
>>not behaving as expected.
>>
>>
>>Regards,
>>
>>
>>    Luis
>>
>>
>>
>>---------------------
>>Nils Hanssen wrote:
>>
>>>Hi Luis,
>>>
>>>I am using the 1.2.0 web release.
>>>
>>>Regards,
>>>Nils
>>>
>>>
>>>
>>>>-----Original Message-----
>>>>From: insight-users-admin at itk . org
>>>>[mailto:insight-users-admin at itk . org]On
>>>>Behalf Of Luis Ibanez
>>>>Sent: Tuesday, July 08, 2003 3:55 PM
>>>>To: Nils Hanssen
>>>>Cc: Insight-users at public . kitware . com
>>>>Subject: Re: [Insight-users] Crash in
>>>>ShapeDetectionLevelSetImageFilter
>>>>
>>>>
>>>>
>>>>Hi Nils,
>>>>
>>>>Are you using a very recent checkout of ITK  ?
>>>>
>>>>The level set filters have been reworked in
>>>>recent days, so it will help us to know if you
>>>>are experiencing this behavior with the current
>>>>version or with the version as it was two weeks
>>>>ago (or before that).
>>>>
>>>>Please let us know,
>>>>
>>>>   Thanks
>>>>
>>>>
>>>>     Luis
>>>>
>>>>
>>>>------------------------
>>>>Nils Hanssen wrote:
>>>>
>>>>
>>>>>Hi,
>>>>>
>>>>>I am trying to understand the behaviour of the ShapeDetectionLSIF.
>>>>>Therefore, I set the propagation-weighting to zero. By setting the
>>>>>curvature-weighting to a value of one I would expect that
>>>>
>>>>the inital
>>>>
>>>>
>>>>>surface is shrinking to a point (I set the MaxRMSError to
>>>>
>>>>zero) and the
>>>>
>>>>
>>>>>number of iterations very high.
>>>>>
>>>>>The filter is crashing in
>>>>>SegmentationLevelSetFunction<TImageType, TFeatureImageType>
>>>>>::PropagationSpeed(const NeighborhoodType &neighborhood, const
>>>>>FloatOffsetType &offset) const
>>>>>[...]
>>>>>-->  else return (
>>>>
>>>>static_cast<ScalarValueType>(m_SpeedImage->GetPixel(idx)) );
>>>>// crashing here
>>>>
>>>>
>>>>>[...]
>>>>>
>>>>>When I set the propagation-weighting to - for instance -
>>>>
>>0.0001 the
>>
>>>>>filter is not crashing, but the contour is not shrinking
>>>>
>>>>according to
>>>>
>>>>
>>>>>the mean curvature.
>>>>>
>>>>>Is that the correct behaviour of the filter?
>>>>>
>>>>>I would appreciate any suggestions. Thanks!
>>>>>
>>>>>
>>>>>Regards,
>>>>>Nils
>>>>>
>>>>>
>>>>>-------------------------
>>>>>Nils Hanssen
>>>>>Surgical Systems Laboratory
>>>>>research center c ae sa r
>>>>>Ludwig-Erhard-Allee 2
>>>>>53175 Bonn
>>>>>fon: +49-228-9656-197
>>>>>fax: +49-228-9656-117
>>>>>___http://www . caesar . de/ssl_
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>_______________________________________________
>>>>Insight-users mailing list
>>>>Insight-users at itk . org
>>>>http://www . itk . org/mailman/listinfo/insight-users
>>>>
>>>
>>>_______________________________________________
>>>Insight-users mailing list
>>>Insight-users at itk . org
>>>http://www . itk . org/mailman/listinfo/insight-users
>>>
>>
>>
>>
>>
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk . org
> http://www . itk . org/mailman/listinfo/insight-users
> 



--------------000605020500000407020604
Content-Type: image/png;
 name="CircleSpikesSegmented.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="CircleSpikesSegmented.png"

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
--------------000605020500000407020604--