Difference between revisions of "Documentation/4.0/Modules/EMSegmenter"

From Slicer Wiki
Jump to: navigation, search
(Created page with '<!-- ---------------------------- --> {{documentation/{{documentation/version}}/module-header}} <!-- ---------------------------- --> <!-- ---------------------------- --> {{doc…')
 
(Prepend documentation/versioncheck template. See http://na-mic.org/Mantis/view.php?id=2887)
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
<noinclude>{{documentation/versioncheck}}</noinclude>
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-header}}
 
{{documentation/{{documentation/version}}/module-header}}
Line 7: Line 8:
 
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}
 
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}
 
{{documentation/{{documentation/version}}/module-introduction-row}}
 
{{documentation/{{documentation/version}}/module-introduction-row}}
This work is part of the National Alliance for Medical Image Computing (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on NA-MIC can be obtained from the [http://www.na-mic.org/ NA-MIC website].<br>
+
This work was funded by the ARRA Supplement to the Neuroimage Analysis Center (NAC), funded by the National Institutes of Health. Information on NAC can be obtained from the [http://nac.spl.harvard.edu/pages/Overview NAC website].<br>
Author: Kilian Pohl: UPenn <br>
+
Author: Kilian Pohl, UPenn <br>
Contributor1: FIRSTNAME LASTNAME, AFFILIATION<br>
+
Contributor1: Daniel Haehn, UPENN<br>
Contributor2: FIRSTNAME LASTNAME, AFFILIATION<br>
+
Contact: Kilian Pohl, <email>pohl.kilian@gmail.com</email><br>
Contact: Kilian Pohl: UPenn , <email>pohl@csail.mit.edu</email><br>
 
 
{{documentation/{{documentation/version}}/module-introduction-row}}
 
{{documentation/{{documentation/version}}/module-introduction-row}}
 
{{documentation/{{documentation/version}}/module-introduction-logo-gallery
 
{{documentation/{{documentation/version}}/module-introduction-logo-gallery
|Image:Logo-isomics.png|Isomics, Inc. <- Replace this logo with yours
+
|Image:UPenn-logo.png|University of Pennsylvania
|Image:Logo-splnew.jpg|Surgical Planning Laboratory   <-Replace this logo with yours
+
|Image:Logo-splnew.jpg|Surgical Planning Laboratory  
 
}}
 
}}
 
{{documentation/{{documentation/version}}/module-introduction-end}}
 
{{documentation/{{documentation/version}}/module-introduction-end}}
  
<!-- ----------------------------------------------------------------- -->
+
<!-- ---------------------------- -->
<!-- THE FOLLOWING SHOULD BE REMOVED FOR YOUR OWN MODULE DOCUMENTATION -->
+
{{documentation/{{documentation/version}}/module-section|Module Description}}
<!-- ----------------------------------------------------------------- -->
+
 
{{note}}The section above is generated using the following wiki code:
+
[[Image:EMSegmenterLogo.png|thumb|width=200px|Hierarchical Model of the EMSegmenter]]
<pre>
+
This module is designed for users who perform atlas based medical image segmentation. The module can be operated in <B>two</B> modes: <br>
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}
+
An <B>advanced mode (Button: Adjust Parameters)</B> that allows users to parameterize the tool to specific segmentation tasks and a <B>simple mode (Button: Use Existing Setting)</B> which is designed for users who would like to apply the predefined parameterization to new data with a minimal amount of user interaction. One can also apply the parameterization to medical scans via the command-line executable <B>EMSegmentCommandLine</B>. The remainder of this sections describes the work flow of the two modes in further detail:
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}}}}
+
 
