Difference between revisions of "2012 Summer Project Week:VertebraCTUSReg"

From NAMIC Wiki
Jump to: navigation, search
 
(7 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
<gallery>
 
<gallery>
 
Image:PW-MIT2012.png|[[2012_Summer_Project_Week#Projects|Projects List]]
 
Image:PW-MIT2012.png|[[2012_Summer_Project_Week#Projects|Projects List]]
 +
Image:CTUSDiagram.png|Sequence diagram
 +
Image:CTUSModule.png|Module interface
 +
Image:CTUSTools.png|Slicer plug-ins
 +
Image:CTUSReg.png|Registered phantom(L3)
 
</gallery>
 
</gallery>
 
==Key Investigators==
 
==Key Investigators==
Line 38: Line 42:
 
* MATLAB core is compiled and exported as shared libraries to be used in external projects.
 
* MATLAB core is compiled and exported as shared libraries to be used in external projects.
 
* A wrapper project is added to the slicer solution to provide an interface with compiled MATALB dlls.
 
* A wrapper project is added to the slicer solution to provide an interface with compiled MATALB dlls.
* Whole procedure for single vertebra registration is implemented using slicer interface and current plugin modules:
+
* Entire procedure for single vertebra registration is implemented using slicer interface and current plugin modules:
- loading complete ultrasound volume of the lumbar phantom
+
** loading complete ultrasound volume of the lumbar phantom
- cropping ultrasound volume using Crop Volume module
+
** cropping ultrasound volume using "Crop Volume" module
- Segmentation of the cropped CT volume using Editor module
+
** Segmentation of the cropped CT volume using "Editor" module
- Passing model and volume nodes to "SpineCTUSRegistration" module and calling the registration commands
+
** Passing model and volume nodes to "SpineCTUSRegistration" module and calling the registration commands
 
<h3>Works to do</h3>
 
<h3>Works to do</h3>
* Still there is a need to initialize model and volume inputs regarding LPS/RAS orientation
+
* Still there is a need to initialize model and volume inputs regarding LPS/RAS orientation conflicts
 
* Improving animated visualization of the transform evolution on each iteration
 
* Improving animated visualization of the transform evolution on each iteration
* Cropping a larger area and reviewing the results
 
 
* Algorithm modification by using original MHA files instead of reconstructed VTK files
 
* Algorithm modification by using original MHA files instead of reconstructed VTK files
 
* Performing entire procedure for a real patient data.
 
* Performing entire procedure for a real patient data.

Latest revision as of 15:18, 22 June 2012

Home < 2012 Summer Project Week:VertebraCTUSReg

Key Investigators

  • University of British Columbia, Robotics & Control Laboratory: Saman Nouranian, Samira Sojoudi
  • Queen's University

Objective

To bring the realtime needle navigation for spine injections into 3D-slicer framework, a chain of tools are required. Ultrasound machine is one of the most applicable devices for realtime guidance due to its non-poisonous physics behind and low cost availability. Out of the patient's lumbar section of the spine, a 3D volume is reconstructed using tracked frames acquired from ultrasound machine. This volume needs to be registered to prior CT-image of the same area of the patient. At the end a realtime guidance is performed based on outputs generated.

In this phase, we are focused on developing a new module for slicer that performs a rigid registration between segmented CT (model) and ultrasound volumetric representation (reconstructed volume). Current algorithm is based on single vertebra inputs and will be extended to include mechanical characteristics of spine for a multi-vertebrae case.

Approach, Plan

We assume a single vertebra model and volume are provided using existing slicer modules, like crop-volume and segmentation (editor). From the CT model, a subset of visible points is extracted regarding position of the probe in ultrasound data acquisition step. 3D ultrasound volume (reconstructed before) is processed to generate a bone probability volume.
An iterative optimization algorithm is performed using Guassian Mixture Model method to solve for this surface to volume registration problem. Results of each iteration step is visualaized in slicer to show the convergence of the algorithm.
Output from each step of the algorithm and all transforms from each iteration are saved to disk and scene.

Progress

  • A loadable module is created which accepts a CT model (polydata) and an ultrasound volume (scalar) as inputs. All inputs need to be limited to region of interest (i.e. a single vertebra: L3)
  • Core implementation of the algorithm is MATLAB-based (The algorithm is quite fast and speed is not an issue). Re-distributable MATLAB Compiler Runtime (MCR) is a prerequisite for the slicer module to run on any machine.
  • A spine phantom data (L1-5) is used for the experiment.

Progress during project week

  • MATLAB core is compiled and exported as shared libraries to be used in external projects.
  • A wrapper project is added to the slicer solution to provide an interface with compiled MATALB dlls.
  • Entire procedure for single vertebra registration is implemented using slicer interface and current plugin modules:
    • loading complete ultrasound volume of the lumbar phantom
    • cropping ultrasound volume using "Crop Volume" module
    • Segmentation of the cropped CT volume using "Editor" module
    • Passing model and volume nodes to "SpineCTUSRegistration" module and calling the registration commands

Works to do

  • Still there is a need to initialize model and volume inputs regarding LPS/RAS orientation conflicts
  • Improving animated visualization of the transform evolution on each iteration
  • Algorithm modification by using original MHA files instead of reconstructed VTK files
  • Performing entire procedure for a real patient data.

Delivery Mechanism

This work will be delivered to the NA-MIC Kit as a (please select the appropriate options by noting YES against them below)

  1. ITK Module
  2. Slicer Module
    1. Built-in
    2. Extension -- commandline
    3. Extension -- loadable --> Yes
  3. Other (Please specify)