Difference between revisions of "Modules:Plastimatch"

From Slicer Wiki
Jump to: navigation, search
(Created page with 'Return to Slicer 3.6 Documentation Gallery of New Features __NOTOC__ ===Module Name=== MyModule {| |[[Image:screen…')
 
 
(73 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Documentation-3.6|Return to Slicer 3.6 Documentation]]
 
[[Documentation-3.6|Return to Slicer 3.6 Documentation]]
 
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]]
 
  
 
__NOTOC__
 
__NOTOC__
===Module Name===
+
===Plastimatch > B-spline Deformable Registartion===
MyModule
 
  
 
{|
 
{|
|[[Image:screenshotBlankNotOptional.png|thumb|280px|User Interface]]
+
|[[Image:plastimatch_image_1.png|thumb|280px|Before Registration]]
|[[Image:screenshotBlank.png|thumb|280px|Output]]
+
|[[Image:plastimatch_image_2.png|thumb|280px|After Registration]]
|[[Image:screenshotBlank.png|thumb|280px|Caption]]
 
 
|}
 
|}
  
Line 16: Line 12:
 
===Module Type & Category===
 
===Module Type & Category===
  
Type: Interactive or CLI
+
Type: CLI
  
Category: Base or (Filtering, Registration, ''etc.'')
+
Category: Plastimatch
  
 
===Authors, Collaborators & Contact===
 
===Authors, Collaborators & Contact===
* Author1: Affiliation & logo, if desired
+
* Authors: See COPYRIGHT.TXT contained within the package
* Contributor1: Affiliation & logo, if desired
+
* Contact: Greg Sharp, Department of Radiation Oncology, Massachusetts General Hospital (gcsharp@partners.org)
* Contributor2: Affiliation & logo, if desired
+
* Web page: http://plastimatch.org
* Contact: name, email
 
  
 
===Module Description===
 
===Module Description===
Overview of what the module does goes here.
 
  
== Usage ==
+
This is the plastimatch automatic (B-spline) deformable image registration module.  It includes a multi-stage, multi-resolution pipeline, as well as multicore and GPU acceleration.  Compared to other B-spline methods in 3d slicer, the plastimatch registration method might offer:
  
===Use Cases, Examples===
+
# superior accuracy for CT-CT (or CT-CBCT) registration
 +
# faster results for MSE registration
  
This module is especially appropriate for these use cases:
+
However, to date there have been no rigorous comparisons of the various 3D Slicer registration methods.
  
* Use Case 1:
+
Examples of how this module is being used:
* Use Case 2:
 
  
Examples of the module in use:
+
* Intra-subject registration for adaptive radiotherapy
 +
* Inter-subject registration for automatic segmentation
  
* Example 1
+
== Usage ==
* Example 2
 
  
 
===Tutorials===
 
===Tutorials===
  
