NeedleFinder

From NAMIC Wiki
Jump to: navigation, search
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 summarising the global purpose of each functions (function taging). We developed a profiling method using message boxes (using the inspect library).

- 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: <pcitures 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 needle tips. Third, the little cubic image around the needle tip could be registered to each other before averaging. Now, the origin is registered, but the orientation could be improved.

- Parameter optimization: now!

References