Giter Site home page Giter Site logo

prostate158's Introduction

Prostate158

A collection of prostate MR studies with expert annotations

What is Prostate158

Prostate158 is a curated dataset of biparametric 3 Tesla prostate MRI images for automatic segmentation of anatomical zones and cancerous lesions. Histopathologic confirmation is available for each cancerous lesion. All studies include a T2-weighted (T2W) and diffusion-weighted (DWI) images with apparent diffusion coefficient (ADC) maps. Images in each study were resampled so that orientation, direction, and spacing were the same.

image

Accessing the Prostate158 Data Set

The training dataset (139 MRIs) is freely available at DOI.

The test dataset consists of 19 additional MRIs and can be found at DOI

Baseline

We have trained U-Net base models for segmentation of the anatomical zones as well as the cancer areas in the prostate images, which can serve as a basis for comparison with future approaches. The weights for the models are available at: DOI
Since two raters segmented the anatomical zones and the cancer areas in the test dataset, the model score is given in comparison to each rater.

Rater 1 Rater 2
Metric Transitional Zone Peripheral Zone Cancer Transitional Zone Peripheral Zone Cancer
Dice Coefficient 0.877 0.754 0.453 0.875 0.730 0.398
Hausdorff Distance 18.3 22.8 36.7 17.5 33.2 39.5
Surface Distance 2.19 1.95 17.37 2.59 1.88 19.13

How to reproduce the baseline

progress

Dependencies

The baseline has been trained with the following packages and versions:

MONAI version: 0.9.dev2149
PyTorch version: 1.9.1
PyTorch Ignite version: 0.4.7
Numpy version: 1.21.2
pandas version: 1.3.5
PyYAML version: 5.4.1
Munch version: 2.5.0

You should be able to install all dependencies with: pip install -U "monai[all]" pyyaml munch pandas

Additionally you should install OpenCV: sudo apt update and sudo apt install libopencv-dev python3-opencv

Train an Anatomy Segmentation Model

Adapt the data_dir, the train_csv, valid_csv and test_csv file paths in the anatomy.yaml. Then execute:

python train.py --config anatomy.yaml

This will launch a training session which should give similar results as in the paper. However, even with a random seed, results between runs my vary up to 1%.

Inside a jupyter notebook, training can be started with the following code:

import monai
from prostate.utils import load_config
from prostate.train import SegmentationTrainer

config = load_config('anatomy.yaml')
monai.utils.set_determinism(seed=config.seed)

trainer=SegmentationTrainer(
    config=config,
    progress_bar=True,
    early_stopping = True,
    metrics = ["MeanDice", "HausdorffDistance", "SurfaceDistance"],
    save_latest_metrics = True,
)

trainer.run()

If satisfied, evaluate the model on a new dataset.

from prostate.data import segmentation_dataloaders
test_dl = segmentation_dataloaders(config=config, train=False, valid=False, test=True)
trainer.evaluate(
    checkpoint='models/NAME_OF_CHECKPOINT.pt',
    dataloader=test_dl
)

See also the train.ipynb notebook for a more detailed tutorial.

prostate158's People

Contributors

kbressem avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.