Difference between revisions of "Modules:EM-Segmenter-Documentation"

From Slicer Wiki
Jump to: navigation, search
(Replaced content with 'The content of this page has been copied to http://www.slicer.org/slicerWiki/index.php/Modules:EM-Segmenter-Documentation-3.2 . This page can be deleted now.')
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{|class="wikitable2"
+
The content of this page has been copied to
|[[Image:EMSVisualizeTutorialResultsData.png|thumb|280px|EMSegmenter Applied to MR T1 & T2 tutorial data]]
+
http://www.slicer.org/slicerWiki/index.php/Modules:EM-Segmenter-Documentation-3.2 .
|[[Image:EMSegment31Structures.png|thumb|280px|Segmentation of brain structures using EMSegmenter]]
 
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]
 
|}
 
[[Documentation|Return to Slicer Documentation]]
 
__NOTOC__
 
===Module Name===
 
MyModule
 
  
{|
+
This page can be deleted now.
|[[Image:EMSVisualizeTutorialResultsData.png|thumb|280px|EMSegmenter Applied to MR T1 & T2 tutorial data]]
 
|[[Image:EMSegment31Structures.png|thumb|280px|Segmentation of brain structures using EMSegmenter]]
 
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]
 
|}
 
 
 
== General Information ==
 
===Module Type & Category===
 
 
 
Type: Interactive Module (Template Builder), CLI Module (EMSegment Simple), and Command Line Executable
 
 
 
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 goal of this project is the creation of interfaces in Slicer3 that integrate the EMSegment algorithm (Pohl et al.), an automatic segmentation algorithm for medical images that previously existed in Slicer 2. As in Slicer 2, the user is able to adjust the algorithm to a variety of imaging protocols as well as anatomical structures and run the segmenter on large data sets. Three views or interfaces to the algorithm are available: a wizard-based module for building and editing parameter sets, a simplified "one-click" GUI module, and a command line interface for script and batch processing.
 
 
 
As of January, 2008, working versions of all EMSegment interfaces are complete and have been checked into the Slicer3 SVN repository. Recent development effort has focused on providing simplified interfaces to the algorithm, reducing assumptions about input data, testing, and validation. The module was demonstrated at the NAMIC All-Hands meetings in Salt Lake City (2007 and 2008). A tutorial has been developed and is available from this page.
 
 
 
====EMSegment Workflow Module====
 
 
 
The EMSegment worfklow module is the primary Slicer3 interface to the EMSegment algorithm.  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.   
 
 
 
A similar EMSegment module is available in Slicer2.6.  The intent of
 
this project is to implement a Slicer3 module with similar
 
functionality while also improving the graphical user interface (GUI).
 
While the GUI and data structure (MRML) code was completely rewritten
 
for the Slicer3 module, the algorithm code was not modified.
 
 
 
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.
 
 
 
====Steps in EMSegment Workflow====
 
*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
 
 
 
====EMSegment Command-line Executable====
 
 
 
The EMSegment command-line executable is used to simplify the processing of large collections of images.  The primary function of the '''work flow''' module is to step the user through the process of calibrating, via algorithm parameters, the segmentation algorithm to a particular set of input data.  However, once a successful collection of parameters is established, the user will commonly want to bypass this detailed calibration process when segmenting new images.  The command-line executable provides this batch processing capability.
 
 
 
The executable is included in the Slicer3 distribution.
 
 
 
The interface to the executable is both simple and flexible.  It is simple because the number of command-line parameters is minimized---only a MRML scene (containing algorithm parameters), a target image (or multiple target images, e.g., T1 and T2), and an output labelmap image need to be specified.  It is flexible because any EM algorithm parameter can be modified, within the MRML scene, via the EMSegment GUI interface.
 
 
 
The interface is under construction and subject to change; [[Modules:EM-Segmenter-Documentation:CommandLineInterface | here is the current version]].
 
 
 
== Usage ==
 
 
 
===Examples, Use Cases & Tutorials===
 
 
 
* Note use cases for which this module is especially appropriate, and/or link to examples.
 
* Link to examples of the module's use
 
* Link to any existing tutorials
 
 
 
===Quick Tour of Features and Use===
 
List all the panels in your interface, their features, what they mean, and how to use them. For instance:
 
 
 
* '''Input panel:'''
 
* '''Parameters panel:'''
 
* '''Output panel:'''
 
* '''Viewing panel:'''
 
 
 
== Development ==
 
 
 
The overall design of the EMSegmenter module is described in [[Media:EMSegTutorial-AHM2008.ppt | 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===
 
 
 
Slicer base modules.
 
 
 
===Known bugs===
 
 
 
Follow this [http://na-mic.org/Mantis/main_page.php 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 [http://na-mic.org/Mantis/main_page.php link] to the Slicer3 bug tracker. Please select the '''usability issue category''' when browsing or contributing.
 
 
 
===Source code & documentation===
 
 
 
Customize following [http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/EMSegment/ links] for your module.
 
*[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]
 
 
 
== More Information ==
 
For more information about the EM Segmenter project in Slicer3 [[Slicer3:EM|see the old EMSegment Wiki page here]]
 
 
 
===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. [http://www.slicer.org/pages/Special:PubDB_View?dspaceid=608 A Hierarchical Algorithm for MR Brain Image Parcellation.] IEEE Transactions on Medical Imaging. 2007 Sept;26(9):1201-1212.
 
[[http://people.csail.mit.edu/pohl/publications/journal-citation-bib.html#pohl07_3 bib]]
 

Latest revision as of 01:48, 20 August 2010

Home < Modules:EM-Segmenter-Documentation

The content of this page has been copied to http://www.slicer.org/slicerWiki/index.php/Modules:EM-Segmenter-Documentation-3.2 .

This page can be deleted now.