PUBLISHED PAPER · ISAI 2025
Automating knee osteoarthritis grading from X-rays
With Arup Kumar Pal, Manish Raj, and Jitesh Pradhan, I built a deep learning model that reads a knee X-ray and predicts its Kellgren-Lawrence grade, the scale radiologists use to describe how far osteoarthritis has progressed. The paper received the Best Paper Award at ISAI 2025 and is published by Springer in the Lecture Notes in Networks and Systems series.
- Grading scale
- Kellgren-Lawrence
- Backbone
- Modified Double U-Net
- Attention
- CBAM
- Training accuracy
- 98 percent
THE QUESTION
Can grading be automated without losing reliability?
Knee osteoarthritis is usually staged by a radiologist reading joint space narrowing, osteophyte growth, and other changes to bone and cartilage on an X-ray, then assigning a Kellgren-Lawrence grade. That reading takes time and depends on the reader, so two radiologists can reasonably disagree on a borderline case.
We wanted a model that could take a graded X-ray dataset and learn to reproduce that grading directly, so the diagnostic step could be automated and made faster without adding a second, separate detection stage.
METHOD
A hierarchical U-Net with attention
- 01
Double U-Net backbone
The model uses a modified Double U-Net, a hierarchical encoder-decoder pair, to extract features from the X-ray at multiple resolutions.
- 02
CBAM attention
A Convolutional Block Attention Module sits on top of the backbone. It reweights channels and spatial regions so the network can focus on the joint areas where osteoarthritis actually shows.
- 03
Grade classification
The attended features feed a classification head that outputs the predicted Kellgren-Lawrence grade for the scan.
RESULTS
Training and validation accuracy
READING THE RESULTS
The training and validation gap is worth noting
Eighteen points separate training and validation accuracy
That gap is a normal sign that the model fits the training set more closely than it generalizes to unseen scans. The paper reports this validation number as an honest measure of current performance, not a ceiling, and treats further generalization work as the natural next step.
The result was obtained on the datasets available to us at the time. It is not a claim of clinical readiness, and the model has not been evaluated against an external, out of hospital cohort.
REPRODUCE
Code, container, and citation
docker build -t myapp-image .
docker run --gpus all --name my_container -v /path/to/dataset:/app/dataset -it myapp-imageDataset variables are set in config.py before the image is built. Drop --gpus all to run on CPU.