{{documentation/{{documentation/version}}/module-introduction-row}}
+
<!-- ---------------------------- -->
This work is part of the National Alliance for Medical Image Computing (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on NA-MIC can be obtained from the [http://www.na-mic.org/ NA-MIC website].<br>
+
{{documentation/{{documentation/version}}/module-section|Use Cases}}
Author: FIRSTNAME LASTNAME, AFFILIATION<br>
+
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. 
Contributor1: FIRSTNAME LASTNAME, AFFILIATION<br>
+
 
Contributor2: FIRSTNAME LASTNAME, AFFILIATION<br>
+
Once the parameters are specified, the target images are segmented
Contact: FIRSTNAME LASTNAME, <email>john@doe.org</email><br>
+
using the EM Segmentation algorithm (Pohl et al. TMI 2007).  If the results are
{{documentation/{{documentation/version}}/module-introduction-row}}
+
satisfactory, the template is saved and can be used later to segment
{{documentation/{{documentation/version}}/module-introduction-logo-gallery
+
new images (via the GUI or batch processing).  If the results are
|Image:Logo-isomics.png|Isomics, Inc. <- Replace this logo with yours
+
unsatisfactory, the parameters can be modified and the segmentation
|Image:Logo-splnew.jpg|Surgical Planning Laboratory  <-Replace this logo with yours
+
re-run.
}}
 
{{documentation/{{documentation/version}}/module-introduction-end}}
 
</pre>
 
<!-- ----------------------------------------------------------------- -->
 
<!-- ----------------------------------------------------------------- -->
 
<!-- ----------------------------------------------------------------- -->
 
  
 +
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. The wizard allows to [[EMSegmenter-CreateTask|create tasks]] and to use them to analyze data sets.
  
 +
There are multiple [[EMSegmenter-Tasks|'''predefined tasks''']] which are ready to use.
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-section|Module Description}}
+
{{documentation/{{documentation/version}}/module-section|Tutorials}}
Here comes a description what the module is good for. Explain briefly how it works and point to the [[documentation/{{documentation/version}}/Modules/{{documentation/modulename}}#References|references]] giving more details on the algorithm.
+
 
 +
* EMSegmenter Tutorial for 3D Slicer 3.6.2
 +
** [[Media:EMSegmenterTutorialSimpleMode-2010-Dec.pdf | Simple Mode]] - [[Media:MRIHumanBrain_T1_aligned.nrrd | Tutorial Data]]
 +
** [[Media:EMSegmenterTutorialAdvancedMode-2010-Dec.pdf | Advanced Mode]] - [[Media:MRIHumanBrain_T1_aligned.nrrd | Tutorial Data]]
  
<!-- ----------------------------------------------------------------- -->
+
* EMSegmenter Tutorial for 3D Slicer 3.6.3
<!-- THE FOLLOWING SHOULD BE REMOVED FOR YOUR OWN MODULE DOCUMENTATION -->
+
** [[Media:EMSegmenterTutorialSimpleMode-Slicer-3.6.3-1.pdf | Simple Mode]] - [[Media:MRIHumanBrain_T1_aligned.nrrd | Tutorial Data]]
<!-- ----------------------------------------------------------------- -->
+
** [[Media:EMSegmenterTutorialAdvancedMode-Slicer-3.6.3-1.pdf | Advanced Mode]] - [[Media:MRIHumanBrain_T1_aligned.nrrd | Tutorial Data]]
If you are documenting a CLI, the description should be extracted from the corresponding XML description. This could be done automatically using the following wiki template:<pre>{{documentation/{{documentation/version}}/module-description|xmlurl=http://path/to/YOURMODULE.xml }}</pre>
 
  
If your module is available in Slicer repository, the following template could be useful to obtain the corresponding URL:
 
<pre>{{documentation/{{documentation/version}}/module-cli-xmlurl|{{documentation/modulename}}|SVNREVISION}}</pre>
 
  
Using this later template, the final syntax would be:
+
* A full Tutorial for the two EMSegment modules
<pre>{{documentation/{{documentation/version}}/module-description|xmlurl={{documentation/{{documentation/version}}/module-cli-xmlurl|{{documentation/modulename}}|SVNREVISION}} }}</pre>
 
<!-- ----------------------------------------------------------------- -->
 
<!-- ----------------------------------------------------------------- -->
 
<!-- ----------------------------------------------------------------- -->
 
  
 +
These slides and data describe the Slicer3 implementation of the two EMSegment GUI and command-line modules and demonstrate their use.
  
<!-- ---------------------------- -->
+
[[Media:EMSegTutorial-AHM2008.ppt | Tutorial Slides]] - [[Media:EMSegTutorial-AHM2008.zip | Tutorial Data]]
{{documentation/{{documentation/version}}/module-section|Use Cases}}
 
Most frequently used for these scenarios:
 
  
* Use Case 1:
+
* Another detailed training tutorial on EMSegment algorithm and the Slicer3 EMSegment module.
* Use Case 2:
 
  
<!-- ---------------------------- -->
+
[http://wiki.na-mic.org/Wiki/images/2/2f/AutomaticSegmentation_SoniaPujol_Munich2008.ppt  Tutorial Slides] -  
{{documentation/{{documentation/version}}/module-section|Tutorials}}
+
[http://wiki.na-mic.org/Wiki/images/b/b7/AutomaticSegmentation.tar.gz  Training Data]
Links to tutorials that use this module
 
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Panels and their use}}
 
{{documentation/{{documentation/version}}/module-section|Panels and their use}}
  
A list of all the panels in the interface, their features, what they mean, and how to use them. For instance:
+
[[image:EMwithAtlas-2011-11-25.png|400px]]
 +
 
 +
=== Simple Mode ===
 +
The work flow is defined by only two steps.
 +
==== Step 1: Define Task ====
 +
Select an already existing task and click on the "Use Existing Settings" button to use for the simple mode in the pop up window.
 +
A MRML file defining parameters of the algorithm specific to the task as well atlas data are automatically downloaded for existing Tasks.
 +
==== Step 2: Define Input Channels  ====
 +
In this step the user specifies the scans to be segmented as well as the check list associated with the preprocessing.
 +
A click on the 'Segment' button is enough to start the pre-processing and the subsequent segmentation.
  
{|style="width: 100%"
+
=== Advanced Mode ===
|
+
Unlike the Simple mode, the advanced mode is defined by nine steps which one can navigate via the "Back", "Next", or "Segment" button. The Segment button jumps right away to the last step of the work flow and segments the medical scans into the structures of interests. 
* Input panel1:
+
==== Step 1: Define Task ====
** First input
+
Select an already existing task or define a new one. Click on the button "Adjust Parameters" for the advanced mode in the pop up window. A MRML file defining parameters of the algorithm specific to the task as well atlas data are automatically downloaded for existing Tasks.
** Second input
+
==== Step 2: Define Input Channel  ====
* Parameters panel:
+
Define the number of input channels as well as the name of each channel and the corresponding scan associated with the channel. If using multiple input channel(scans) which are not aligned with each other then check on the check-box button "Align input scans".
** First parameter
+
==== Step 3: Define Anatomical Tree  ====
** Second parameter
+
The user specifies the hierarchical relationship between the anatomical structures. The tree will refine the complex segmentation task into a set of easier segmentation problems. A sub-classes is added to an existing structure by right-clicking on the structure and selecting "Add sub-class". The name, label, and color of a structure are modified by selecting the structure in the tree and then defining these attributes in the panel below.
* Output panel:
+
==== Step 4: Define Atlas  ====
** First output
+
In this step, the user links the probabilistic atlases to the anatomical structures in the tree by first highlighting the structure and then selecting the volume representing the probability map of that structure in the panel below. We note that the probabilistic atlas of structures with sub-structures is defined by the atlases of the sub-structures and thus is not explicitly defined.
** Second output
+
==== Step 5: Edit Registration Parameters ====
* Viewing panel:
+
The atlas is in general not aligned to the specific patient scans defined in Step 2. The user assigns in this step the scans of the atlas corresponding to the input channels in Step 2 as well as the type of registration (Affine / Deformable) and the interpolation.
| align="right" |
+
==== Step 6: Define Preprocessing ====  
[[Image:screenshotBlankNotOptional.png|thumb|280px|Name of panel 1]]
+
[[Image:EMSegmenter_DisplayClassDistribution.png | thumb|width=200px|Graph showing intensity distributions of a set of anatomical structures]] This step is defined via a task specific Tcl file that configures the preprocessing pipeline of the input scans and the atlas. Complete the step by going through the task specific check list, clicking on the 'Next' button, and clicking on the 'Yes' button of the pop up window.  One can define a new preprocessing pipeline by specifying the pipeline via a Tcl file, placing the file in Slicer3-build/share/Slicer3/Modules/EMSegment/Tasks and listing the file name in the task specific MRML file.
|-
+
 
|
+
==== Step 7: Specify Intensity Distribution ====
* Input panel2:
+
Refining the intensity distribution for each structure of interest is often a critical step in the parameterization of the segmentation algorithm. It includes an overview window that shows the distribution in a 1D and 2D graph (press "Plot Distributions" to view the graph). By placing the mouse cursor in the 2D viewers the corresponding intensity value is shown in the graph.
** First input
+
 
** Second input
+
==== Step 8: Edit Node-based Parameters ====
* Parameters panel:
+
Users specify the relative to weight of a node in the tree with respect to other structures which are children of the same parent node. The first tab also specifies the weight of the input channels as well as the atlases. The value 'Alpha' specifies the smoothing applied to the structure (via MRFs). The second tab (Stopping Condition) lists the number of iterations associated with the segmentation task. By default, the Bias iteration is set to -1 which means that it is performed each iteration. If the value is greater -1 then the inhomogeneity computation is stopped after n iterations. The third tab specifies printing out intermediate results, which are saved in the working directory specified in the next step
** First parameter
+
==== Step 9: Define Miscellaneous Parameters ====
** Second parameter
+
This panels lists the general parameters necessary for segmenting images. Users can specify a region of interest to speed up the segmentation algorithm. Pressing the 'Segment' button creates a label map of the anatomical structures.
* Output panel:
 
** First output
 
** Second output
 
* Viewing panel:
 
| align="right" |
 
[[Image:screenshotBlankNotOptional.png|thumb|280px|Name of panel 2]]
 
|}
 
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Similar Modules}}
 
{{documentation/{{documentation/version}}/module-section|Similar Modules}}
* Point to other modules that have similar functionality
+
Please visit the [[ Documentation/4.0#Segmentation | segmentation section ]] for similar modules  
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|References}}
 
{{documentation/{{documentation/version}}/module-section|References}}
Publications related to this module go here. Links to pdfs would be useful.
+
*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]]
For extensions: link to the source code repository and additional documentation
 
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-section|Information for Developers}}
+
{{documentation/{{documentation/version}}/module-section|Information for Developers}}  
{{documentation/{{documentation/version}}/module-developerinfo|ModuleTemplate|type=Interactive|category=Example}}
+
{{documentation/{{documentation/version}}/module-developerinfo}}
 
 
 
 
<!-- ----------------------------------------------------------------- -->
 
