Difference between revisions of "Projects:RegistrationLibrary:RegLib C10"

From NAMIC Wiki
Jump to: navigation, search
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(16 intermediate revisions by one other user not shown)
Line 3: Line 3:
 
[[Projects:RegistrationDocumentation:UseCaseInventory|Back to Registration Use-case Inventory]] <br>
 
[[Projects:RegistrationDocumentation:UseCaseInventory|Back to Registration Use-case Inventory]] <br>
  
==Slicer Registration Library Exampe #10: Co-registration of probabilistic tissue atlas for subsequent EM segmentation ==
+
== <small>v3.6.1</small> [[Image:Slicer3-6Announcement-v1.png‎|150px]] Slicer Registration Library Case #10: Co-registration of probabilistic tissue atlas for subsequent EM segmentation ==
 
+
=== Input ===
{| style="color:#bbbbbb; background-color:#333333;" cellpadding="10" cellspacing="0" border="0"
+
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
|[[Image:RegLib_C10_EMAtlas1.png|150px|lleft|this is the fixed reference image. All images are aligned into this space]]  
+
|[[Image:RegLib_C10_EMAtlas1.png|150px|lleft|this is the fixed T1 reference image.]]  
|[[Image:Arrow_left_gray.jpg|100px|lleft]]  
+
|[[Image:RegArrow_NonRigid.png|100px|lleft]]  
|[[Image:RegLib_C10_EMAtlas2.png|150px|lleft|this is the moving image. The transform is calculated by matching this to the reference image]]
+
|[[Image:RegLib_C10_EMAtlas2.png|150px|left|this is the probabilistic tissue atlas, to be registered to the T1]]
|align="left"|LEGEND<br><small><small>
 
[[Image:Button_red_fixed.jpg|20px|lleft]]  this indicates the reference image that is fixed and does not move. All other images are aligned into this space and resolution<br>
 
[[Image:Button_green_moving.jpg|20px|lleft]]  this indicates the moving image that determines the registration transform.  <br>
 
</small></small>
 
 
|-
 
|-
|[[Image:Button_red_fixed.jpg|40px|lleft]]  Target Brain
+
|Target Brain  
 
|
 
|
|[[Image:Button_green_moving.jpg|40px|lleft]] Probabilistic Atlas (T1w)
+
|Probabilistic Atlas  
|-
 
|0.9375 x 0.9375 x 1.5 mm axial <br> 256 x 256 x 124<br>T1w, PA
 
|
 
|0.9375 x 0.9375 x 1.5 mm axial <br> 256 x 256 x 124<br>T1w, PA
 
 
|}
 
|}
 +
 +
=== Modules ===
 +
*'''Slicer 3.6.1 recommended modules:  [https://www.slicer.org/wiki/Modules:BRAINSFit BrainsFit]'''
 +
 +
==Slicer Registration Library Exampe #10: Co-registration of probabilistic tissue atlas for subsequent EM segmentation ==
  
 
===Objective / Background ===
 
===Objective / Background ===
Line 29: Line 26:
  
 
===Input Data===
 
===Input Data===
*[[Image:Button_red_fixed_white.jpg|20px]]reference/fixed : T1w axial, 1mm resolution in plane, 3mm slices
+
*fixed : T1w axial, 0.9375 x 0.9375 x 1.5 mm axial, 256 x 256 x 124
*[[Image:Button_green_moving_white.jpg|20px]] moving: Probabilistic Tissue atlas,  
+
*moving: Probabilistic Tissue atlas, 0.9375 x 0.9375 x 1.5 mm axial, 256 x 256 x 124
 +
 
 
=== Methods ===
 
