Implementing the Automatic Generation of 3D Statistical Shape Models with ITK

Heimann, Tobias,Oguz, Ipek1*,Wolf, Ivo,Styner, Martin,Meinzer, Hans-Peter
1.UNC
Abstract

Abstract

Statistical Shape Models are a popular method for segmenting three-dimensional medical images. To obtain the required landmark correspondences, various automatic approaches have been proposed. In this work, we present an improved version of minimizing the description length (MDL) of the model. To initialize the algorithm, we describe a method to distribute landmarks on the training shapes using a conformal parameterization function. Then, we introduce a novel procedure to modify landmark positions locally without disturbing established correspondences. We employ a gradient descent optimization to minimize the MDL cost function, speeding up automatic model building by several orders of magnitude when compared to the original MDL approach. The necessary gradient information is estimated from a singular value decomposition, a more accurate technique to calculate the PCA than the commonly used eigendecomposition of the covariance matrix. In this work, we first present a basic version where spatial locations are used in the MDL cost function; next, we introduce an extended version where any combination of features can be used as a metric. As an example application, we present results based on local curvature measurements. Finally, we present results for synthetic and real-world datasets demonstrating the efficiency of our procedures and give details about the implementation using the Insight Toolkit (ITK).

Keywords

CorrespondenceStatistical Shape Analysis
Manuscript
Source Code and Data

Source Code and Data

itkCorrespondencesCMakeLists.txt3.2 KBCMakeTemplate.txt1.9 KBIJMacros.txt3.2 KBImageCompare.cxx8.2 KBReadme-license.txt191 BitkConformalSphericalParameterizationFilter.h5.6 KBitkConformalSphericalParameterizationFilter.txx13.6 KBitkConformalSphericalParameterizationFilter.txx.bak13.6 KBitkGaussianWarpSphericalParameterizationFilter.txx6.2 KBitkGaussianWarpSphericalParameterizationFilter.h4.7 KBitkGaussianWarpSphericalParameterizationFilter.txx.bak6.2 KBitkIndexedTriangleMesh.h9.5 KBitkIndexedTriangleMesh.txx11.9 KBitkIndexedTriangleMesh.txx.bak12 KBitkMeshASCIIReader.h3.2 KBitkMeshASCIIReader.txx2.9 KBitkMeshASCIIWriter.h2.8 KBitkMeshDataSpecialization.h638 BitkMeshFileWriter.h4 KBitkMeshSTLWriter.h3.5 KBitkParameterizedMeshASCIIReader.txx5.6 KBitkParameterizedMeshASCIIReader.h3 KBitkParameterizedMeshASCIIWriter.h3.4 KBitkParameterizedTriangleMesh.h7 KBitkParameterizedTriangleMesh.h.bak6.9 KBitkParameterizedTriangleMesh.txx585 BitkProcrustesAlign3DMeshFilter.h8.4 KBitkProcrustesAlign3DMeshFilter.txx11.6 KBitkRemeshParameterizedMeshFilter.h3.8 KBitkRemeshParameterizedMeshFilter.txx10.9 KBitkRemeshParameterizedMeshFilter.txx.bak10.8 KBitkRotateSphericalParameterizationFilter.h3.2 KBitkRotateSphericalParameterizationFilter.txx1.9 KBitkRotateSphericalParameterizationFilter.txx.bak1.8 KBitkShapeModelCalculatorCostFunction.h4.1 KBitkShapeModelCalculatorCostFunction.txx987 BitkSimplifiedMDLCostFunction.h3.2 KBitkSimplifiedMDLCostFunction.txx2.4 KBitkSphericalParameterizedTriangleMesh.h5.9 KBitkSphericalParameterizedTriangleMesh.h.bak5.8 KBitkSphericalParameterizedTriangleMesh.txx8.8 KBitkStatisticalShapeModel3DCalculator.h15.1 KBitkStatisticalShapeModel3DCalculator.txx24.2 KBitkStatisticalShapeModel3DCalculatorWithFeatures.h4.2 KBitkStatisticalShapeModel3DCalculatorWithFeatures.txx3.4 KBitkVarianceBasedCostFunction.h2.8 KBitkVarianceBasedCostFunction.txx3.5 KBmain.cpp11.6 KB