<!-- THE FOLLOWING SHOULD BE REMOVED FOR YOUR OWN MODULE DOCUMENTATION -->
 
<!-- ----------------------------------------------------------------- -->
 
{{note}}The section above is generated using the following wiki code:
 
<pre>
 
{{documentation/{{documentation/version}}/module-section|Information for Developers}}
 
{{documentation/{{documentation/version}}/module-developerinfo|ModuleTemplate|type=Interactive|category=Example}}
 
</pre>
 
 
 
If you are documenting a CLI, the category should be extracted from the corresponding XML description. This could be done automatically using the following wiki template:<pre>{{documentation/{{documentation/version}}/module-category|xmlurl=http://path/to/YOURMODULENAME.xml }}</pre>
 
 
 
If your module is available in Slicer repository, the following template could be useful to obtain the corresponding URL:
 
<pre>{{documentation/{{documentation/version}}/module-cli-xmlurl|{{documentation/modulename}}|SVNREVISION}}</pre>
 
 
 
Using this later template, the final syntax would be:
 
<pre>{{documentation/{{documentation/version}}/module-category|xmlurl={{documentation/{{documentation/version}}/module-cli-xmlurl|{{documentation/modulename}}|SVNREVISION}} }}</pre>
 
<!-- ----------------------------------------------------------------- -->
 
<!-- ----------------------------------------------------------------- -->
 
<!-- ----------------------------------------------------------------- -->
 
 
 
  
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-footer|category=Example}}
+
{{documentation/{{documentation/version}}/module-footer}}
 
