[Insight-users] Curvature in ShapeDetectionLevelSetImageFilter

Nils Hanssen hanssen at caesar . de
Tue, 15 Jul 2003 14:40:07 +0200


This is a multi-part message in MIME format.

------=_NextPart_000_002F_01C34ADE.FD26A7F0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi Lydia,

I compiled the 030711 CVS-version and it's no more crashing when I set the
propagation-scaling to zero (like you said).

But I am still wondering that the curvature-driven evolution (shrinking) is
evolving very slowly, even if I set the curvature-scaling to 1000 and the
propagation-scaling to a very small value. Is this due to the missing/wrong
timestep-calculation like you said in the previous mail?


Regards,
Nils


> -----Original Message-----
> From: insight-users-admin at itk . org 
> [mailto:insight-users-admin at itk . org]On
> Behalf Of Lydia Ng
> Sent: Thursday, July 10, 2003 6:17 PM
> To: Luis Ibanez; Nils Hanssen
> Cc: Insight-users at public . kitware . com
> Subject: RE: [Insight-users] Curvature in
> ShapeDetectionLevelSetImageFilter
> 
> 
> Hi Nils and Luis,
> 
> There is issue in the current implementation of the level set 
> framework
> in that the curvature term is not taken into account when 
> computing the
> time step. Ideally, the time step should computed to maintain 
> numerical
> stability.
> 
> Thus, setting the curvature weight is high relative to the propagation
> term will cause problem most likely due to the time step being too
> large.
> 
> This is a known problem - computing the time step to meet the CFL
> criterion is not widely reported in the literature - a few of us is
> still trying to figure out what is the mathematically sound 
> thing to do
> here.
> 
> BTW - I have also fixed the problem of when the propagation weight is
> zero - it shouldn't crash now - but you will still get the numerical
> instability issue as above.
> 
> - Lydia
> 
> > -----Original Message-----
> > From: Luis Ibanez [mailto:luis . ibanez at kitware . com]
> > Sent: Thursday, July 10, 2003 6:58 AM
> > To: Nils Hanssen
> > Cc: Insight-users at public . kitware . com
> > Subject: Re: [Insight-users] Curvature in
> > ShapeDetectionLevelSetImageFilter
> > 
> > 
> > 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/ShapeDetectionLev
> elSetFilte
> r.
> > 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
> > >
> > 
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk . org
> http://www . itk . org/mailman/listinfo/insight-users
> 

------=_NextPart_000_002F_01C34ADE.FD26A7F0
Content-Type: application/ms-tnef;
	name="winmail.dat"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="winmail.dat"

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
MG1mEExh7kEzgIMg/nnCDfXgXeAgIDwhnjI1MV5j2hBH4doglv0+bABkOa0wZy3bsDNwIDAtQQ+m
QO1QixDCDTUzMTddi6BCU1AnrlJwbo7AKwA0OS0yMjgtOYA2NTYtMTk3CS5v22AxzjAgwg1fNhDQ
4HT0cDr8wHc2sJCgLGB/0MtEMMYQL3/AbF8inzf//zkPEV87P7u+NhE+Tz9fQAj/u9yO62JhJwBY
5PL+juyC7zd+gjZJRVUvhEJicG4v90NSgrBScC+EuzxvfU+5FP9AD00/QE91qEIPQx9Pv0VP/7ky
Rq9Hv0jPSr8Iz1kfWi/7a3BrCSBOH13fTl9cVk///1EPYE9TP2txVI9Vn1avW4//a7BrBmsGXr9r
X17/bsJgj39hn2LvU3pk/2YPZx9pen0BdbAAAAAeAEIQAQAAAEMAAAA8RUVGODczNkVEQTQ5NjI0
NzkyMDg5NjE0MDFENkEwMkM0QjhEQzlAc2Uya2V4Y2gwMS5pbnNpZ2h0ZnVsLmNvbT4AAAMACVkB
AAAACwAAgAggBgAAAAAAwAAAAAAAAEYAAAAAA4UAAAAAAAADAAKACCAGAAAAAADAAAAAAAAARgAA
AAAQhQAAAAAAAAMAB4AIIAYAAAAAAMAAAAAAAABGAAAAAFKFAAB9bgEAHgAJgAggBgAAAAAAwAAA
AAAAAEYAAAAAVIUAAAEAAAAEAAAAOS4wAAsAEYAIIAYAAAAAAMAAAAAAAABGAAAAAAaFAAAAAAAA
AwASgAggBgAAAAAAwAAAAAAAAEYAAAAAAYUAAAAAAAALABuACCAGAAAAAADAAAAAAAAARgAAAAAO
hQAAAAAAAAMAHIAIIAYAAAAAAMAAAAAAAABGAAAAABGFAAAAAAAAAwAegAggBgAAAAAAwAAAAAAA
AEYAAAAAGIUAAAAAAAACAfgPAQAAABAAAAC9EAtZK8XUEYcyAAECIqTJAgH6DwEAAAAQAAAAvRAL
WSvF1BGHMgABAiKkyQIB+w8BAAAAUAAAAAAAAAA4obsQBeUQGqG7CAArKlbCAABtc3BzdC5kbGwA
AAAAAE5JVEH5v7gBAKoAN9luAAAAXFxmczAwXGhhbnNzZW5cb3V0bG9vay5wc3QAAwD+DwUAAAAD
AA00/TcAAAIBfwABAAAAMQAAADAwMDAwMDAwQkQxMDBCNTkyQkM1RDQxMTg3MzIwMDAxMDIyMkE0
QzkwNEFEOTcwNAAAAAADAAYQOOmygQMABxCSHQAAAwAQEAAAAAADABEQAQAAAB4ACBABAAAAZQAA
AEhJTFlESUEsSUNPTVBJTEVEVEhFMDMwNzExQ1ZTLVZFUlNJT05BTkRJVFNOT01PUkVDUkFTSElO
R1dIRU5JU0VUVEhFUFJPUEFHQVRJT04tU0NBTElOR1RPWkVSTyhMSUtFWU8AAAAA0Bw=

------=_NextPart_000_002F_01C34ADE.FD26A7F0--