Difference between revisions of "Modules:VMTKCenterlines"

From Slicer Wiki
Jump to: navigation, search
 
(10 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
|[[Image:Centerlinesgui.png|thumb|280x280px|Main GUI of VMTKCenterlines.]]
 
|[[Image:Centerlinesgui.png|thumb|280x280px|Main GUI of VMTKCenterlines.]]
 
|[[Image:Avf_orig_axial.png|thumb|260x260px|Axial view of a contrast-enhanced three-dimensional image acquired from a MR scanner, showing an AV fistula in an arm. (Courtesy of L. Antiga, Bioengineering Department, Mario Negri Institute, Ranica (BG), Italy and N.R. Planken, Academisch Ziekenhuis Maastricht, the Netherlands.)]]
 
|[[Image:Avf_orig_axial.png|thumb|260x260px|Axial view of a contrast-enhanced three-dimensional image acquired from a MR scanner, showing an AV fistula in an arm. (Courtesy of L. Antiga, Bioengineering Department, Mario Negri Institute, Ranica (BG), Italy and N.R. Planken, Academisch Ziekenhuis Maastricht, the Netherlands.)]]
|[[Image:Avf_3d_preparation.png|thumb|260x260px|A surface model representation of an already existing segmentation.]]
+
|[[Image:Avf_3d_preparation.png|thumb|260x260px|A surface model representation of an already existing segmentation after preparation stage.]]
 
|[[Image:Avf_3d_centerlines.png|thumb|260x260px|Resulting centerline representation of the vessel topology.]]
 
|[[Image:Avf_3d_centerlines.png|thumb|260x260px|Resulting centerline representation of the vessel topology.]]
 
|}
 
|}
Line 28: Line 28:
  
 
===Module Description===
 