=== Methods ===
#build brain mask for fixed image using '''Skull Stripping''' module. Settings:  100 iterations, 20 subdivisions. New Volume: ''RegLib_C10_MRI_AtlasSegmentation_fixed_mask''
+
*'''Version 1: BRAINSfit w/o masking'''
#manually edit brain mask with '''Editor''' module. required manual fix at frontal and occipital lobe
+
#open BRAINSfit module
#run '''Register Images''' , Settings:  
+
##fixed image: fixed;  moving image: moving
::*Fixed Image:
+
##Registration phases: check: Rigid, ScaleVersor3D, Affine, BSpline
::*Moving Image:
+
##Output: under ''Slicer BSpline Transform'', select "create new" and rename to "Xf3_BFit_unmasked"
::*Resample Image:
+
##Output: under ''Output Image Volume'', select "create new" and rename to "moving_Xf3"
::*Load Transform:
+
##Output Image Pixel Type: check box for "short"
::*Save Transform: ''RegLib_C10_MRI_AtlasSegmentation_Xform_Affine_wmsk''
+
##Registration Parameters: increase ''Number of Samples'' to 200,000
::*Initialization: Centers of Mass,  
+
##Number of Grid Subdivisions: 5,5,5
::*Registration: PipelineAffine
+
##leave rest at defaults
::*Expected offset: 10
+
##click: ''Apply''
::*Expected Rotation: 0.2
+
*'''Version 2: Expert Automated + Fast BSpline Modules incl. masking'''
::*Expected Scale: 0.1
+
#build brain mask for the fixed image only:
::*Expected Skew: 0.05
+
##open '''Skull Stripping''' module.  
::*Fixed Image Mask: ''RegLib_C10_MRI_AtlasSegmentation_fixed_mask''
+
##Settings:  100 iterations, 20 subdivisions.  
::*Affine Max Iteration: 80
+
##Ouput: create new volum, rename to  "fixed_mask"
::*Affine Sampling Ratio: 0.05
+
##Click: ''Apply''
#(alternatively automated Affine Registration:  '''Register Images Multires''' (Slicer 3.5) also produces good results
+
##manually edit brain mask with '''Editor''' module. required manual fix at frontal and occipital lobe
# run '''Deformable B-spline Registration''' module. Settings:  
+
#open ''Expert Automated Registration'' module
::*Iterations: 20
+
##Settings: Fixed Image: fixed, moving image: moving
::*Grid Size: 9  
+
##Save Transform: ''Xf1_Affine_wmsk''
::*Histogram Bins: 50,  
+
##Initialization: Centers of Mass, Registration: PipelineAffine
::*Spatial Samples: 50000,
+
##Expected offset: 10 Expected Rotation: 0.2
::*initial transform:  ''RegLib_C10_MRI_AtlasSegmentation_Xform_Affine_wmsk''
+
##Expected Scale: 0.1 Expected Skew: 0.05
::*Fixed Image: RegLib_C10_MRI_AtlasSegmentation_fixed
+
##Fixed Image Mask: "fixed_mask"
::*Fixed Image: RegLib_C10_MRI_AtlasSegmentation_moving
+
##Affine Max Iteration: 80 Affine Sampling Ratio: 0.05
::*Output Transform: XForm_BSpline1  -> save an output transform to then apply to other atlas data to be brought into alignment.
+
#(alternatively automated Affine Registration:  '''Register Images Multires''' also produces good results
 +
# run '''Fast Deformable B-spline Registration''' module. Settings:  
 +
##Iterations: 20 , Grid Size: 9  
 +
##fixed image: fixed;  moving image: moving
 +
##Histogram Bins: 50, Spatial Samples: 50000
 +
## initial transform:  "Xf1_Affine_wmsk"
 +
##Output Transform: Xf2_BSpline1
 +
##Output Volume: create new, rename to "moving_Xf2"
  
 
=== Registration Results===
 
=== Registration Results===
{| style="color:#bbbbbb; background-color:#333333;" cellpadding="10" cellspacing="0" border="0"
+
[[Image:RegLib_C10_unreg_AnimGif.gif|300px|unregistered]] unregistered 
|[[Image:RegLib_C10_unreg_AnimGif.gif|200px|left|unregistered]] [[Image:RegLib_C10_BSpline_AnimGif.gif|200px|left|after BSpline non-rigid registration]]  
+
[[Image:RegLib_C10_BSpline_AnimGif.gif|300px|after BSpline non-rigid registration]] afterAffine+ fast BSpline non-rigid registration<br><br>
|}
+
[[Image:RegLib_C10_BFit_AGif.gif‎|400px|after BRAINSfit affine+ non-rigid registration]] after BRAINSfit affine+ non-rigid registration<br>
  
 
===Download ===
 