Select a file to preview

Reviews

Reviews

Ghassan Hamarneh

Wednesday 30 August 2006

Summary:

The authors present a pipeline for establishing 3D shape correspondence. The implementation is based on concepts from earlier work [2-7], including MDL, shape index and curvedness local features, and establishing correspondence on the unit sphere.

Hypothesis:

  • The importance of statistical shape analysis in clinical applications.
  • The need for open source code and software for establishing 3D shape correspondence statistical model building.
  • The author’s submission provides a means to perform 3D statistical shape analysis.

    Evidence:

    The authors describe and provide code and sample data for creating statistical shape models. The authors made particular choices regarding how these models are created (e.g. MDL-based, specific local features, specific shape representation).

    Open Science:

    See next section.

    Reproducibility:

    ITK classes, code and data are provided. See below.

    I downloaded all the files including the source code, but did not build the code. The authors provide an application (see main.cpp), a single data set of cuboids, and an example of command line argument.

    The authors write: “A detailed overview of how the example application works is useful to demonstrate how the various classes work together. Initially, an instance….”. This paragraph is useful for understanding the framework. It would have been helpful to refer the reader to specific lines from the main.cpp file.

    The authors write that the framework is flexible enough allowing the use of other local shape features. However, details describing which classes, source code, or virtual functions (?) need to be implemented or modified to accomplish this. I was expecting to find something like:

    ssmCalculator->SetLocalFeatures( ShapeIndexAndCurvedness);

    In this way the framework may be used to compare the correspondence results and statistical model created when different local features are used.

    Use of Open Source Software:

    The authors make use of CMAKE and ITK coding style. Experience or advice related to open source are not given.

    Open Source Contributions:

    The authors provide the source code (and sample data). Users familiar with CMAKE should be able to build the provided application. CMakeLists.txt is provided.

    Code Quality:

    Main.cpp hardly has any comments. Other random files checked do not have any comments at all.

    Applicability to other problems:

    Code can be applied to general shape correspondence problems in non-medical applications, for example for shape modelling, geometry processing, and computer graphics.

    Suggestions for future work:

    I think that it would be valuable to provide a class itk::SpatialObjectToSpatialObjectRegistrationMethod where this work would be an instantiation of.

    Perhaps ImageToImage, SpatialObjectToSpatialObject, ImageToSpatialObject, and SpatialObjectToImage should all inherit from a higher level ObjectToObjectRegistrationMethod.

    It would be valuable to be able to specify the different components of the shape correspondence (or the SpatialObjectToSpatialObject …) framework in a manner similar to the current image registration framework of ITK. In the image registration framework the user can set the transform, similarity metric, optimization, interpolation etc. It seems to me it is natural to have a similar framework for shape ‘registration’, where the following can be set: contours vs surfaces, shape representation, correspondence/mapping representation, local features, cost functions, optimization strategy, etc. This will require a substantial investment in designing such a framework, similar to what has been undertaken for the image registration framework (perhaps even learning from that experience to provide improvements). Such a new framework will be more welcoming for other researchers and developers to create other modules (e.g. a new local feature or cost function). The current submission under review could be thought of as a single instantiation of such a general shape correspondence pipeline. The current submission does have some aspects of this general pipeline. A tutorial similar to the: “Hello World” Registration (section 8.2 in the ITK guide, edition 2, ITK2.4) would be beneficial.

    The MDL approach ties the correspondence problem with building the statistical shape model. It might be beneficial in some cases to examine different statistical analyses or model building approaches assuming an already established correspondence.

    Requests for additional information from authors:

    It is hard to read the text in the flowchart of Figure 4 in the PDF submission. A higher resolution figure would be good.

    Can the framework be applied in 2D to match contours (not surfaces) of shapes?

    It appears that the software or code used to produce the images and coloring in Figure 2 is not provided. How can these figures be generated?

    Additional Comments:

    James Miller

    Wednesday 30 August 2006

    Summary: This paper describes (and provides) methods for generating statistical shape models. A minimum description length landmark generation method is implemented. Additional features can also be used to control the selection of landmarks.

    Automated generation of statistical shape models in important. While specifying shape models manually in 2D is not too taxing, the problem becomes very burdonsome for 3D objects. The methods provided here will increase the use of statistical shape models in ITK.

    Hypothesis: Non Applicable

    Evidence:

    Open Science: Paper provides source code and data.

    Reproducibility: The software built without issue for me.

    Use of Open Source Software: Provides an ITK framework for constructing shape models.

    Open Source Contributions: Source code provided. While in an ITK framework, many of object inherit from itkObject. Does it make sense for some of the algorithms to be implemented as filters?

    This paper only covers the construction of the statistical shape model, not its application.

    Code Quality: See the above note.

    Applicability to other problems: Statistical shape models are an important component of medical image analysis. They are not utilized more because of the difficulty in specifying the models in 3D.

    Suggestions for future work:

    Requests for additional information from authors:

    This paper only covers the construction of the statistical shape model, not its application. Is there another paper on the application or do the authors use existing ITK methods to fit a statistical shape model to an image?

    Additional Comments:

    Ekaterina Syrkina

    Tuesday 12 December 2006

    Summary:
    With this work authors present flexible software for establishing correspondence between shape boundaries over a given training set. This is the main step in statistical shape model building. Application is restricted to the objects with spherical topology. Framework for the model building itself (after establishing correspondence) is not provided, but this is the minor step in the problem.

    Hypothesis:
    Not applicable

    Evidence:
    As far as I know, presented work is the first open source for this particular problem. Default settings has been proven by appropriate for the MDL approach measurements to give the best results (see authors' IPMI paper), but it also possible to change some parts of the algorithm such as cost function, initial parametrisation, landmark positions, use of features and other fine tunings (up to now I've tried only default settings).

    Open Science:
    Source code is available, but there is only one example data set (cuboids).

    Reproducibility:
    I've downloaded and compiled the code without any problems.

    Running. The following statement from the paper is not correct in the current implementation: "A main() function is provided along with these classes as a ready to use tool. The only parameters to this tool are an input list file, a landmark file, and a model radius." There is 4th parameter in the last version and I get segmentation fault without it (while there is the check of the number of input parameters in main.cc, I do not get the expected message: "Usage: " << argv[0] << " MeshListFile LandmarkFile ModelRadius OutputLandmarkFile"). Would be nice to see more detailed description when running the program (e.g. with "-h"). Also I get warnings with no sense for me: "Couldn't convert pixel type".

    Comment for Linux users: data are provided with Windows line breaks, you have to use something like dos2unix to avoid problems. It would be nice to have data for both Linux and Windows platforms.

    Use of Open Source Software:
    ITK, cmake

    Open Source Contributions:
    Source code is provided, main classes are described, but more clear and up to date instructions how to use it are neccesary.

    Classes for mesh writers in different formats are available for output (STL, ASCII). Default output format is *.meta.

    Small text correction: it seems that number of vertices for cuboids given in the Table 2 (that is 486) is not correct (I've found only 386 for cuboids data) 

    Code Quality:
    Code is enough commented


    Applicability to other problems:
    Can be applied for any problem where statistical shape modeling for triangulated meshes is needed. It is not restricted only to medical applications.


    Suggestions for future work:
    Thought the most difficult part of building statistical shape model is given, construction of the model itself (with PCA) and framework to analyse the model (e.g. calculation of measures, such as specificity and generalisation ability) would make the application more complete. Also, visualisation part is not covered and no hints to visualise data and get 3d images from the paper are given. Default output mesh format also requires some comments.

    Requests for additional information from authors:
    Up to date parameters to run the program

    Additional Comments:
    Very nice and useful job! Thanks!