Links to tutorials explaining how to use this module:
+
{|
 
+
|[[Image:plastimatch_tutorial_ppt.png|thumb|280px|[http://forge.abcd.harvard.edu/gf/download/frsrelease/110/1023/3D_Slicer_Plastimatch_Registration_Tutorial.ppt Download tutorial]]]
* Tutorial 1
+
|[[Image:plastimatch_tutorial_data.png|thumb|230px|[http://forge.abcd.harvard.edu/gf/download/frsrelease/85/1004/rider-lung-images.tar.gz Download tutorial data]]]
** Data Set 1
+
|}
  
 
===Quick Tour of Features and Use===
 
===Quick Tour of Features and Use===
  
A list panels in the interface, their features, what they mean, and how to use them. For instance:
 
  
 
{|
 
{|
 
|
 
|
* '''Input panel:'''
+
* '''Input/Output panel:'''
** '''First input'''
+
** '''Fixed Volume:''' Here you choose the "fixed image", which is the reference image.
** '''Second input'''
+
** '''Moving Volume:''' Here you choose the "moving image", which will be warped to match the fixed image.
* '''Parameters panel:'''
+
** '''Output Volume:''' Here you choose where to put the warped image.  You can replace an existing image in the scene, or create a new image.
** '''First parameter'''
+
** '''Cost Function:''' Here you can choose either Mean-squared error (MSE) for unimodal registration, or Mutual Information (MI) for multimodal registration.
** '''Second parameter'''
+
** '''Hardware:''' Here you can choose either GPU for CUDA-accelerated registration, or CPU for multicore-accelerated registration.
* '''Output panel:'''
+
* '''Stage 0 panel:''' Stage 0 is the a pre-alignment stage, which uses either a translation, rigid transform, or affine transform to make a rough alignment of the moving image to the fixed image.  The default is not to do pre-alignment.  If your images are reasonably well aligned you can keep this option off, which makes plastimatch run faster.  But generally it doesn't hurt to enable Stage 0.
** '''First output'''
+
** '''Enable Stage 0:'''  Click on this checkbox to enable the pre-alignment stage.
** '''Second output'''
+
** '''Image Subsampling Rate:'''  This option is specified as three integers, separated by commas.  It tells plastimatch to subsample the images in the (x,y,z) dimensions by this amount for this stage.  This is one of the methods that plastimatch implements multi-resolution registration. by cascading stages of different subsampling rates.
* '''Viewing panel:'''
+
** '''Max Iterations:''' This option controls how many iterations of B-spline registration will be run in this stage.  Usually there is no benefit beyond 200 iterations.  Also, there is usually no harm in running extra iterations, except that it takes longer.
|[[Image:screenshotBlankNotOptional.png|thumb|280px|User Interface]]
+
** '''Transformation:''' This option controls whether the pre-alignment uses a translation (3 DOF), a rigid transform (6 DOF), or an affine transform (12 DOF).  Generally speaking, translation is recommended unless the images are extremely different.
 +
* '''Stage 1 panel:''' Stage 1 is the first stage of non-rigid registration.  The plastimatch plugin will always do at least one non-rigid stage.
 +
** '''Image Subsampling Rate:'''  This option is specified as three integers, separated by commas.  It tells plastimatch to subsample the images in the (x,y,z) dimensions by this amount for this stage.  This is one of the methods that plastimatch implements multi-resolution registration. by cascading stages of different subsampling rates.
 +
** '''Max Iterations:''' This option controls how many iterations of B-spline registration will be run in this stage.  Usually there is no benefit beyond 200 iterations.  Also, there is usually no harm in running extra iterations, except that it takes longer.
 +
** '''Grid Spacing:''' The grid spacing parameter is a floating point number which controls the size of the B-spline control grid, in mm.  Larger spacing means a smoother registration, while smaller spacing means a finer registration.
 +
* '''Stage 2 panel:''' Stage 2 is an optional second round of non-rigid registration.  If you get good results after stage 1, you might try stage 2 to further improve the results.  However, enabling stage 2 increases the time required to perform the registration.
 +
** '''Enable Stage 2:'''  Click on this checkbox to enable stage 2.
 +
** '''Image Subsampling Rate:'''  This option is specified as three integers, separated by commas.  It tells plastimatch to subsample the images in the (x,y,z) dimensions by this amount for this stage.  This is one of the methods that plastimatch implements multi-resolution registration. by cascading stages of different subsampling rates.
 +
** '''Max Iterations:''' This option controls how many iterations of B-spline registration will be run in this stage.  Usually there is no benefit beyond 200 iterations.  Also, there is usually no harm in running extra iterations, except that it takes longer.
 +
** '''Grid Spacing:''' The grid spacing parameter is a floating point number which controls the size of the B-spline control grid, in mm.  Larger spacing means a smoother registration, while smaller spacing means a finer registration.
 +
|[[Image:plastimatch_bspline_gui.png|thumb|380px|User Interface]]
 
|}
 
|}
  
Line 73: Line 76:
 
===Notes from the Developer(s)===
 
===Notes from the Developer(s)===
  
Algorithms used, library classes depended upon, use cases, etc.
+
Developer-oriented documentation is found on the plastimatch web site: http://plastimatch.org
  
 
===Dependencies===
 
===Dependencies===
  
Other modules or packages that are required for this module's use.
+
This module has no dependencies.
  
 
===Tests===
 
===Tests===
  
On the [http://www.cdash.org/CDash/index.php?project=Slicer3 Dashboard], these tests verify that the module is working on various platforms:
+
Plastimatch features approximately 100 test cases.
 
 
* MyModuleTest1 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest1.cxx]
 
* MyModuleTest2 [http://viewvc.slicer.org/viewcvs.cgi/trunk MyModuleTest2.cxx]
 
  
 
===Known bugs===
 
===Known bugs===
  
Links to known bugs in the Slicer3 bug tracker
+
* http://forge.abcd.harvard.edu/gf/project/plastimatch/tracker/?action=TrackerItemBrowse&tracker_id=450
  
* [http://www.na-mic.org/Bug/view.php?id=000 Bug 000: description]
+
===Usability issues===
  
 +
Please report usability issues to the bug tracker.
  
===Usability issues===
+
* http://forge.abcd.harvard.edu/gf/project/plastimatch/tracker/?action=TrackerItemBrowse&tracker_id=450
  
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===
  
===Source code & documentation===
+
We recommended to download the latest source code from subversion:
  
Links to the module's source code:
+
*[http://forge.abcd.harvard.edu/gf/project/plastimatch/ Project page]
 +
*[http://forge.abcd.harvard.edu/gf/project/plastimatch/scmsvn/?action=AccessInfo Source download (svn access)]
  
Source code:
+
Documentation:
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.cxx ]
+
*http://plastimatch.org
*[http://viewvc.slicer.org/viewcvs.cgi/trunk file.h ]
 
 
Doxygen documentation:
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classes.html class1]
 
  
 
== More Information ==  
 
== More Information ==  
 +
 +
===About plastimatch===
 +
Plastimatch is an open source software for deformable image registration. It is designed for high-performance volumetric registration of medical images, such as X-ray computed tomography (CT), magnetic resonance imaging (MRI), and positron emission tomography (PET). Software features include:
 +
 +
* B-spline method for deformable image registration (GPU and multicore accelerated)
 +
* Demons method for deformable image registration (GPU accelerated)
 +
* ITK-based algorithms for translation, rigid, affine, demons, and B-spline registration
 +
* Pipelined, multi-stage registration framework with seamless conversion between most algorithms and transform types
 +
* Landmark-based deformable registration using thin-plate splines for global registration
 +
* Landmark-based deformable registration using radial basis functions for local corrections
 +
* Broad support for 3D image file formats (using ITK), including Dicom, Nifti, NRRD, MetaImage, and Analyze
 +
* Dicom and DicomRT import and export
 +
* XiO import and export
 +
* Plugins for 3D Slicer
 +
 +
Plastimatch also features two handy utilities which are not directly related to image registration:
 +
 +
* FDK cone-beam CT reconstruction (GPU and multicore accelerated)
 +
* Digitally reconstructed radiograph (DRR) generation (GPU and multicore accelerated)
  
 
===Acknowledgment===
 
===Acknowledgment===
Include funding and other support here.
+
National Institutes of Health<br />
 +
NIH / NCI 6-PO1 CA 21239<br />
 +
Federal share of program income earned by MGH on C06CA059267
 +
 
 +
Progetto Rocca Foundation<br />
 +
A collaboration between MIT and Politecnico di Milano
  
 
===References===
 
===References===
Publications related to this module go here. Links to pdfs would be useful.
+
 
 +
* G Sharp, N Kandasamy, H Singh, M Folkert, "GPU-based streaming architectures for fast cone-beam CT image reconstruction and demons deformable registration," Physics in Medicine and Biology, 52(19), pp 5771-83, 2007.  
 +
* V Boldea, G Sharp, SB Jiang, D Sarrut, "4D-CT lung motion estimation with deformable registration: Quantification of motion nonlinearity and hysteresis," Medical Physics, 33(3), pp 1008-18, 2008.
 +
* Z Wu, E Rietzel, V Boldea, D Sarrut, G Sharp, "Evaluation of deformable registration of patient lung 4DCT with sub-anatomical region segmentations," Medical Physics, 35(2), pp 775-81, 2008.
 +
* G Sharp et al. "Plastimatch - An open source software suite for radiotherapy image processing," Proceedings of the XVIth International Conference on the use of Computers in Radiotherapy, May, 2010.

Latest revision as of 21:41, 14 February 2011

Home < Modules:Plastimatch

Return to Slicer 3.6 Documentation


Plastimatch > B-spline Deformable Registartion

Before Registration
After Registration

General Information

Module Type & Category

Type: CLI

Category: Plastimatch

Authors, Collaborators & Contact

  • Authors: See COPYRIGHT.TXT contained within the package
  • Contact: Greg Sharp, Department of Radiation Oncology, Massachusetts General Hospital (gcsharp@partners.org)
  • Web page: http://plastimatch.org

Module Description

This is the plastimatch automatic (B-spline) deformable image registration module. It includes a multi-stage, multi-resolution pipeline, as well as multicore and GPU acceleration. Compared to other B-spline methods in 3d slicer, the plastimatch registration method might offer:

  1. superior accuracy for CT-CT (or CT-CBCT) registration
  2. faster results for MSE registration

However, to date there have been no rigorous comparisons of the various 3D Slicer registration methods.

Examples of how this module is being used:

  • Intra-subject registration for adaptive radiotherapy
  • Inter-subject registration for automatic segmentation

Usage

Tutorials

Quick Tour of Features and Use

  • Input/Output panel:
    • Fixed Volume: Here you choose the "fixed image", which is the reference image.
    • Moving Volume: Here you choose the "moving image", which will be warped to match the fixed image.
    • Output Volume: Here you choose where to put the warped image. You can replace an existing image in the scene, or create a new image.
    • Cost Function: Here you can choose either Mean-squared error (MSE) for unimodal registration, or Mutual Information (MI) for multimodal registration.
    • Hardware: Here you can choose either GPU for CUDA-accelerated registration, or CPU for multicore-accelerated registration.
  • Stage 0 panel: Stage 0 is the a pre-alignment stage, which uses either a translation, rigid transform, or affine transform to make a rough alignment of the moving image to the fixed image. The default is not to do pre-alignment. If your images are reasonably well aligned you can keep this option off, which makes plastimatch run faster. But generally it doesn't hurt to enable Stage 0.
    • Enable Stage 0: Click on this checkbox to enable the pre-alignment stage.
    • Image Subsampling Rate: This option is specified as three integers, separated by commas. It tells plastimatch to subsample the images in the (x,y,z) dimensions by this amount for this stage. This is one of the methods that plastimatch implements multi-resolution registration. by cascading stages of different subsampling rates.
    • Max Iterations: This option controls how many iterations of B-spline registration will be run in this stage. Usually there is no benefit beyond 200 iterations. Also, there is usually no harm in running extra iterations, except that it takes longer.
    • Transformation: This option controls whether the pre-alignment uses a translation (3 DOF), a rigid transform (6 DOF), or an affine transform (12 DOF). Generally speaking, translation is recommended unless the images are extremely different.
  • Stage 1 panel: Stage 1 is the first stage of non-rigid registration. The plastimatch plugin will always do at least one non-rigid stage.
    • Image Subsampling Rate: This option is specified as three integers, separated by commas. It tells plastimatch to subsample the images in the (x,y,z) dimensions by this amount for this stage. This is one of the methods that plastimatch implements multi-resolution registration. by cascading stages of different subsampling rates.
    • Max Iterations: This option controls how many iterations of B-spline registration will be run in this stage. Usually there is no benefit beyond 200 iterations. Also, there is usually no harm in running extra iterations, except that it takes longer.
    • Grid Spacing: The grid spacing parameter is a floating point number which controls the size of the B-spline control grid, in mm. Larger spacing means a smoother registration, while smaller spacing means a finer registration.
  • Stage 2 panel: Stage 2 is an optional second round of non-rigid registration. If you get good results after stage 1, you might try stage 2 to further improve the results. However, enabling stage 2 increases the time required to perform the registration.
    • Enable Stage 2: Click on this checkbox to enable stage 2.
    • Image Subsampling Rate: This option is specified as three integers, separated by commas. It tells plastimatch to subsample the images in the (x,y,z) dimensions by this amount for this stage. This is one of the methods that plastimatch implements multi-resolution registration. by cascading stages of different subsampling rates.
    • Max Iterations: This option controls how many iterations of B-spline registration will be run in this stage. Usually there is no benefit beyond 200 iterations. Also, there is usually no harm in running extra iterations, except that it takes longer.
    • Grid Spacing: The grid spacing parameter is a floating point number which controls the size of the B-spline control grid, in mm. Larger spacing means a smoother registration, while smaller spacing means a finer registration.
User Interface

Development

Notes from the Developer(s)

Developer-oriented documentation is found on the plastimatch web site: http://plastimatch.org

Dependencies

This module has no dependencies.

Tests

Plastimatch features approximately 100 test cases.

Known bugs

Usability issues

Please report usability issues to the bug tracker.

Source code & documentation

We recommended to download the latest source code from subversion:

Documentation:

More Information

About plastimatch

Plastimatch is an open source software for deformable image registration. It is designed for high-performance volumetric registration of medical images, such as X-ray computed tomography (CT), magnetic resonance imaging (MRI), and positron emission tomography (PET). Software features include:

  • B-spline method for deformable image registration (GPU and multicore accelerated)
  • Demons method for deformable image registration (GPU accelerated)
  • ITK-based algorithms for translation, rigid, affine, demons, and B-spline registration
  • Pipelined, multi-stage registration framework with seamless conversion between most algorithms and transform types
  • Landmark-based deformable registration using thin-plate splines for global registration
  • Landmark-based deformable registration using radial basis functions for local corrections
  • Broad support for 3D image file formats (using ITK), including Dicom, Nifti, NRRD, MetaImage, and Analyze
  • Dicom and DicomRT import and export
  • XiO import and export
  • Plugins for 3D Slicer

Plastimatch also features two handy utilities which are not directly related to image registration:

  • FDK cone-beam CT reconstruction (GPU and multicore accelerated)
  • Digitally reconstructed radiograph (DRR) generation (GPU and multicore accelerated)

Acknowledgment

National Institutes of Health
NIH / NCI 6-PO1 CA 21239
Federal share of program income earned by MGH on C06CA059267

Progetto Rocca Foundation
A collaboration between MIT and Politecnico di Milano

References

  • G Sharp, N Kandasamy, H Singh, M Folkert, "GPU-based streaming architectures for fast cone-beam CT image reconstruction and demons deformable registration," Physics in Medicine and Biology, 52(19), pp 5771-83, 2007.
  • V Boldea, G Sharp, SB Jiang, D Sarrut, "4D-CT lung motion estimation with deformable registration: Quantification of motion nonlinearity and hysteresis," Medical Physics, 33(3), pp 1008-18, 2008.
  • Z Wu, E Rietzel, V Boldea, D Sarrut, G Sharp, "Evaluation of deformable registration of patient lung 4DCT with sub-anatomical region segmentations," Medical Physics, 35(2), pp 775-81, 2008.
  • G Sharp et al. "Plastimatch - An open source software suite for radiotherapy image processing," Proceedings of the XVIth International Conference on the use of Computers in Radiotherapy, May, 2010.