Knee Bone & Cartilage Segmentation Models

This repository contains Random Forest models for segmentation of knee bone and cartilage from 3D MRI, trained on the downsampled OAI dataset.

These models were trained using the kneeseg library: https://github.com/wq2012/kneeseg.

Model Details

  • Architecture: Dense Auto-Context Random Forest (Bone), Semantic Context Forest (Cartilage).
  • Resolution: Trained on downsampled images (140x140x112).
  • Labels:
    • 1: Femur
    • 2: Femoral Cartilage
    • 3: Tibia
    • 4: Tibial Cartilage
    • 5: Patella
    • 6: Patellar Cartilage

Dataset

Original dataset

The original dataset is from Osteoarthritis Initiative (OAI). It contains 176 3D MRI images, each with 160x384x384 voxels, and 0.7x0.364x0.364 resolution.

Downsampling

All images have been downsampled to 112x140x140 voxels, with 1x1x1 resolution.

Filtering

We removed images that does not have ground truth labels for any 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 a 80%-20% split, using 128 images for training, and 31 images for evaluation. See oai_split.json for the split.

Performance (DSC)

Evaluated on 31 held-out test cases:

Structure Dice Score (Mean ± Std)
Femur 0.7130 ± 0.0673
Tibia 0.7545 ± 0.0598
Patella 0.5209 ± 0.0831
FemCart 0.5171 ± 0.0716
TibCart 0.4134 ± 0.0888
PatCart 0.3633 ± 0.1406

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")

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},
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support