/SPIE-2022_cortical-breach-anticipation

Code for our paper at SPIE Medical Imaging 2022: "Toward Perception-based Anticipation of Cortical Breach During K-wire Fixation of the Pelvis"

Primary LanguagePythonMIT LicenseMIT

Data generation pipeline.

Toward perception-based anticipation of cortical breach during K-wire fixation of the pelvis

Description

During internal fixation of fractures, it is often challenging to safely position a K-wire due to the projective nature of X-ray images, especially in complex anatomy like the superior pubic ramus. This can result in excess acquisitions and repeat attempts. A perception-based algorithm that interprets interventional radiographs to infer the likelihood of cortical breach might reduce both. Here, we present first steps toward developing such an algorithm. We use an in silico strategy for collection of X-rays with and without cortical breach and demonstrate its suitability for machine learning by training an algorithm to detect cortical breach for fully-inserted K-wires.

If you find our work useful, please consider citing our paper:

@article{killeen2022cortical,
  title={Toward Perception-based Anticipation of Cortical BreachDuring K-wire Fixation of the Pelvis},
  author={Killeen, Benjamin D. and Chakraborty, Shreya and Osgood, Greg and Unberath, Mathias},
  journal={SPIE Medical Imaging},
  year={2022}
}

Installation

These instructions assume you are using a linux machine with at least one GPU, CUDA >= 11.1.

  1. Create a new repository using this template and change to the root directory. For example,

    git clone git@github.com:benjamindkilleen/SPIE-2022_cortical-breach-anticipation.git
    cd SPIE-2022_cortical-breach-anticipation
  2. Install dependencies using Anaconda:

    conda env create -f environment.yml
    conda activate cortical-breach-anticipation

    This will create a new environment with the project installed as an edit-able package.

Usage

The project is separated into "experiments," which are just different main functions. Use the experiment group parameter to change which experiment is running. To run all experiments in the paper, do

python main.py -m experiment/size=p1,p1b,p2,p2b,p3,p4

The default experiment is to train the "small" version of the dataset, where the K-wire is fully inserted in every image. Further command line args can be used to refine a run. See conf/config.yaml for options.

The results are sorted into the results directory (created on first run). This is important for reproduceability, utilizing Hydra's automatic logging and config storage.