Difference between revisions of "NeedleFinder"

From NAMIC Wiki
Jump to: navigation, search
Line 49: Line 49:
 
The results can be viewed in the NeedleFinder tutorial project: [http://www.na-mic.org/Wiki/index.php/Needle_Finder_Tutorial].  
 
The results can be viewed in the NeedleFinder tutorial project: [http://www.na-mic.org/Wiki/index.php/Needle_Finder_Tutorial].  
  
- Code profiling : We went through the code to clarify opened questions, removed unused functions. We built a table summarising the global purpose of each functions (function taging). We developed a profiling method using message boxes (using the inspect library).
+
- 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).
  
- 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.
+
- 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 resample 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 datasets eg. using convolution filters:
+
- 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:
<pcitures of 3 needle tips with artifacts>
+
<pictures of 3 needle tips with artifacts>
 
<picture of the model>
 
<picture of the model>
 
<picture of the results of the convolution filter>
 
<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 accurate. For now, the origin is registered, but the orientation could be improved. After convoluting the average needle tip model with a patient MR image, our simple 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.
  
- Parameter optimization: we want to compare the performance of a brute force/randomized parameter search approach with a genetic algorithm after the workshop. Therefore this 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.
+
- 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.
  
 
==References==
 
==References==

Revision as of 03:47, 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 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. The results can be viewed in the NeedleFinder tutorial project: [1].

- 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).

- 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: <pictures of 3 needle tips with artifacts> <picture of the 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 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.

References