Context:
Musculoskeletal conditions affect more than 1.7 billion people worldwide, and are the most common cause of severe, long-term pain and disability, with 30 million emergency department visits annually and increasing.
Job to be done:
How might we build a model that helps medical professionals detect anomalies in bone X-rays?
Dataset:
We used a publicly available dataset of bone X-rays called
MURA (musculoskeletal radiographs).
The dataset contains more than 40,000 images across 7 body parts: Elbow, finger, forearm, hand, humerus, shoulder and wrist.
Methodology:
Step 1: Preprocessing
As a part of preprocessing, we performed 3 steps:
- Image resizing and rescaling to build standardized inputs
- Conversion of 3-channel RGB image into 1-channel grayscale to reduce image noise help with computational speed
- Perform adaptive thresholding for contrast adjustment (make light pixels lighter; dark pixels darker)
Step 2: Modeling
Our hypothesis was that anomalies would vary by body part, so we built a model hierarchy with 2 major components:
- Given the image, classify the body part (using AlexNet)
- Given the classified body part, detect anomalies (using DenseNet models for each body part)
The architecture looked like this:
Outcome:
The body classifier performed with more than
90% accuracy across body parts
The anomaly detector had
~70% precision across body parts i.e. When our model detected an anomaly, it was correct ~70% of the time.
Additionally, we used a technique called Gradient Class Activation Mapping (GradCAM) to help with model interpretability.
GradCAM encodes the last layer of activation to understand how the neural network learnt from the images.
Here's what it looks like (high intensity areas determine the model's prediction):
Next steps:
- Incremental development - focus on building specialized models for selected body parts that medical professionals can trust
- Experiment with sophisticated, scalable approaches to image cleaning and preprocessing
- Use GradCAM with medical professionals to understand, iterate and refine models
- Incorporate a confidence metric, so medical professionals can adjust next steps based on high vs low-confidence predictions