Difference between revisions of "Modules:EMSegment-TemplateBuilder-3.4"

From Slicer Wiki
Jump to: navigation, search
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Documentation-3.4|Return to Slicer 3.4 Documentation]]
 
[[Documentation-3.4|Return to Slicer 3.4 Documentation]]
 +
 +
[[Announcements:Slicer3.4#Highlights|Gallery of New Features]]
 +
 
__NOTOC__
 
__NOTOC__
 
===Module Name===
 
===Module Name===
Line 5: Line 8:
  
 
{|
 
{|
|[[Image:screenshotBlank.png|thumb|280px|Caption 1]]
+
|[[Image:EMSegment-Workflow.png|thumb|580px|EM Segment Workflow]]
|[[Image:screenshotBlank.png|thumb|280px|Caption 2]]
+
|[[Image:EMSegment-Template.png|thumb|580px|EM Segment Template Builder GUI and EM Segment Result]]
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]
 
 
|}
 
|}
  
Line 30: Line 32:
 
== Usage ==
 
== Usage ==
  
The purpose of the module is to configure the algorithm to automatically segment anatomical structures in medical images. First the user has to specify parameters defining the image protocol and the anatomical structures of interests. This process results in a template that the module uses to automatically segment large data sets. The template is composed of atlas data and a
+
The purpose of the module is to configure the algorithm to automatically segment anatomical structures in medical images. First the user has to specify parameters defining the image protocol and the anatomical structures of interests. This process results in a template that the module uses to automatically segment large data sets. The template is composed of atlas data and a non-trivial collection of parameters for the EMSegment algorithm.   
non-trivial collection of parameters for the EMSegment algorithm.   
 
  
 
Once the parameters are specified, the target images are segmented
 
Once the parameters are specified, the target images are segmented
Line 45: Line 46:
  
 
===Examples, Use Cases & Tutorials===
 
===Examples, Use Cases & Tutorials===
 +
* A full Tutorial for all three EMSegment modules
 +
 +
These slides and data describe the Slicer3 implementation of all three EMSegment modules and demonstrate their use.  A recent (later than 7Jan08) version of Slicer3 is required to run the test data.
 +
 +
[[Media:EMSegTutorial-AHM2008.ppt | Tutorial Slides]] - [[Media:EMSegTutorial-AHM2008.zip | Tutorial Data]]
  
* Note use cases for which this module is especially appropriate, and/or link to examples.
+
* Another detailed training tutorial on EM Segment algorithm and Slicer3 EMSegment Template Builder module  
* Link to examples of the module's use
+
[http://wiki.na-mic.org/Wiki/images/2/2f/AutomaticSegmentation_SoniaPujol_Munich2008.ppt Tutorial Slides] - [http://wiki.na-mic.org/Wiki/images/b/b7/AutomaticSegmentation.tar.gz Training Data]
* Link to any existing tutorials
 
  
 
===Quick Tour of Features and Use===
 
===Quick Tour of Features and Use===
====Steps in the Workflow Wizard====
+
There is a [[Modules:EMSegment-TemplateBuilder:EMSegment-TemplateBuilder-Steps | step-by-step instruction]] with screen shots to describe the Workflow Wizard interface.
 +
Here is the brief version of the steps in the wizard:
 +
 
 
*1/9 Define Parameters Set: Select parameter set or create new parameters
 
*1/9 Define Parameters Set: Select parameter set or create new parameters
 
*2/9 Define Hierarchy: Define a hierarchy of anatomical structures
 
*2/9 Define Hierarchy: Define a hierarchy of anatomical structures
Line 82: Line 89:
  
 
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.  
 
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker.  
 
 
  
 
===Usability issues===
 
===Usability issues===
Line 91: Line 96:
  
 
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.
 
Follow this [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.
 
*2008: Working on a single channel T1 version of the parameter set. See [[media:EM-T1.zip|'''here''']] for the Data and such (20meg).
 
 
  
 
===Source code & documentation===
 
===Source code & documentation===
Line 99: Line 101:
 
[http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/EMSegment/ Links] for the module.
 
[http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/EMSegment/ Links] for the module.
 
*[http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/EMSegment/ View EMSegmenter Code]
 
*[http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/EMSegment/ View EMSegmenter Code]
*API: [http://www.na-mic.org/Slicer/Documentation/Slicer3/html/classvtkEMSegmentMRMLManager.html MRML Manager] | [http://www.na-mic.org/Slicer/Documentation/Slicer3/html/classvtkEMSegmentLogic.html Module Logic] | [http://www.na-mic.org/Slicer/Documentation/Slicer3/html/classvtkEMSegmentGUI.html Module GUI]
+
*API: [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkEMSegmentMRMLManager.html MRML Manager] | [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkEMSegmentLogic.html Module Logic] | [http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkEMSegmentGUI.html Module GUI]
  
 +
== More Information ==
 +
*Some background materials: [http://wiki.na-mic.org/Wiki/index.php/EMSegmenter EMSegmenter history]
 +
*For more information about the EM Segmenter project in Slicer3 [[Slicer3:EM|see the old EMSegment Wiki page here]]
 +
*The old [[Modules:EM-Segmenter-Documentation:FAQ |EMSegmenter FAQ]] contains frequently asked questions about the EMSegment interfaces in Slicer3.
 +
*There is also an old [http://www.na-mic.org/Wiki/index.php/EMSegmenter_Mini-Tutorials EMSegmenter Mini-Tutorials]
  
== More Information ==
 
For more information about the EM Segmenter project in Slicer3 [[Slicer3:EM|see the old EMSegment Wiki page here]]
 
 
===Acknowledgment===
 
===Acknowledgment===
 
Funding for the EMSegmenter module was provided by NAMIC.
 
Funding for the EMSegmenter module was provided by NAMIC.

Latest revision as of 15:09, 19 August 2010

Home < Modules:EMSegment-TemplateBuilder-3.4

Return to Slicer 3.4 Documentation

Gallery of New Features


Module Name

EM Segment Template Builder

EM Segment Workflow
EM Segment Template Builder GUI and EM Segment Result

General Information

Module Type & Category

Type: Interactive

Category: Segmentation

Authors, Collaborators & Contact

  • Kilian Pohl: Harvard/BWH
  • Brad Davis: Kitware, Inc.
  • Sebastien Barre: Kitware, Inc.
  • Yumin Yuan: Kitware, Inc.
  • Polina Golland: MIT
  • Contact: Brad Davis, brad.davis@kitware.com

Module Description

The EMSegment template builder module is the primary Slicer3 interface to the EMSegment algorithm (Pohl et al.), an automatic segmentation algorithm for medical images that previously existed in Slicer 2. The target audience for this module is someone familiar with brain atlases and tissue labels, not a computer scientist. It allows the user to configure the algorithm---step-by-step---to a variety of imaging protocols and anatomical structures, and then apply the algorithm to segment data. Configuration settings are stored in an EMSegment parameters node in the Slicer3 MRML tree. These settings can be saved and later applied to new data via any of the EMSegment interfaces within Slicer3 or the command-line EMSegment executable.

Usage

The purpose of the module is to configure the algorithm to automatically segment anatomical structures in medical images. First the user has to specify parameters defining the image protocol and the anatomical structures of interests. This process results in a template that the module uses to automatically segment large data sets. The template is composed of atlas data and a non-trivial collection of parameters for the EMSegment algorithm.

Once the parameters are specified, the target images are segmented using the EM Segmentation algorithm (Pohl et al.). If the results are satisfactory, the template is saved and can be used later to segment new images (via the GUI or batch processing). If the results are unsatisfactory, the parameters can be modified and the segmentation re-run.

One important aspect of the project is the workflow wizard. This wizard simplifies the module by dividing the complicated template specification task into a number of smaller, intuitive steps.

Examples, Use Cases & Tutorials

  • A full Tutorial for all three EMSegment modules

These slides and data describe the Slicer3 implementation of all three EMSegment modules and demonstrate their use. A recent (later than 7Jan08) version of Slicer3 is required to run the test data.

Tutorial Slides - Tutorial Data

  • Another detailed training tutorial on EM Segment algorithm and Slicer3 EMSegment Template Builder module

Tutorial Slides - Training Data

Quick Tour of Features and Use

There is a step-by-step instruction with screen shots to describe the Workflow Wizard interface. Here is the brief version of the steps in the wizard:

  • 1/9 Define Parameters Set: Select parameter set or create new parameters
  • 2/9 Define Hierarchy: Define a hierarchy of anatomical structures
  • 3/9 Assign Atlas: Assign atlases for anatomical structures
  • 4/9 Select Target Images: Choose the set of images that will be segmented
  • 5/9 Intensity Normalization: Normalize target images
  • 6/9 Specify Intensity Distributions: Define intensity distribution for each anatomical structure
  • 7/9 Edit Node-based Parameters: Specify node-based segmentation parameters
  • 8/9 Edit Registration Parameters: Specify atlas-to-target registration parameters
  • 9/9 Run Segmentation: Save work and apply EM Algorithm to segment target images

Development

The overall design of the EMSegmenter module is described in these slides.

The module is implemented as a programmatic Slicer3 module because it requires a large degree of interaction with the user, the data stored in the MRML tree, and the Slicer3 GUI itself. Because the MRML node structure is rather complicated (for example the anatomical tissue hierarchy and a large number of interdependent nodes) the Logic class is solely responsible for maintaining and accessing these nodes. The Logic class provides an API that the GUI code uses to access and modify data. The Logic class also wraps the algorithm code itself.

Dependencies

Slicer3 base modules.

Known bugs

Follow this link to the Slicer3 bug tracker.

Usability issues

The EMSegmenter can be adapted to many segmentation problems. However, there is no "default" set of parameters that will work for all segmentation problems.

  • Atlas-to-target registration and intensity normalization are very important; it will be most effective to apply these steps using algorithms that are customized to your data. Defaults are provided but they may perform poorly for your data---this will lead to poor segmentation results.

Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.

Source code & documentation

Links for the module.

More Information

Acknowledgment

Funding for the EMSegmenter module was provided by NAMIC.

References

Pohl K, Bouix S, Nakamura M, Rohlfing T, McCarley R, Kikinis R, Grimson W, Shenton M, Wells W. A Hierarchical Algorithm for MR Brain Image Parcellation. IEEE Transactions on Medical Imaging. 2007 Sept;26(9):1201-1212. [bib]