Difference between revisions of "NeedleFinder"

From NAMIC Wiki
Jump to: navigation, search
Line 46: Line 46:
 
==Project Results==
 
==Project Results==
  
- GUI and workflow : We improved the workflow and the GUI of the slicer module NeedleFinder: the needle grouping feature has been removed, we introduced a temporary fiducial marker for easier manual needle tracking. We standardized the workflow by guiding the user though the steps (eg. providing the axial limit slice is now mandatory). We introduced new keyboard shortcuts, thus the user can stay focused on the segments, not changing his mouse position to click buttons. The last inserted needle can be deleted (with CTRL+Z or button) and the scene can be easily reset. Layout of the module UI has been cleaned up.
+
- GUI and workflow : We improved the workflow and the GUI of the slicer module NeedleFinder: the needle grouping feature has been removed, we introduced a new temporary fiducial marker for easier manual needle tracking. We standardized the workflow by guiding the user though the steps (e.g. providing the axial limit slice is now mandatory as a first step). We introduced new keyboard shortcuts, thus the user can stay focused on the segments, not changing his mouse position to click buttons in the left panel. The last inserted needle can be deleted (with CTRL+Z or button) and the module can be easily reset. The layout of the module UI has been cleaned up.
  
- Code profiling : We went through the code to clarify opened questions, removed unused functions. We built a table summarizing the global purpose of each functions (function tagging). We developed a profiling method using message boxes (using the inspect library).
+
- Code profiling : We went through the code to clarify many open questions, removed unused functions. We built a table summarizing the global purpose of each functions (function tagging). We developed a profiling method using print commands and message boxes (using the inspect library).
  
- Bounding box approach: we discussed this proposal, and found, after slicing to the obturator base, just zooming into the image in the axial view is much easier for the user than defining a complete bounding box.
+
- Bounding box approach : We discussed this proposal, and found, after slicing to the obturator base, just zooming into the image in the axial view is much easier for the user than defining a complete bounding box.
  
- Tip detection : We wrote a script to extract, transform and re-sample all the tips from images with needles from manual segmentation. These 115 cubical regions can now be used for data analysis, machine learning. We built an average model of the needle tips to be matched to new data sets, e.g. using convolution filters:
+
- Tip detection : We wrote a script using SimpleITK to extract and re-sample all the tip regions from images using needles from manual segmentation. These 115 cubical regions can now be used for data analysis (machine learning). As a first step, we built an average model (template) of the needle tips to be matched to new data sets, e.g. using convolution/correlation filters:
 
<pictures of 3 needle tips with artifacts>
 
<pictures of 3 needle tips with artifacts>
<picture of the model>
+
<picture of the average tip model>
<picture of the results of the convolution filter>
+
Our hypothesis that the needle tip artifact show out in the average needle tip model could not be confirmed at this time: We need to use more cases with needle tip artifacts (instead of mixing with other cases from other MR sequences). Secondly, we should sort out the needle tips from the obturator needles. Third, the little cubic image around the needle tip could be registered to each other before averaging to fit more accurately. For now, the origin is registered, but the orientation could be improved. After convolution (SimpleITK) the average needle tip model with a patient MR image, our approach suffers from oversegmentation.
Our hypothesis that the needle tip artifact show out in the average needle tip model could not be confirmed at this time: We need to use more cases with needle tip artifacts (instead of mixing with other cases from other MR sequences). Secondly, we should sort out the needle tips from the obturator needles. Third, the little cubic image around the needle tip could be registered to each other before averaging to fit more accurate. For now, the origin is registered, but the orientation could be improved. After convolution the average needle tip model with a patient MR image, our approach suffers from oversegmentation.
 
  
- NeedleFinder parameter optimization : we want to use the workshop as a kickoff on this topic and want to compare the performance of a brute force/randomized parameter search approach with a genetic algorithm after the workshop. Therefore the implementation of a genetic algorithm was carried out (to find an optimum faster). A cost function was designed for our problem. Because the parameter optimization is still computationally expensive, only exemplary results for individual patients, but not a patient collective could be obtained here.
+
- NeedleFinder parameter optimization : We use the workshop as a kickoff on this topic and want to compare the performance of a brute force/randomized parameter search approach with a genetic algorithm after the workshop. Therefore the implementation of a genetic algorithm has been completed (to be able to find a global optimum faster). A cost/fitness function was designed for our problem. Because the parameter optimization is still computationally expensive (several needle detections carried out in every iteration), only exemplary results for individual patients, but not a patient collective could be obtained here.
  
 
==References==
 