===Module Description===
This module provides level-set segmentation in 3D Slicer using selected methods of the '''level-set segmentation process of the Vascular Modeling Toolkit''' (http://www.vmtk.org). The module targets easy-to-use manual segmentation of tubular and blob-like structures. The methods provided by this module are ''Fast Marching Upwind Gradient Initialization'' and ''Geodesic Active Contours'' and ''CURVES Evolution''.
+
This module provides centerline computation of surface models in 3D Slicer using methods of the '''geometric analysis functionality of the Vascular Modeling Toolkit''' (http://www.vmtk.org). Centerlines are the central lumen lines in tubular structures and f.e. can be powerful descriptors of the vessel's topology. The module targets easy-to-use centerline extraction using seed and target points and also enables import and export functionality.
  
Segmentation using level sets consists of an initialization and an evolution step. The initialization step involves the description of a starting model within a region of interest. In the evolution step this initial deformable model then gets inflated to match the contours of the targeted volume.
+
The actual centerline extraction is based on calculating an inner Voronoi diagram by computing the Delaunay tessellation.
  
 
This work is part of the [http://wiki.na-mic.org/Wiki/index.php/NA-MIC_VMTK_Collaboration NA-MIC VMTK Collaboration].
 
This work is part of the [http://wiki.na-mic.org/Wiki/index.php/NA-MIC_VMTK_Collaboration NA-MIC VMTK Collaboration].
Line 45: Line 45:
  
 
===Examples, Use Cases===
 
===Examples, Use Cases===
 +
* '''Example centerline extraction'''
 +
The centerline computation requires an existing 3D surface model. This can be obtained using the [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] module.
 +
 +
After selecting the existing surface model as input, the second step is to prepare this model. This includes capping holes in the surface and removing unneeded triangles. The surface model color changes to green.
 +
 +
{|
 +
|-valign="top"
 +
|[[Image:Avf_orig_axial.png|thumb|260x260px|Axial view of a contrast-enhanced three-dimensional image acquired from a MR scanner, showing an AV fistula in an arm. (Courtesy of L. Antiga, Bioengineering Department, Mario Negri Institute, Ranica (BG), Italy and N.R. Planken, Academisch Ziekenhuis Maastricht, the Netherlands.)]]
 +
|[[Image:Avf_3d_evolution_new.png|thumb|260x260px|A surface model of a segmentation of the original image obtained with the [[Modules:VMTKEasyLevelSetSegmentation|VMTKEasyLevelSetSegmentation]] module.]]
 +
|[[Image:Avf_3d_preparation.png|thumb|260x260px|This surface model after the preparation stage. Holes in the surface were closed.]]
 +
|}
 +
 +
Now source and target fiducials have to be placed on the model in the 3D rendering window to specify the centerline routes. The fiducial positioning does not have to be exact because the module calculates the nearest position on the surface model to the input fiducials. After placing the fiducials, the centerline computation can be started. Depending on the surface model size the process can take a couple of minutes.
 +
 +
On completion of the calculation, the inner Voronoi diagram and the corresponding centerlines are visible as polydata models in the 3D rendering window.
 +
{|
 +
|-valign="top"
 +
|[[Image:Avf_3d_eikonal.png|thumb|260x260px|The inner Voronoi diagram colored by the solutions of the Eikonal equation obtained by Fast Marching back-tracking along the minimal path. The legend can be displayed using the [[Modules:Colors-Documentation-3.6| Colors module]].]]
 +
|[[Image:Avf_3d_centerlines.png|thumb|260x260px|The centerline representation of the vessel's topology.]]
 +
|}
 +
 +
A close-up of the Voronoi diagram shows the tiles separating the Voronoi regions. The modules also calculates the radius of the lumen for each point along the centerlines.
 +
 +
{|
 +
|[[Image:Avf_3d_voronoi_big.png|thumb|460x460px|A close-up of the Voronoi diagram colored by the maximal inscribed sphere radius [mm].]]
 +
|}
 +
 +
The extracted centerlines as well as the calculated radii along the centerlines can be exported and imported as a cloud of points to the filesystem.
  
 
===Tutorials===
 
===Tutorials===
Line 55: Line 83:
  
 
===Quick Tour of Features and Use===
 
===Quick Tour of Features and Use===
The graphical user interface of the VMTKEasyLevelSetSegmentation module consists of four panels.
+
The graphical user interface of the VMTKCenterlines module consists of five panels.
 
[[Image:Centerlinesgui.png|thumb|500x500px|The GUI of VMTKCenterlines. Click to enlarge.]]
 
[[Image:Centerlinesgui.png|thumb|500x500px|The GUI of VMTKCenterlines. Click to enlarge.]]
  
* Main module panel:
+
* Input panel:
Parameter presets exist for different use-cases. These get loaded from the MRML file ''presets.xml'' inside the module directory and can be edited.
+
The input surface model can be selected using this panel.
The current parameters are stored to the MRML node of the module and therefore it is possible to work with different parameter sets.
+
 
 +
* Preparation Step panel:
 +
The preparation step includes surface capping and removing unneeded traingles of the input model.
  
* I/O panel:
+
* Centerline Computation panel:
The input volume and the output volumes for the initialization and evolution stage can be selected using this panel.
+
This step includes the actual centerline extraction. Source and target points can be specified as fiducial lists. At least one source and one target point have to exist but it is possible to use f.e. only one source point and several target points. The centerlines run between these points.
The output volume of the initialization stage is used as an input for the evolution stage.
 
Fiducial lists can be configured as source and target seeds. If the selected fiducial lists are equal, target seeds will be ignored. This is useful for the segmentation of vessel trees.
 
A switch to choose between 3D visualization using models generated by Marching Cubes or Volume Rendering is available.
 
  
* Initialization panel:
+
Additionally the output models for the centerlines and the Voronoi diagram can be specified.  
The threshold slider is used as a parameter for the Fast Marching Upwind Gradient Image Filter and updates the slice viewers during change for visualization.
 
  
* Evolution panel:
+
* Export panel:
The module supports to choose between Geodesic Active Contours and CURVES evolution methods using a checkbox.
+
The module supports the export of the extracted centerlines as cloud of points to the filesystem. It is possible to add a header to these files or additional details like the radii. Inverting the coordinates multiplies the X,Y coordinates by -1.
  
Different weights are available to configure the inflation of the initial level-set. Is is possible to adjust the importance of inflation, curvature shape and attraction to the gradient ridges.
+
* Import panel:
The number of iterations defines how many steps of evolution are performed.
+
Exported centerlines (clouds of points) can be imported as surface models.
  
 
== Development ==
 
== Development ==
  
 
===Notes from the Developer(s)===
 
===Notes from the Developer(s)===
The algorithms provided by VMTK and used by this module are C++ classes implemented using VTK and ITK. In particular the module uses the Fast Marching Upwind Gradient Image Filter (see http://math.berkeley.edu/~sethian/Explanations/fast_marching_explain.html) for initialization and the Geodesic Active Contours (see http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.2196&rep=rep1&type=pdf) and CURVES (see http://www.spl.harvard.edu/publications/item/view/179) level set filters for evolution.
+
The algorithms provided by VMTK and used by this module are C++ classes implemented using VTK and ITK. More information on Voronoi diagrams can be found on Wikipedia (http://en.wikipedia.org/wiki/Voronoi_diagram). The algorithm using the minimal path on this diagram is described in Luca Antiga's PhD thesis (http://villacamozzi.marionegri.it/~luca/files/AntigaPhDThesis.pdf).
  
 
===Dependencies===
 
===Dependencies===
  
This module depends on the VMTK libraries which are provided in the [[Modules:VMTKSlicerModule|VmtkSlicerModule]]. Therefore the [[Modules:VMTKSlicerModule|VmtkSlicerModule]] has to be installed before the VMTKEasyLevelSetSegmentation module can be used.
+
This module depends on the VMTK libraries which are provided in the [[Modules:VMTKSlicerModule|VmtkSlicerModule]]. Therefore the [[Modules:VMTKSlicerModule|VmtkSlicerModule]] has to be installed before the VMTKCenterlines module can be used.
  
 
===Known bugs & Usability issues===
 
===Known bugs & Usability issues===
Line 92: Line 118:
 
===Source code & documentation===
 
===Source code & documentation===
 
{|
 
{|
|[[Image:Easylevelset_classdiagram.png|thumb|280x280px|Class diagram showing the separation of GUI and logic]]
+
|[[Image:Centerlines_classdiagram.png|thumb|280x280px|Class diagram showing the separation of GUI and logic]]
|[[Image:Fastmarching_pipeline.png|thumb|280x280px|Flow chart showing the VTK/VMTK pipeline of the Fast Marching algorithm]]
+
|[[Image:Centerlines_pipeline.png|thumb|280x280px|Flow chart showing the VTK/VMTK pipeline of the Centerline computation]]
|[[Image:Gac_pipeline.png|thumb|280x280px|Flow chart showing the VTK/VMTK pipeline of the Geodesic Active Contours algorithm]]
 
 
|}
 
|}
VMTKEasyLevelSetSegmentation is a Python Scripted Module. It follows the conventions of the Model View Controller pattern of slicer modules. This implies the separation of logic and GUI.
+
VMTKCenterlines is a Python Scripted Module. It follows the conventions of the Model View Controller pattern of slicer modules. This implies the separation of logic and GUI.
  
The class ''VMTKEasyLevelSetSegmentationGUI'' derives from ''ScriptedModuleGUI'' and saves the current parameters to its own MRML node. The actual calls to the VMTK libraries as well as the Marching Cubes or Volume Rendering methods are performed in the class ''VMTKEasyLevelSetSegmentationLogic''. Several general supporting functions are outsourced in the class ''VMTKEasyLevelSetSegmentationHelper''.
+
The class ''VMTKCenterlinesGUI'' derives from ''ScriptedModuleGUI'' and saves the current parameters to its own MRML node. The actual calls to the VMTK libraries as well as the import and export functionality are performed in the class ''VMTKCenterlinesLogic''. Several general supporting functions are outsourced in the class ''VMTKCenterlinesHelper''.
  
The complete source code is available at a [http://www.nitrc.org/plugins/scmsvn/viewcvs.php/VMTKLevelSetSegmentation/?root=slicervmtklvlst NITRC SVN repository].
+
The complete source code is available at a [http://www.nitrc.org/plugins/scmsvn/viewcvs.php/VMTKCenterlines/?root=slicervmtklvlst NITRC SVN repository].
  
 
== More Information ==  
 
== More Information ==  

Latest revision as of 14:54, 20 April 2010

Home < Modules:VMTKCenterlines

Return to Slicer 3.6 Documentation

Gallery of New Features


Module Name

VMTKCenterlines, part of the Slicervmtk logo.png collection

Main GUI of VMTKCenterlines.
Axial view of a contrast-enhanced three-dimensional image acquired from a MR scanner, showing an AV fistula in an arm. (Courtesy of L. Antiga, Bioengineering Department, Mario Negri Institute, Ranica (BG), Italy and N.R. Planken, Academisch Ziekenhuis Maastricht, the Netherlands.)
A surface model representation of an already existing segmentation after preparation stage.
Resulting centerline representation of the vessel topology.

General Information

Module Type & Category

Type: Scripted Module

Category: Segmentation, Extension

Authors, Collaborators & Contact

  • Author: Daniel Haehn, University of Heidelberg
  • Acknowledgments: Luca Antiga, Mario Negri Institute; Steve Pieper, Isomics Inc.
  • Contact: Daniel Haehn, haehn@bwh.harvard.edu

Module Description

This module provides centerline computation of surface models in 3D Slicer using methods of the geometric analysis functionality of the Vascular Modeling Toolkit (http://www.vmtk.org). Centerlines are the central lumen lines in tubular structures and f.e. can be powerful descriptors of the vessel's topology. The module targets easy-to-use centerline extraction using seed and target points and also enables import and export functionality.

The actual centerline extraction is based on calculating an inner Voronoi diagram by computing the Delaunay tessellation.

This work is part of the NA-MIC VMTK Collaboration.

Official project page: http://www.vmtk.org/Main/VmtkIn3DSlicer

Usage

Installation

This module depends on the VmtkSlicerModule: see this page for installation notes.

The VMTKCenterlines module can be installed using the 3D Slicer extension wizard. The extension is called VMTKCenterlines.

When the module was successfully installed, it is available within 3D Slicer's module selector inside the category Vascular Modeling Toolkit.

Examples, Use Cases

  • Example centerline extraction

The centerline computation requires an existing 3D surface model. This can be obtained using the VMTKEasyLevelSetSegmentation module.

After selecting the existing surface model as input, the second step is to prepare this model. This includes capping holes in the surface and removing unneeded triangles. The surface model color changes to green.

Axial view of a contrast-enhanced three-dimensional image acquired from a MR scanner, showing an AV fistula in an arm. (Courtesy of L. Antiga, Bioengineering Department, Mario Negri Institute, Ranica (BG), Italy and N.R. Planken, Academisch Ziekenhuis Maastricht, the Netherlands.)
A surface model of a segmentation of the original image obtained with the VMTKEasyLevelSetSegmentation module.
This surface model after the preparation stage. Holes in the surface were closed.

Now source and target fiducials have to be placed on the model in the 3D rendering window to specify the centerline routes. The fiducial positioning does not have to be exact because the module calculates the nearest position on the surface model to the input fiducials. After placing the fiducials, the centerline computation can be started. Depending on the surface model size the process can take a couple of minutes.

On completion of the calculation, the inner Voronoi diagram and the corresponding centerlines are visible as polydata models in the 3D rendering window.

The inner Voronoi diagram colored by the solutions of the Eikonal equation obtained by Fast Marching back-tracking along the minimal path. The legend can be displayed using the Colors module.
The centerline representation of the vessel's topology.

A close-up of the Voronoi diagram shows the tiles separating the Voronoi regions. The modules also calculates the radius of the lumen for each point along the centerlines.

A close-up of the Voronoi diagram colored by the maximal inscribed sphere radius [mm].

The extracted centerlines as well as the calculated radii along the centerlines can be exported and imported as a cloud of points to the filesystem.

Tutorials

The following tutorials demonstrate the use of VMTKCenterlines in a pipeline of VMTK modules to extract the centerlines of coronary arteries.

Step-by-step online tutorial: Segmentation of the Right Coronary Artery using VMTK in 3D Slicer. View online here.
Step-by-step tutorial including example dataset: The first slide of the Centerline Extraction tutorial. Download here.

Quick Tour of Features and Use

The graphical user interface of the VMTKCenterlines module consists of five panels.

The GUI of VMTKCenterlines. Click to enlarge.
  • Input panel:

The input surface model can be selected using this panel.

  • Preparation Step panel:

The preparation step includes surface capping and removing unneeded traingles of the input model.

  • Centerline Computation panel:

This step includes the actual centerline extraction. Source and target points can be specified as fiducial lists. At least one source and one target point have to exist but it is possible to use f.e. only one source point and several target points. The centerlines run between these points.

Additionally the output models for the centerlines and the Voronoi diagram can be specified.

  • Export panel:

The module supports the export of the extracted centerlines as cloud of points to the filesystem. It is possible to add a header to these files or additional details like the radii. Inverting the coordinates multiplies the X,Y coordinates by -1.

  • Import panel:

Exported centerlines (clouds of points) can be imported as surface models.

Development

Notes from the Developer(s)

The algorithms provided by VMTK and used by this module are C++ classes implemented using VTK and ITK. More information on Voronoi diagrams can be found on Wikipedia (http://en.wikipedia.org/wiki/Voronoi_diagram). The algorithm using the minimal path on this diagram is described in Luca Antiga's PhD thesis (http://villacamozzi.marionegri.it/~luca/files/AntigaPhDThesis.pdf).

Dependencies

This module depends on the VMTK libraries which are provided in the VmtkSlicerModule. Therefore the VmtkSlicerModule has to be installed before the VMTKCenterlines module can be used.

Known bugs & Usability issues

Follow this link to the VMTK in 3D Slicer bug tracker.

Source code & documentation

Class diagram showing the separation of GUI and logic
Flow chart showing the VTK/VMTK pipeline of the Centerline computation

VMTKCenterlines is a Python Scripted Module. It follows the conventions of the Model View Controller pattern of slicer modules. This implies the separation of logic and GUI.

The class VMTKCenterlinesGUI derives from ScriptedModuleGUI and saves the current parameters to its own MRML node. The actual calls to the VMTK libraries as well as the import and export functionality are performed in the class VMTKCenterlinesLogic. Several general supporting functions are outsourced in the class VMTKCenterlinesHelper.

The complete source code is available at a NITRC SVN repository.

More Information

Acknowledgment

This work was funded by a grant of the Thomas­-Gessmann Foundation part of the Founder Federation for German Science.

References

  • Antiga L, Piccinelli M, Botti L, Ene-Iordache B, Remuzzi A and Steinman DA. An image-based modeling framework for patient-specific computational hemodynamics. Medical and Biological Engineering and Computing, 46: 1097-1112, Nov 2008.
  • D. Hähn. Integration of the vascular modeling toolkit in 3d slicer. SPL, 04 2009. Available online at http://www.spl.harvard.edu/publications/item/view/1728.
  • D. Hähn. Centerline Extraction of Coronary Arteries in 3D Slicer using VMTK based Tools. Master's Thesis. Department of Medical Informatics, University of Heidelberg, Germany. Feb 2010.
  • Piccinelli M, Veneziani A, Steinman DA, Remuzzi A, Antiga L (2009) A framework for geometric analysis of vascular structures: applications to cerebral aneurysms. IEEE Trans Med Imaging. In press.