GeoInterp: Contour Interpolation with Geodesic Snakes
Geodesic Snakes
University of North Carolina at Chapel Hill
| Please use this identifier to cite or link to this publication: http://hdl.handle.net/1926/212 |
Published in The Insight Journal - 2006 MICCAI Open Science Workshop.
Submitted by Rohit Saboo on 07-01-2006.
The process of outlining organs on three dimensional medical images is extremely time-consuming. In this document, we describe a new tool that can interpolate contours and also make them smooth. The tool uses geodesic snakes to perform these functions. The implementation uses The Insight Toolkit and
the implementation of geodesic snakes that comes with SNAP.
the implementation of geodesic snakes that comes with SNAP.
Data
Code
Automatic Testing Results
by Insight-Journal Dashboard
on Wed Jul 19 14:22:03 2006 for revision #2 Click here for more details.
Go here to access the main testing dashboard.
Automatic Testing Results
by Insight-Journal Dashboard
on Wed Jul 19 14:03:38 2006 for revision #1 Reviews
Review
by Karthik Krishnan on 09-04-2006 for revision #2
Summary:
The paper describes a way to smooth and/or interpolate hand drawn contours using energy minimizing functionals (in this case Geodesic snakes). The use case here is that the contours are drawn by a radiologist, slice by slice to delineate a segmentation and the proposed method is intended to either correct for errors or ease the job of the radiologist by having him draw contours on every other slice etc... The intent here is that the radiologist is drawing volumes on a 2D slice, but the underlying object is 3D and drawing contours on slices loses the continuity information that the proposed method seeks to correct.
Open Science:
The source code has been provided. Its packaged in a way that makes it easy for the end user to compile and run it.. It requires CMake, ITK, VTK and FLTK... The command line is easy to use.. A sample paramter file has been provided, with parameters clearly labelled.. The paramter file can be edited easy to appropriately select the curvature and propagation weights for the snakes etc.. The source code is clearly written, and appears to be intended to be integrated into SNAP.
Reproducibility:
[Did you reproduce the authorsâ work?
Yes
Did you download their code? Did you compile it? Did you run it?
Yes
Did you managed to get the same results that they reported?
Similar results, for the provided test data.. the Snake parameters do require playing around with.
Theoretical rationale / Practicalness
Although the paper does mention that the scheme works reasonably for interpolating contours, I could not get satisfactory results for the test data provided. A large curvature weight simply makes the snake expand into a nice looking smooth blob that more or less takes the shape of a sphere inscribed on the bounding box. Too small a weight does not smooth it enough leaving the snake taking the shape of the bounding box on slices where there wasn't a manual segmentation. A value in between has varying degrees of clearly noticeable effects of distortion due to the bounding box.
All in all, I'm not satisfied with the method using a bounding box as an initialization for the snake. This oversimplification of the algorithm creates singularities in the initial segmentation. The snake is forced to correct for these singularities using energy minimizing functionals. All in all, it seems wrong to introduce a box shaped initialization that the radiologist never drew.
There are several algorithms in literature that have similar goals and incur less computational expense. Mesh smoothing is one example. Mesh smoothing, that preserves features can get fairly complicated with expensive functional minimizations or with crazy non-linear or anisotropic equations. However, I think (just a conjecture) that simple linear, isotropic smoothing of the triangulated surfaces such as [Taubin 95] is still powerful and can yield better results than outlined in the paper. A similar filter, again from Taubin, faster since it approximates the smoothing filter with an FIR one is in VTK vtkWindowedSincPolyDataFilter and Bill Lorensen has some old experiments with it.
In light of this, it might seem reasonable to mesh the dataset (vtkContourFilter / vtkMarchingCubes), decimate if you think you have too many triangles (vtkDecimate) and smooth the resulting mesh (vtkWindowedSincPolyDataFilter).
All in all, I am not convinced of the practical usefulness of the scheme. Does it really yield satisfactory (in terms of representing medical segmentations fairly accurately) results when interpolating contours ?
The paper describes a way to smooth and/or interpolate hand drawn contours using energy minimizing functionals (in this case Geodesic snakes). The use case here is that the contours are drawn by a radiologist, slice by slice to delineate a segmentation and the proposed method is intended to either correct for errors or ease the job of the radiologist by having him draw contours on every other slice etc... The intent here is that the radiologist is drawing volumes on a 2D slice, but the underlying object is 3D and drawing contours on slices loses the continuity information that the proposed method seeks to correct.
Open Science:
The source code has been provided. Its packaged in a way that makes it easy for the end user to compile and run it.. It requires CMake, ITK, VTK and FLTK... The command line is easy to use.. A sample paramter file has been provided, with parameters clearly labelled.. The paramter file can be edited easy to appropriately select the curvature and propagation weights for the snakes etc.. The source code is clearly written, and appears to be intended to be integrated into SNAP.
Reproducibility:
[Did you reproduce the authorsâ work?
Yes
Did you download their code? Did you compile it? Did you run it?
Yes
Did you managed to get the same results that they reported?
Similar results, for the provided test data.. the Snake parameters do require playing around with.
Theoretical rationale / Practicalness
Although the paper does mention that the scheme works reasonably for interpolating contours, I could not get satisfactory results for the test data provided. A large curvature weight simply makes the snake expand into a nice looking smooth blob that more or less takes the shape of a sphere inscribed on the bounding box. Too small a weight does not smooth it enough leaving the snake taking the shape of the bounding box on slices where there wasn't a manual segmentation. A value in between has varying degrees of clearly noticeable effects of distortion due to the bounding box.
All in all, I'm not satisfied with the method using a bounding box as an initialization for the snake. This oversimplification of the algorithm creates singularities in the initial segmentation. The snake is forced to correct for these singularities using energy minimizing functionals. All in all, it seems wrong to introduce a box shaped initialization that the radiologist never drew.
There are several algorithms in literature that have similar goals and incur less computational expense. Mesh smoothing is one example. Mesh smoothing, that preserves features can get fairly complicated with expensive functional minimizations or with crazy non-linear or anisotropic equations. However, I think (just a conjecture) that simple linear, isotropic smoothing of the triangulated surfaces such as [Taubin 95] is still powerful and can yield better results than outlined in the paper. A similar filter, again from Taubin, faster since it approximates the smoothing filter with an FIR one is in VTK vtkWindowedSincPolyDataFilter and Bill Lorensen has some old experiments with it.
In light of this, it might seem reasonable to mesh the dataset (vtkContourFilter / vtkMarchingCubes), decimate if you think you have too many triangles (vtkDecimate) and smooth the resulting mesh (vtkWindowedSincPolyDataFilter).
All in all, I am not convinced of the practical usefulness of the scheme. Does it really yield satisfactory (in terms of representing medical segmentations fairly accurately) results when interpolating contours ?
Useful Tool. Some unanswered questions.
by Ghassan Hamarneh on 08-20-2006 for revision #2
Summary:
[Short description of the paper. In two or three phrases describe the problem that was addressed by the authors and the approach they took to solve it.]
A tool for interpolating manual contours in 3D using a level set based deformable model, in order to obtain an explicit or implicit representation of the segmented anatomical objectâs surface.
Hypothesis:
[If Applicable: Describe the assumptions that the authors have made and they hypothesis of their work, note that not all papers will fit the model of hypothesis driven work, for example, the description of an image database, or the description of a toolkit will not be driven by an hypothesis, in which case, please simply write: âNon Applicableâ in this field or delete the subtitle.]
Many medical image analysis applications require a segmentation step where a surface representation of a 3D object is extracted.
Manual expert segmentation is easily obtained on 2D slices and more difficult and time consuming in 3D.
The provided source code builds into a tool that interpolates contours in 2D into a surface in 3D (explicit/implicit representation).
Manual contours need not be regarded as hard constraints on the output segmentation.
Evidence:
[Describe the evidence that the authors provide in order to support their claims in the paper. This is a key component on Open Science, opinions that are not supported by evidence should be labeled as âspeculationsâ or âauthorâs opinionâ while. The same rule applies to the text of the reviews: claims should be supported by evidence]
The first 3 points above are clear to most researchers working with medical image analysis. The fourth (last) point is not as obvious. I am not sure if the tool should be allowed to modify the contours drawn by the experts. The authors also write âBYU run through smoothingâ. This deviates the results even further from the expert-segmentation. Does setting the âPropagationWeightâ excessively high guarantee conforming exactly to the expert segmentation? If so how much would smoothness suffer?
I am unclear about the restriction imposed when drawing the contours. For example, can the expert drawn contours be in any orientation (XY, XZ, YZ planes, or even oblique slices)? The figures in the submitted PDF show only parallel contours. The authors also write âdraws at least two contours at each end of the objectâ. It is unclear to me how this should be done in general, as the âend of the objectâ typically gradually disappears when moving from one slice to the next, until there are only a few object pixels that typically suffer from partial volume effects. For a sphere-like object, where should these âend contoursâ be drawn? Are there any explicit, well-defined guidlines?
Open Science:
[Describe how much the paper and its addendums adhere to the concept of Open Science. Do the authors provide the source code of the programs used in their experiments? Do the authors provide the input images that they used? Or are those images publicly available? Do the authors provide the output images that they show in the paper? Do the authors provide enough details for you to be able to replicate their work?]
The authors provide the source code. I did not build the tool.
Reproducibility:
[Did you reproduce the authorsâ work?
Did you download their code? Did you compile it? Did you run it?
Did you managed to get the same results that they reported?
Were there information missing from the paper, that was necessary for you to reproduce the work? Suggest improvements that will make easier for future readers to reproduce this work.]
I did not build, launch, or use the tool. In the PDF document the authors do not state the values of the parameters (PropagationWeight and CurvatureWeight) used to generate the results in Figures 1-3. The authors, however, do write that âA sample command file is included with the source codeâ. I did not search for this command.
Use of Open Source Software:
[Did the authors use Open Source software in their work? Do they describe their experience with it, advantages and disadvantages? Do they provide advice for future users of those Open Source packages?]
The authors used: ITK, VTK, CMAKE, and SNAP, which are all open source (I assume SNAP is open source as well as it is part of InsightApplications). The authors did not motivate the use of these libraries/tools, although it should be obvious to the community, nor described their experiences.
Open Source Contributions:
[Do the authorâs provide their source code? Is it in a form that is usable? Do they describe clearly how to use of the code? How long did it take you to use that code?]
The authors provided the source code. They did not provide details on how to use the code to build the application. I think it is clear to any one who builds other applications based on ITK with CMAKE.
Code Quality:
[If the authors provided their source code: Was the code easy to read? Did they use a modern coding style? Did they rely on non-portable mechanism? Was it suitable for multiple-platforms?]
I did not check.
Applicability to other problems:
[Do you find that the authors methods can be applied to other image analysis problems? Suggest other disciplines or even other specific projects that could take advantage of this work]
I could not think of any.
Suggestions for future work:
[Suggest to authors future directions for improving their methods, or other domains from which they could learn technique that could help them advance in their research.]
The authors write: âSnake evolution guided by [â¦] the curvature forces where [there are no manual contours]â. As I understand the work, image-based terms/evolution is not used at all. What would be valuable, I think, is to constrain the segmentation results to pass through the manual contours (where these exist), and be attracted to image boundaries (where manual contours do not exist) as much as possible while satisfying a smooth surface/segmentation. This would then be truly interpolation, as the title (GeoInterp) first led me to believe. This seems more like approximation/fitting than interpolation:
âcomputation of points or values between ones that are known or tabulated using the surrounding points or valuesâ
http://mathworld.wolfram.com/Interpolation.html
âmethod of constructing new data points from a discrete set of known data pointsâ
http://en.wikipedia.org/wiki/Interpolation
The authors write about âPropagationWeightâ: âA relatively higher propagation weight prevents the snake from deviating too much from the original contours. It represents the confidence the user has in their segmentationâ. This naming âPropagationWeightâ seems counterintuitive to me. As it stands the higher the âpropagation weightâ the less the deviation of level set propagation from the manual contours. Perhaps naming it as ManualSegmentationConfidenceWeights (the higher this weight the more the confidence, the less the deviation) or AllowedDeviationFromManualWeight (with higher weights more deviation is allowed)
Requests for additional information from authors:
[Did you find that information was missing from the paper? Maybe parameters for running the tests? Maybe some images were missing? Would you like to get more details on how the diagrams, or plots were generated?]
None.
Additional Comments:
I recommend citing other related research work (not necessarily open source or downloadable tools) so the reader/user is aware of alternative or similar approaches:
Shape transformation using variational implicit functions (see figure 7)
http://portal.acm.org/citation.cfm?id=311580
vtkVoxelContoursToSurfaceFilter
http://www.vtk.org/doc/release/5.0/html/a02195.html
3D live-wire-based semi-automatic segmentation of medical images
http://dx.doi.org/10.1117/12.596148
Level Set Active Contours on Unstructured Point Cloud
http://dx.doi.org/10.1109/CVPR.2005.211
[Short description of the paper. In two or three phrases describe the problem that was addressed by the authors and the approach they took to solve it.]
A tool for interpolating manual contours in 3D using a level set based deformable model, in order to obtain an explicit or implicit representation of the segmented anatomical objectâs surface.
Hypothesis:
[If Applicable: Describe the assumptions that the authors have made and they hypothesis of their work, note that not all papers will fit the model of hypothesis driven work, for example, the description of an image database, or the description of a toolkit will not be driven by an hypothesis, in which case, please simply write: âNon Applicableâ in this field or delete the subtitle.]
Evidence:
[Describe the evidence that the authors provide in order to support their claims in the paper. This is a key component on Open Science, opinions that are not supported by evidence should be labeled as âspeculationsâ or âauthorâs opinionâ while. The same rule applies to the text of the reviews: claims should be supported by evidence]
The first 3 points above are clear to most researchers working with medical image analysis. The fourth (last) point is not as obvious. I am not sure if the tool should be allowed to modify the contours drawn by the experts. The authors also write âBYU run through smoothingâ. This deviates the results even further from the expert-segmentation. Does setting the âPropagationWeightâ excessively high guarantee conforming exactly to the expert segmentation? If so how much would smoothness suffer?
I am unclear about the restriction imposed when drawing the contours. For example, can the expert drawn contours be in any orientation (XY, XZ, YZ planes, or even oblique slices)? The figures in the submitted PDF show only parallel contours. The authors also write âdraws at least two contours at each end of the objectâ. It is unclear to me how this should be done in general, as the âend of the objectâ typically gradually disappears when moving from one slice to the next, until there are only a few object pixels that typically suffer from partial volume effects. For a sphere-like object, where should these âend contoursâ be drawn? Are there any explicit, well-defined guidlines?
Open Science:
[Describe how much the paper and its addendums adhere to the concept of Open Science. Do the authors provide the source code of the programs used in their experiments? Do the authors provide the input images that they used? Or are those images publicly available? Do the authors provide the output images that they show in the paper? Do the authors provide enough details for you to be able to replicate their work?]
Reproducibility:
[Did you reproduce the authorsâ work?
Did you download their code? Did you compile it? Did you run it?
Did you managed to get the same results that they reported?
Were there information missing from the paper, that was necessary for you to reproduce the work? Suggest improvements that will make easier for future readers to reproduce this work.]
I did not build, launch, or use the tool. In the PDF document the authors do not state the values of the parameters (PropagationWeight and CurvatureWeight) used to generate the results in Figures 1-3. The authors, however, do write that âA sample command file is included with the source codeâ. I did not search for this command.
Use of Open Source Software:
[Did the authors use Open Source software in their work? Do they describe their experience with it, advantages and disadvantages? Do they provide advice for future users of those Open Source packages?]
The authors used: ITK, VTK, CMAKE, and SNAP, which are all open source (I assume SNAP is open source as well as it is part of InsightApplications). The authors did not motivate the use of these libraries/tools, although it should be obvious to the community, nor described their experiences.
Open Source Contributions:
[Do the authorâs provide their source code? Is it in a form that is usable? Do they describe clearly how to use of the code? How long did it take you to use that code?]
The authors provided the source code. They did not provide details on how to use the code to build the application. I think it is clear to any one who builds other applications based on ITK with CMAKE.
Code Quality:
[If the authors provided their source code: Was the code easy to read? Did they use a modern coding style? Did they rely on non-portable mechanism? Was it suitable for multiple-platforms?]
I did not check.
Applicability to other problems:
[Do you find that the authors methods can be applied to other image analysis problems? Suggest other disciplines or even other specific projects that could take advantage of this work]
I could not think of any.
Suggestions for future work:
[Suggest to authors future directions for improving their methods, or other domains from which they could learn technique that could help them advance in their research.]
The authors write: âSnake evolution guided by [â¦] the curvature forces where [there are no manual contours]â. As I understand the work, image-based terms/evolution is not used at all. What would be valuable, I think, is to constrain the segmentation results to pass through the manual contours (where these exist), and be attracted to image boundaries (where manual contours do not exist) as much as possible while satisfying a smooth surface/segmentation. This would then be truly interpolation, as the title (GeoInterp) first led me to believe. This seems more like approximation/fitting than interpolation:
http://mathworld.wolfram.com/Interpolation.html
http://en.wikipedia.org/wiki/Interpolation
The authors write about âPropagationWeightâ: âA relatively higher propagation weight prevents the snake from deviating too much from the original contours. It represents the confidence the user has in their segmentationâ. This naming âPropagationWeightâ seems counterintuitive to me. As it stands the higher the âpropagation weightâ the less the deviation of level set propagation from the manual contours. Perhaps naming it as ManualSegmentationConfidenceWeights (the higher this weight the more the confidence, the less the deviation) or AllowedDeviationFromManualWeight (with higher weights more deviation is allowed)
Requests for additional information from authors:
[Did you find that information was missing from the paper? Maybe parameters for running the tests? Maybe some images were missing? Would you like to get more details on how the diagrams, or plots were generated?]
None.
Additional Comments:
I recommend citing other related research work (not necessarily open source or downloadable tools) so the reader/user is aware of alternative or similar approaches:
http://portal.acm.org/citation.cfm?id=311580
http://www.vtk.org/doc/release/5.0/html/a02195.html
http://dx.doi.org/10.1117/12.596148
http://dx.doi.org/10.1109/CVPR.2005.211
Review
by Yi Gao on 08-16-2006 for revision #2
Summary:
Obtain segmentation of all slices based on manual results of a few slices under the geodesic active contour scheme.
It will bring a great reduction in the segmentation of 3D image data.
Hypothesis:
Basic hypothesis is that the object boundaries in adjacent slices should have little variation.
Evidence:
This is true for most cases.
Open Science:
The authors provide their source code. Also, the libraries their code depends on are open source.
Reproducibility:
I compiled the code and run it with the test data provided by the author.
The compilation and running went on smoothly. All the parameters needed in the program are given in a configure file which is easy to use.
Result files are generated.
The input data file(input.pim) may be associated with the PLUNC(Plan UNC radiation treatment planning system) whose web site(www.radonc.unc.edu/) I'm not able to open. So I'm not able to visualize the input data.
Use of Open Source Software:
Many Open Source libraries, vtk, ITK, ITKSNAP, FLTK, are used in the work.
Open Source Contributions:
The authors provide the source code and a set of testing data. The main parameters are addressed in the paper and all the parameters are set in a configure file. It's clear and self-explained.
Code Quality:
The code is well written and easy to read. The code itself and the packages it relies on are platform independent. So the code should be suitable for multi-platforms. I run it on Linux.
Applicability to other problems:
Beyond the background of medical image segmentation, this method could be used in recovering a 3D mesh from a few known closed curves.
Suggestions for future work:
From the result given in Figure 3 it can be seen that, for all manually segmented slices, the result contours are larger than their initial contours. Actually such phenomenon can be predicted from the interpolation algorithm.
Take three adjacent slices, the middle one being manually segmented, for example. The initial contours of slices 1 and 3, since they're not segmented, are the intersection quadrilaterals formed by the bounding box and their slice planes.
Because of the curvature flow, these two initial contours will always exert expanding force onto the contour in the 2nd slice(whose initial position is manually plotted). Although there are -1 values in 2nd slice outside its initial contour
to balance this expanding tendency, the net result will be there is more or less expansion of the contour.
Requests for additional information from authors:
No further requests.
Additional Comments:
My rating is based on the IS-J reviewer guidelines.
Obtain segmentation of all slices based on manual results of a few slices under the geodesic active contour scheme.
It will bring a great reduction in the segmentation of 3D image data.
Hypothesis:
Basic hypothesis is that the object boundaries in adjacent slices should have little variation.
Evidence:
This is true for most cases.
Open Science:
The authors provide their source code. Also, the libraries their code depends on are open source.
Reproducibility:
I compiled the code and run it with the test data provided by the author.
The compilation and running went on smoothly. All the parameters needed in the program are given in a configure file which is easy to use.
Result files are generated.
The input data file(input.pim) may be associated with the PLUNC(Plan UNC radiation treatment planning system) whose web site(www.radonc.unc.edu/) I'm not able to open. So I'm not able to visualize the input data.
Use of Open Source Software:
Many Open Source libraries, vtk, ITK, ITKSNAP, FLTK, are used in the work.
Open Source Contributions:
The authors provide the source code and a set of testing data. The main parameters are addressed in the paper and all the parameters are set in a configure file. It's clear and self-explained.
Code Quality:
The code is well written and easy to read. The code itself and the packages it relies on are platform independent. So the code should be suitable for multi-platforms. I run it on Linux.
Applicability to other problems:
Beyond the background of medical image segmentation, this method could be used in recovering a 3D mesh from a few known closed curves.
Suggestions for future work:
From the result given in Figure 3 it can be seen that, for all manually segmented slices, the result contours are larger than their initial contours. Actually such phenomenon can be predicted from the interpolation algorithm.
Take three adjacent slices, the middle one being manually segmented, for example. The initial contours of slices 1 and 3, since they're not segmented, are the intersection quadrilaterals formed by the bounding box and their slice planes.
Because of the curvature flow, these two initial contours will always exert expanding force onto the contour in the 2nd slice(whose initial position is manually plotted). Although there are -1 values in 2nd slice outside its initial contour
to balance this expanding tendency, the net result will be there is more or less expansion of the contour.
Requests for additional information from authors:
No further requests.
Additional Comments:
My rating is based on the IS-J reviewer guidelines.
Statistics
| Global rating: | |
| Review rating: | |
| Code rating: | |
| Views: | 6658 |
| Downloads: | 807 |
Send a message to the author
Information
| Paper Id: | 100 |
| Keywords: | Interpolation, Geodesic Snakes, |
| Revision: | 2 (07-17-2006) |
| Status: | Accepted for publication |
| View license
Loading license...
| |
Data
| Full download: | .zip |
| Paper: | view, .pdf |
Share
Associated Publications
| Gaussian Interpolation | ||