<!-- ---------------------------- -->
 
<!-- ---------------------------- -->

Latest revision as of 07:28, 14 June 2013

Home < Documentation < 4.0 < Modules < EMSegmenter


For the latest Slicer documentation, visit the read-the-docs.



Introduction and Acknowledgements

This work was funded by the ARRA Supplement to the Neuroimage Analysis Center (NAC), funded by the National Institutes of Health. Information on NAC can be obtained from the NAC website.
Author: Kilian Pohl, UPenn
Contributor1: Daniel Haehn, UPENN
Contact: Kilian Pohl, <email>pohl.kilian@gmail.com</email>

University of Pennsylvania  
Surgical Planning Laboratory  

Module Description

Hierarchical Model of the EMSegmenter

This module is designed for users who perform atlas based medical image segmentation. The module can be operated in two modes:
An advanced mode (Button: Adjust Parameters) that allows users to parameterize the tool to specific segmentation tasks and a simple mode (Button: Use Existing Setting) which is designed for users who would like to apply the predefined parameterization to new data with a minimal amount of user interaction. One can also apply the parameterization to medical scans via the command-line executable EMSegmentCommandLine. The remainder of this sections describes the work flow of the two modes in further detail:

Use Cases

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. TMI 2007). 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. The wizard allows to create tasks and to use them to analyze data sets.

