Gourab RoyHome

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

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

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

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

Training98%classification accuracy
Validation80%classification accuracy
VenueISAI 2025Best Paper Award

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

Build and run the containerdocker build -t myapp-image . docker run --gpus all --name my_container -v /path/to/dataset:/app/dataset -it myapp-image

Dataset variables are set in config.py before the image is built. Drop --gpus all to run on CPU.