OrdinalSvdH — released checkpoints
Weights for the paper Ordinal DINOv2 Transfer for Joint-Level SvdH Scoring: What Helps and What Does Not (Cannito, Renzulli, Grangetto — RHEUMAI Workshop, MICCAI 2026). Code: github.com/EIDOSLAB/OrdinalSvdH.
Backbone: DINOv2 ViT-S/14 (vit_small_patch14_dinov2.lvd142m), last four transformer
blocks fine-tuned, cumulative ordinal BCE head, trained on 100% of the RAM-H1200
training labels. Each run selects its checkpoint on best validation QWK.
| Folder | Task | Seed | Test QWK | Test accuracy |
|---|---|---|---|---|
be_ordinal_bce_pct100_seed42 |
bone erosion (BE) | 42 | 0.626 | 0.739 |
jsn_ordinal_bce_pct100_seed123 |
joint-space narrowing (JSN) | 123 | 0.640 | 0.755 |
These are single runs, not the numbers reported in the paper. The paper reports the mean ± standard deviation over seeds 42, 123 and 456: BE 0.591 ± 0.028 and JSN 0.634 ± 0.006. Released here is the best-performing seed per task, so its test QWK sits above that mean. Retrain all three seeds with the code in the repository to reproduce the reported means.
Each folder contains best_model.pt (~85 MB) and metrics.json (full configuration and
test metrics of that run). Checkpoint keys: model_state_dict, config, score_to_idx,
best_epoch, best_val_qwk.
Usage
git clone https://github.com/EIDOSLAB/OrdinalSvdH.git && cd OrdinalSvdH
pip install -r requirements.txt
export RAM_H1200_ROOT=/path/to/RAM-H1200-v1
python scripts/download_checkpoints.py
python scripts/evaluate.py --checkpoint checkpoints/be_ordinal_bce_pct100_seed42
The RAM-H1200 scoring crops are required and are distributed separately by the dataset authors: TokyoTechMagicYang/RAM-H1200-v1.
Intended use and limitations
Research use only. The models grade predefined joint crops from posteroanterior hand radiographs; they do not localise joints and are not a diagnostic device. They were trained on a single benchmark (1,200 radiographs, six centres in Sapporo, Japan) and have not been validated on external or longitudinal cohorts. Both tasks are strongly imbalanced towards grade 0, and high grades remain the hardest cases. For BE the model predicts the clinical grades {0, 1, 2, 3, 5}; grade 4 does not occur in the benchmark.
Code: MIT. Data: RAM-H1200, under its own terms.