There are multiple predefined tasks which are ready to use.

Tutorials


  • A full Tutorial for the two EMSegment modules

These slides and data describe the Slicer3 implementation of the two EMSegment GUI and command-line modules and demonstrate their use.

Tutorial Slides - Tutorial Data

  • Another detailed training tutorial on EMSegment algorithm and the Slicer3 EMSegment module.

Tutorial Slides - Training Data

Panels and their use

EMwithAtlas-2011-11-25.png

Simple Mode

The work flow is defined by only two steps.

Step 1: Define Task

Select an already existing task and click on the "Use Existing Settings" button to use for the simple mode in the pop up window. A MRML file defining parameters of the algorithm specific to the task as well atlas data are automatically downloaded for existing Tasks.

Step 2: Define Input Channels

In this step the user specifies the scans to be segmented as well as the check list associated with the preprocessing. A click on the 'Segment' button is enough to start the pre-processing and the subsequent segmentation.

Advanced Mode

Unlike the Simple mode, the advanced mode is defined by nine steps which one can navigate via the "Back", "Next", or "Segment" button. The Segment button jumps right away to the last step of the work flow and segments the medical scans into the structures of interests.

Step 1: Define Task

Select an already existing task or define a new one. Click on the button "Adjust Parameters" for the advanced mode in the pop up window. A MRML file defining parameters of the algorithm specific to the task as well atlas data are automatically downloaded for existing Tasks.

Step 2: Define Input Channel

Define the number of input channels as well as the name of each channel and the corresponding scan associated with the channel. If using multiple input channel(scans) which are not aligned with each other then check on the check-box button "Align input scans".

Step 3: Define Anatomical Tree

The user specifies the hierarchical relationship between the anatomical structures. The tree will refine the complex segmentation task into a set of easier segmentation problems. A sub-classes is added to an existing structure by right-clicking on the structure and selecting "Add sub-class". The name, label, and color of a structure are modified by selecting the structure in the tree and then defining these attributes in the panel below.

Step 4: Define Atlas

In this step, the user links the probabilistic atlases to the anatomical structures in the tree by first highlighting the structure and then selecting the volume representing the probability map of that structure in the panel below. We note that the probabilistic atlas of structures with sub-structures is defined by the atlases of the sub-structures and thus is not explicitly defined.

Step 5: Edit Registration Parameters

The atlas is in general not aligned to the specific patient scans defined in Step 2. The user assigns in this step the scans of the atlas corresponding to the input channels in Step 2 as well as the type of registration (Affine / Deformable) and the interpolation.

Step 6: Define Preprocessing

Graph showing intensity distributions of a set of anatomical structures

This step is defined via a task specific Tcl file that configures the preprocessing pipeline of the input scans and the atlas. Complete the step by going through the task specific check list, clicking on the 'Next' button, and clicking on the 'Yes' button of the pop up window. One can define a new preprocessing pipeline by specifying the pipeline via a Tcl file, placing the file in Slicer3-build/share/Slicer3/Modules/EMSegment/Tasks and listing the file name in the task specific MRML file.

Step 7: Specify Intensity Distribution

Refining the intensity distribution for each structure of interest is often a critical step in the parameterization of the segmentation algorithm. It includes an overview window that shows the distribution in a 1D and 2D graph (press "Plot Distributions" to view the graph). By placing the mouse cursor in the 2D viewers the corresponding intensity value is shown in the graph.

Step 8: Edit Node-based Parameters

Users specify the relative to weight of a node in the tree with respect to other structures which are children of the same parent node. The first tab also specifies the weight of the input channels as well as the atlases. The value 'Alpha' specifies the smoothing applied to the structure (via MRFs). The second tab (Stopping Condition) lists the number of iterations associated with the segmentation task. By default, the Bias iteration is set to -1 which means that it is performed each iteration. If the value is greater -1 then the inhomogeneity computation is stopped after n iterations. The third tab specifies printing out intermediate results, which are saved in the working directory specified in the next step

Step 9: Define Miscellaneous Parameters

This panels lists the general parameters necessary for segmenting images. Users can specify a region of interest to speed up the segmentation algorithm. Pressing the 'Segment' button creates a label map of the anatomical structures.

Similar Modules

Please visit the segmentation section for similar modules

References

Information for Developers