===Download ===
*'''[[Media:RegLib_C10_MRI-AtlasSegmentation.zip‎‎|download entire package <small> (Data,Tutorial, Solution, zip file 17 MB) </small>]]'''  
+
*Data
*'''[[Media:RegLib_C10_Data.zip‎‎|download example & result image data  <small> (NRRD files, transforms, presets, zip file 14 MB) </small>]]'''  
+
**'''[[Media:RegLib_C10_Data.zip‎‎|RegLig_C10_Data <small> (Data,Presets, Solutions, zip file 17 MB) </small>]]'''  
*'''[[Media:RegLib_C10_Tutorial.ppt‎‎|download step-by-step tutorial <small> (PowerPoint, 3 MB) </small>]]'''  
+
*Presets
*'''[[Media:RegLib_C10_RegPresets.mrml.zip|download registration parameter presets <small> (zipped Slicer MRML file, 4 kB) </small>]]'''  
+
**'''[[Media:RegLib_C10_Presets_BFit.mrml|download registration parameter presets only<small> (Slicer MRML file, 4 kB) </small>]]'''
 
+
**'''[[Media:RegLib_C10_RegPresets_v3.5.mrml|download registration parameter presets for Slicer 3.5<small> (Slicer MRML file, 4 kB) </small>]]'''  
[[Projects:RegistrationDocumentation:ParameterPresetsTutorial|Link to User Guide: How to Load/Save Registration Parameter Presets]]
+
**[[Projects:RegistrationDocumentation:ParameterPresetsTutorial|Link to User Guide: How to Load/Save Registration Parameter Presets]]
 +
*Documentation
 +
**'''[[Media:RegLib_C10_Tutorial.ppt‎‎|download step-by-step tutorial <small> (PowerPoint, 3 MB) </small>]]'''  
 +
**'''[[Media:RegLib_C10_Tutorial.pdf|download step-by-step tutorial <small> (PDF, 5 MB) </small>]]'''
  
 
=== Discussion: Registration Challenges ===
 
=== Discussion: Registration Challenges ===
 
*Because the atlas represents a probabilistic image (i.e. contains blurring from combining multiple subjects), its contrast differs significantly from the target image.
 
*Because the atlas represents a probabilistic image (i.e. contains blurring from combining multiple subjects), its contrast differs significantly from the target image.
*The atlas has strong rotational misalignment that can cause difficulty for automated affine registration.
+
*The atlas has rotational misalignment that can cause difficulty for automated affine registration.
 
*The two images represent different anatomies, a non-rigid registration is required
 
*The two images represent different anatomies, a non-rigid registration is required
  
 
=== Discussion: Key Strategies ===
 
=== Discussion: Key Strategies ===
 
*Because of the strong differences in image contrast, Mutual Information is recommended as the most robust metric.
 
*Because of the strong differences in image contrast, Mutual Information is recommended as the most robust metric.
*masking (skull stripping) is highly recommended to obtain good results for the initial affine alignment. For the 2nd stage BSpline use the full image (i.e. do NOT use the masked version) unless high-quality masks are available for '''both''' fixed & moving image. Using the crude mask created for the initial alignment for the BSpline will likely destabilize.  
+
*masking (skull stripping) is recommended to obtain good results for the initial affine alignment. For the 2nd stage BSpline use the full image (i.e. do NOT use the masked version) unless high-quality masks are available for '''both''' fixed & moving image. Using the crude mask created for the initial alignment for the BSpline will likely destabilize.  
*because speed is not that critical, we increase the sampling rate for both affine and BSpline registration
+
*because speed is not that critical, increase the default sampling rate for both affine and BSpline registration
 
*we also expect larger differences in scale & distortion than with regular structural scans: so we significantly  (2x-3x) increase the expected values for scale and skew from the defaults.  
 
*we also expect larger differences in scale & distortion than with regular structural scans: so we significantly  (2x-3x) increase the expected values for scale and skew from the defaults.  
 
*a good affine alignment is important before proceeding to non-rigid alignment to further correct for distortions.
 
*a good affine alignment is important before proceeding to non-rigid alignment to further correct for distortions.

Latest revision as of 17:25, 10 July 2017

Home < Projects:RegistrationLibrary:RegLib C10

Back to ARRA main page
Back to Registration main page
Back to Registration Use-case Inventory

v3.6.1 Slicer3-6Announcement-v1.png Slicer Registration Library Case #10: Co-registration of probabilistic tissue atlas for subsequent EM segmentation