==References==

Revision as of 05:16, 9 January 2015

Home < NeedleFinder

Key Investigators

Andre Mastmeyer, Guillaume Pernelle, Yang Gao, Tina Kapur, Steve Pieper, Ron Kikinis

Project Description

Objective

  • Improve performance and usability of NeedleFinder, see Needle Finder 2013 Video
    • Code profiling, refactoring
    • GUI and interaction simplification
      • Provide Bounding Box/Region of Interest for better visualization and constrain search space for algorithms
    • Semi-Automatic needle tip (and body) detection
    • Parameter optimization

Approach, Plan

  • Improvements of the source code quality, algorithms and GUI (usability):
    • Ad-hoc python profiling concept (method tagging, logging and message boxes as code probes)
    • Improved standardized and guided workflow more usable by MDs (state machine)
      • Interaction protocol using existing tools for MD to provide bounding-box quickly
    • Incorporate SimpleITK filtering/preprocessing and a little user interaction (build mean model from small ROIs around manually segmented needle tips)
    • Look into machine learning (implement simple genetic algorithm & compare to brute-force grid search)

Progress

  • Overall: 4/5
    • Tuesday started - Wednesday finished
    • Tuesday started - Wednesday finished
      • Tuesday started / Wednesday - to discuss later
    • Wednesday started - Thursday finished
    • Thursday started

Project Results

- GUI and workflow : We improved the workflow and the GUI of the slicer module NeedleFinder: the needle grouping feature has been removed, we introduced a new temporary fiducial marker for easier manual needle tracking. We standardized the workflow by guiding the user though the steps (e.g. providing the axial limit slice is now mandatory as a first step). We introduced new keyboard shortcuts, thus the user can stay focused on the segments, not changing his mouse position to click buttons in the left panel. The last inserted needle can be deleted (with CTRL+Z or button) and the module can be easily reset. The layout of the module UI has been cleaned up.

- Code profiling : We went through the code to clarify many open questions, removed unused functions. We built a table summarizing the global purpose of each functions (function tagging). We developed a profiling method using print commands and message boxes (using the inspect library).

- Bounding box approach : We discussed this proposal, and found, after slicing to the obturator base, just zooming into the image in the axial view is much easier for the user than defining a complete bounding box.

- Tip detection : We wrote a script using SimpleITK to extract and re-sample all the tip regions from images using needles from manual segmentation. These 115 cubical regions can now be used for data analysis (machine learning). As a first step, we built an average model (template) of the needle tips to be matched to new data sets, e.g. using convolution/correlation filters: <pictures of 3 needle tips with artifacts> <picture of the average tip model> Our hypothesis that the needle tip artifact show out in the average needle tip model could not be confirmed at this time: We need to use more cases with needle tip artifacts (instead of mixing with other cases from other MR sequences). Secondly, we should sort out the needle tips from the obturator needles. Third, the little cubic image around the needle tip could be registered to each other before averaging to fit more accurately. For now, the origin is registered, but the orientation could be improved. After convolution (SimpleITK) the average needle tip model with a patient MR image, our approach suffers from oversegmentation.

- NeedleFinder parameter optimization : We use the workshop as a kickoff on this topic and want to compare the performance of a brute force/randomized parameter search approach with a genetic algorithm after the workshop. Therefore the implementation of a genetic algorithm has been completed (to be able to find a global optimum faster). A cost/fitness function was designed for our problem. Because the parameter optimization is still computationally expensive (several needle detections carried out in every iteration), only exemplary results for individual patients, but not a patient collective could be obtained here.

References