Knee Bone & Cartilage Segmentation Models (Baseline v1 OAI Downsampled)
This repository contains the baseline v1 Random Forest models for 6-structure segmentation of knee bone and cartilage from 3D MRI, trained on the downsampled OAI dataset using the kneeseg library: https://github.com/wq2012/kneeseg.
Recommended Newer Models: For substantially higher accuracy (
0.95723-bone mean DSC,0.85913-cartilage mean DSC,0.9081overall 6-structure mean DSC on the same 31 held-out OAI test scans) and4.8xsmaller checkpoints (1.33 GBvs.6.44 GB), see wq2012/knee_3d_mri_segmentation_OAI_downsampled_subchondral_atlas or the unified cross-domain model wq2012/knee_3d_mri_segmentation_SKI10_OAI_subchondral_atlas.
- GitHub: https://github.com/wq2012/kneeseg
- PyPI: https://pypi.org/project/kneeseg/
- Hugging Face Collection: Knee MRI Segmentation Collection
- Sibling Models:
- wq2012/knee_3d_mri_segmentation_OAI_downsampled_subchondral_atlas (Recommended OAI 6-structure model)
- wq2012/knee_3d_mri_segmentation_SKI10_subchondral_atlas (Recommended SKI10 4-structure model)
- wq2012/knee_3d_mri_segmentation_SKI10_OAI_subchondral_atlas (Unified Cross-Domain SKI10 + OAI model)
- wq2012/knee_3d_mri_segmentation_OAI_downsampled (This repository — Baseline v1 OAI downsampled model)
- wq2012/knee_3d_mri_segmentation_SKI10 (Baseline v1 SKI10 model)
Model Details
- Architecture: Dense Auto-Context Random Forest (Bone), Semantic Context Forest (Cartilage).
- Resolution: Trained on downsampled images (
112 x 140 x 140voxels,1.0 x 1.0 x 1.0 mmspacing). - Labels:
1: Femur2: Femoral Cartilage3: Tibia4: Tibial Cartilage5: Patella6: Patellar Cartilage
Dataset
Original dataset
The original dataset is from Osteoarthritis Initiative (OAI). It contains
176 3D MRI images, each with 160 x 384 x 384 voxels, and 0.7 x 0.364 x 0.364 mm resolution.
Downsampling
All images have been downsampled to 112 x 140 x 140 voxels, with 1.0 x 1.0 x 1.0 mm resolution.
Filtering
We removed images that do not have ground truth labels for all of the 3 bones and 3 cartilages. This results in 159 images remaining.
The removed images are:
[
"image-9172459_V01.mhd",
"image-9674570_V01.mhd",
"image-9867284_V00.mhd",
"image-9905863_V01.mhd",
"image-9884303_V00.mhd",
"image-9352883_V00.mhd",
"image-9968924_V01.mhd",
"image-9965231_V01.mhd",
"image-9905863_V00.mhd",
"image-9992358_V00.mhd",
"image-9382271_V00.mhd",
"image-9607698_V00.mhd",
"image-9599539_V01.mhd",
"image-9352437_V00.mhd",
"image-9352437_V01.mhd",
"image-9382271_V01.mhd",
"image-9674570_V00.mhd"
]
Train-Eval Split
After downsampling and filtering, we performed an 80%-20% scan-level split,
using 128 images for training and 31 images for evaluation (oai_split.json). Note that across the 84 unique subjects in the 159-scan cohort (82 subjects in train, 30 subjects in eval), 28 of the 31 evaluation scans come from subjects whose companion timepoint (V00 or V01) is in the training set, and 3 evaluation scans (image-9992358_V01.mhd, image-9917803_V00.mhd, image-9917803_V01.mhd) come from 2 completely unseen subjects.
Performance (DSC)
Evaluated on 31 held-out test cases (oai_split.json, ddof=0 / ddof=1 SD):
| Structure | Baseline v1 DSC (Mean ± Std) | Subchondral Atlas v2 DSC (Mean ± Std) |
|---|---|---|
Femur (1) |
0.7130 ± 0.0673 | 0.9408 ± 0.0339 (0.0345 ddof=1) |
Tibia (3) |
0.7545 ± 0.0598 | 0.9669 ± 0.0129 (0.0131 ddof=1) |
Patella (5) |
0.5209 ± 0.0831 | 0.9639 ± 0.0210 (0.0214 ddof=1) |
Femoral Cartilage (2) |
0.5171 ± 0.0716 | 0.8811 ± 0.0188 (0.0191 ddof=1) |
Tibial Cartilage (4) |
0.4134 ± 0.0888 | 0.8698 ± 0.0230 (0.0233 ddof=1) |
Patellar Cartilage (6) |
0.3633 ± 0.1406 | 0.8263 ± 0.0677 (0.0688 ddof=1) |
Usage
Load these models using the kneeseg library:
from kneeseg.bone_rf import BoneClassifier
from kneeseg.rf_seg import CartilageClassifier
# Pass 1 Models
bone_p1 = BoneClassifier()
bone_p1.load("bone_rf_p1.joblib")
cart_p1 = CartilageClassifier()
cart_p1.load("cartilage_rf_p1.joblib")
# Pass 2 Models
bone_p2 = BoneClassifier()
bone_p2.load("bone_rf_p2.joblib")
cart_p2 = CartilageClassifier()
cart_p2.load("cartilage_rf_p2.joblib")
Files
bone_rf_p1.joblib(4.74 GB): Bone Segmentation Pass 1bone_rf_p2.joblib(739.96 MB): Bone Segmentation Pass 2cartilage_rf_p1.joblib(819.90 MB): Cartilage Segmentation Pass 1cartilage_rf_p2.joblib(139.86 MB): Cartilage Segmentation Pass 2oai_split.json: Exact 128-train / 31-eval split definition.
Citation
Plain Text:
Quan Wang, Dijia Wu, Le Lu, Meizhu Liu, Kim L. Boyer, and Shaohua Kevin Zhou. "Semantic Context Forests for Learning-Based Knee Cartilage Segmentation in 3D MR Images." MICCAI 2013: Workshop on Medical Computer Vision.
Quan Wang. Exploiting Geometric and Spatial Constraints for Vision and Lighting Applications. Ph.D. dissertation, Rensselaer Polytechnic Institute, 2014.
BibTeX:
@inproceedings{wang2013semantic,
title={Semantic context forests for learning-based knee cartilage segmentation in 3D MR images},
author={Wang, Quan and Wu, Dijia and Lu, Le and Liu, Meizhu and Boyer, Kim L and Zhou, Shaohua Kevin},
booktitle={International MICCAI Workshop on Medical Computer Vision},
pages={105--115},
year={2013},
organization={Springer}
}
@phdthesis{wang2014exploiting,
title={Exploiting Geometric and Spatial Constraints for Vision and Lighting Applications},
author={Quan Wang},
year={2014},
school={Rensselaer Polytechnic Institute}
}