Input

this is the fixed T1 reference image. lleft
this is the probabilistic tissue atlas, to be registered to the T1
Target Brain Probabilistic Atlas

Modules

Slicer Registration Library Exampe #10: Co-registration of probabilistic tissue atlas for subsequent EM segmentation

Objective / Background

This is an example of sparse atlas co-registration. Not all atlases have an associated reference image that can be used for registration. Because the atlas represents a map of a particular tissue class probability, its contrast differs significantly from the target image.

Keywords

MRI, brain, head, inter-subject, probabilistic atlas, atlas-based segmentation

Input Data

  • fixed : T1w axial, 0.9375 x 0.9375 x 1.5 mm axial, 256 x 256 x 124
  • moving: Probabilistic Tissue atlas, 0.9375 x 0.9375 x 1.5 mm axial, 256 x 256 x 124

Methods

  • Version 1: BRAINSfit w/o masking
  1. open BRAINSfit module
    1. fixed image: fixed; moving image: moving
    2. Registration phases: check: Rigid, ScaleVersor3D, Affine, BSpline
    3. Output: under Slicer BSpline Transform, select "create new" and rename to "Xf3_BFit_unmasked"
    4. Output: under Output Image Volume, select "create new" and rename to "moving_Xf3"
    5. Output Image Pixel Type: check box for "short"
    6. Registration Parameters: increase Number of Samples to 200,000
    7. Number of Grid Subdivisions: 5,5,5
    8. leave rest at defaults
    9. click: Apply
  • Version 2: Expert Automated + Fast BSpline Modules incl. masking
  1. build brain mask for the fixed image only:
    1. open Skull Stripping module.
    2. Settings: 100 iterations, 20 subdivisions.
    3. Ouput: create new volum, rename to "fixed_mask"
    4. Click: Apply
    5. manually edit brain mask with Editor module. required manual fix at frontal and occipital lobe
  2. open Expert Automated Registration module
    1. Settings: Fixed Image: fixed, moving image: moving
    2. Save Transform: Xf1_Affine_wmsk
    3. Initialization: Centers of Mass, Registration: PipelineAffine
    4. Expected offset: 10 , Expected Rotation: 0.2
    5. Expected Scale: 0.1 , Expected Skew: 0.05
    6. Fixed Image Mask: "fixed_mask"
    7. Affine Max Iteration: 80 , Affine Sampling Ratio: 0.05
  3. (alternatively automated Affine Registration: Register Images Multires also produces good results
  4. run Fast Deformable B-spline Registration module. Settings:
    1. Iterations: 20 , Grid Size: 9
    2. fixed image: fixed; moving image: moving
    3. Histogram Bins: 50, Spatial Samples: 50000
    4. initial transform: "Xf1_Affine_wmsk"
    5. Output Transform: Xf2_BSpline1
    6. Output Volume: create new, rename to "moving_Xf2"

Registration Results

unregistered unregistered after BSpline non-rigid registration afterAffine+ fast BSpline non-rigid registration

after BRAINSfit affine+ non-rigid registration after BRAINSfit affine+ non-rigid registration

Download

Discussion: Registration Challenges

  • Because the atlas represents a probabilistic image (i.e. contains blurring from combining multiple subjects), its contrast differs significantly from the target image.
  • The atlas has rotational misalignment that can cause difficulty for automated affine registration.
  • The two images represent different anatomies, a non-rigid registration is required

Discussion: Key Strategies

  • Because of the strong differences in image contrast, Mutual Information is recommended as the most robust metric.
  • masking (skull stripping) is recommended to obtain good results for the initial affine alignment. For the 2nd stage BSpline use the full image (i.e. do NOT use the masked version) unless high-quality masks are available for both fixed & moving image. Using the crude mask created for the initial alignment for the BSpline will likely destabilize.
  • because speed is not that critical, increase the default sampling rate for both affine and BSpline registration
  • we also expect larger differences in scale & distortion than with regular structural scans: so we significantly (2x-3x) increase the expected values for scale and skew from the defaults.
  • a good affine alignment is important before proceeding to non-rigid alignment to further correct for distortions.

Acknowledgments

  • dataset provided by Killian Pohl, Ph.D.