[Insight-users] Quick overview of level set methods

Zachary Pincus zpincus at stanford.edu
Wed Oct 19 17:41:56 EDT 2005


> How i can get more details about the parameters of the geodesic  
> filter,
> because the manual for me is a little confuse, like the RMS error
> iterations, propagation, etc.

I found that digging into the original literature (well-cited in the  
ITK manual and documentation) and looking over the code myself was  
what I finally needed to do to truly understand what was going on. I  
believe the "Insight into Images" book (linked from the ITK site)  
would be a good introduction too.

This of course is a big time investment, so I don't necessarily  
recommend doing it unless you plan to spend a lot of time using level  
set methods in the future. If you have a specific question about some  
specific parameters, the ITK list is a reasonable place to ask.

Let me give a general overview of level set methods (as I see them!)  
that may help put this all into perspective:
Level set methods mathematically manipulate a function (a distance  
map) that implicitly traces the outline of a surface (the zero-level  
set of the distance map). The methods in ITK manipulate the function  
according to a partial differential equation, which typically has  
several components:
(1) A propagation component. A propagation image is used to decide  
whether, and at what rate, the level set surface should grow or  
shrink. Usually, the propagation image is calculated from the edge  
potential image, so that the level set edge grows fast where there  
are few edges, and slowly in edge regions. Often this can be  
augmented (as in the ThresholdLevelSets method) to make the  
propagation image negative in regions where the object is known to  
not be. This makes the edge shrink away from those regions.

(2) An edge advection component. The geodesic level sets algorithms  
introduced methods to make the level set "adhere" to image edges.  
This is based on the derivative of the edge potential map, and is  
very clever. Read Castelles et al. (the original paper) if you want  
more information.

(3) A geometric curvature component. This ensures that the level set  
is smooth. In ITK, a curvature image is also used (typically the edge  
potential image is also the curvature modifier image) to allow the  
curves to be less smooth in regions with strong edges.

These three components can be weighted differentially to emphasize  
one or the other. That's what the weight parameters are.

Now, solving a differential equation is typically done iteratively:  
one small (linear) step at a time. So the number of iterations  
parameters is a maximum "cap" on the total number of steps the  
algorithm will take, regardless of whether it has reached a "steady  
state" or converged.

Typically you detect convergence of a differential equation solver by  
looking at the average (RMS) change from one step to the next. So  
that's what the RMS error parameter is: how little residual error  
will you accept before declaring the equation "solved"? Sometimes,  
however, the solution "bounces" between two values, due to numerical  
issues, and never converges below the error threshold. In this case,  
the number of iterations parameter is the only way to ensure the  
solver stops at some point.

Now, read the documentation for the Geodesic level sets method  
(http://www.itk.org/Doxygen/html/ 
classitk_1_1GeodesicActiveContourLevelSetImageFilter.html ) and its  
superclass (http://www.itk.org/Doxygen/html/ 
classitk_1_1SegmentationLevelSetImageFilter.html ), to see how this  
brief tour of theory comes across in the ITK API.

Zach



On Oct 19, 2005, at 3:27 PM, OnezerO wrote:

> Thanks for the recomendations maded, i'm going to meditating about  
> all the
> process a bit longer.
>
> How i can get more details about the parameters of the geodesic  
> filter,
> because the manual for me is a little confuse, like the RMS error
> iterations, propagation, etc.
>
> Any help please.
>
> bye
>
> -----Mensaje original-----
> De: Zachary Pincus [mailto:zpincus at stanford.edu]
> Enviado el: Miercoles, 19 de Octubre de 2005 16:40
> Para: insight-users @ itk. org
> CC: OnezerO
> Asunto: Re: [Insight-users] question about distance map
>
> Hello -
>
> First off, make sure to cc the ITK list so that others might also  
> be able to
> help you.
>
> Second, note that technically you don't need to provide a full  
> "level set"
> image to the algorithm to start. While the signed distance map of the
> thresholded input is good, you could technically just pass the  
> thresholded
> input (provided the "inside value" is less than the "outside  
> value") as the
> initial level set, and set the "level set value" member variable to  
> the
> number halfway between the inside and outside values. (If this  
> doesn't make
> sense, it is worth meditating on, and if still not, asking for more
> details.)
>
> Nevertheless, the fact remains that you think there's a problem  
> with the
> initial level set, which is to say a problem with the initial  
> conditions you
> are passing to the geodesic active contour level sets algorithm.  
> Without
> getting two far into the details, it's important to provide good  
> initial
> conditions for the geodesic active contours level sets method:  
> while the
> initial level set needn't be completely inside the object to be  
> segmented,
> it needs to be close enough to get "sucked in" to the image edges  
> via the
> advection term. If you can't generate such an initial segmentation,  
> consider
> (a) generating an initial level set completely outside of the bone,  
> and
> setting the "reverse propagation direction" (or whatever; consult the
> doxygen) flag, or (b) more advanced methods (such as providing your  
> own
> speed image that is negative outside of the bone, causing level  
> sets in
> outside regions to "shrink" back to the bone area).
>
> I'm not sure what you mean when you say that "it works better"
> without the signed distance map. What, precisely, are you providing  
> as the
> initial level set in that case?
>
> Of course, the input is but one of many parameters that can be  
> tuned to make
> the geodesic level sets algorithm work better: there's the  
> parameters of the
> class itself, plus all of the parameters of the preprocessing steps. I
> suggest that you look at each of the output images of these steps  
> to ensure
> that the features that are meaningful to your needs are the ones  
> getting
> hilighted by the preprocessing.
> Otherwise it's all a waste of time.
>
> Zach
>
> On Oct 19, 2005, at 2:07 PM, OnezerO wrote:
>
>
>> Hi,
>> Thanks for the interest.
>> I'm gonna try to explain (my english is kind of bad).
>> I want to create a 3D model of a bone structure that's inside of a
>> serial of CT images. For this i'm using the geodesic active contour
>> filter, in the guide of itk said that it's need 2 inputs images, one
>> corresponding to the distance map of the image and another
>> preprocessed image, in this context i dont understand the use of the
>> fastmarching filter, but like the manual said thas use of this filter
>> is to obtain a distance map i think to use danielsson filter.
>>
>> The process is the next
>>
>> InputImage -> CurvatureAnisotropicDiffusionImageFilter ->
>> GradientMagnitudeRecursiveGaussianImageFilter ->  
>> SigmoidImageFilter ->
>> PotentialEdgeImage
>>
>> InputImage ->
>> ThresholdImageFilter->SignedDanielssonDistanceMapImageFilter-
>>
>>> DistanceMapIma
>>>
>> ge
>>
>> PotentialEdgeImage-
>>              |--> GeodesicActiveContourLevelSetImageFilter ->
>> BinaryThresholdImageFilter -> VTKImageExport ->3D View
>>   DistanceMapImage-
>>
>> When i write the result are bad i mean that the segmentation obtained
>> at the end does't work, i don't obtain the 3d view, if i remove the
>> danielsson filter i get a sementation and hence a 3d image, but this
>> segmentation is not optimal.
>>
>> I hope now i explain better what my problem is
>>
>> Thanks
>>
>> -----Mensaje original-----
>> De: Zachary Pincus [mailto:zpincus at stanford.edu] Enviado el:
>> Miercoles, 19 de Octubre de 2005 15:44
>> Para: OnezerO
>> CC: insight-users at itk.org
>> Asunto: Re: [Insight-users] question about distance map
>>
>> Could you clarify a bit about what you need the distance map for?
>> Even better would be to back up and explain what your desired outputs
>> are, what your input images are, what your approach has been, and
>> where you are seeing problems.
>>
>> When you say "the results are not good" what results do you refer to?
>> The Danielsson filter produces good distance maps, so presumably the
>> problem is what you're doing afterward with that distance map.
>>
>> If you explain your problem and goals a little more, hopefully I or
>> someone else can help.
>>
>> Zach Pincus
>>
>> Program in Biomedical Informatics and Department of Biochemistry
>> Stanford University School of Medicine
>>
>>
>> On Oct 19, 2005, at 12:59 PM, OnezerO wrote:
>>
>>
>>
>>>
>>>
>>>
>>> Hello
>>>
>>> How can i get a distance map without using FastMarching, because i
>>> dont get the method itself, i'm trying to use Danielsson Filter as
>>> well but the results are not good, all the above in the context that
>>> i'm trying to do a example of geodesic active contour to make a 3D
>>> view of any bone. Or is there another method to extract in a better
>>> way the bone inside de images?.
>>>
>>>  sorry for the english.
>>>
>>> Thanks
>>>
>>> _______________________________________________
>>> 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
>



More information about the Insight-users mailing list