Skip to main content

A package to compute different segmentation metrics for Medical images.

Project description

Segmentaion Metrics Package DOI

GitHub release (latest SemVer) example workflow example workflow

This is a simple package to compute different metrics for Medical image segmentation(images with suffix .mhd, .mha, .nii, .nii.gz or .nrrd), and write them to csv file.

Summary

To assess the segmentation performance, there are several different methods. Two main methods are volume-based metrics and distance-based metrics.

Metrics included

This library computes the following performance metrics for segmentation:

Voxel based metrics

  • Dice (F-1)
  • Jaccard
  • Precision
  • Recall
  • False positive rate
  • False negtive rate
  • Volume similarity

Surface Distance based metrics (with spacing as default)

  • Hausdorff distance
  • Hausdorff distance 95% percentile
  • Mean (Average) surface distance
  • Median surface distance
  • Std surface distance

Installation

$ pip install seg-metrics

Usage

At first, import the package:

import seg_metrics.seg_metrics as sg

Evaluate two batch of images with same filenames from two different folders

labels = [0, 4, 5 ,6 ,7 , 8]
gdth_path = 'data/gdth'
pred_path = 'data/pred'
csv_file = 'metrics.csv'

metrics = sg.write_metrics(labels=labels[1:],  # exclude background
                  gdth_path=gdth_path,
                  pred_path=pred_path,
                  csv_file=csv_file)
print(metrics)

After runing the above codes, you can get a dict metrics which contains all the metrics. Also you can find a .csv file containing all metrics in the same directory.

Evaluate two images

labels = [0, 4, 5 ,6 ,7 , 8]
gdth_file = 'data/gdth.mhd'
pred_file = 'data/pred.mhd'
csv_file = 'metrics.csv'

metrics = sg.write_metrics(labels=labels[1:],  # exclude background
                  gdth_path=gdth_file,
                  pred_path=pred_file,
                  csv_file=csv_file)

Evaluate two images with specific metrics

labels = [0, 4, 5 ,6 ,7 , 8]
gdth_file = 'data/gdth.mhd'
pred_file = 'data/pred.mhd'
csv_file = 'metrics.csv'

metrics = sg.write_metrics(labels=labels[1:],  # exclude background if needed
                  gdth_path=gdth_file,
                  pred_path=pred_file,
                  csv_file=csv_file,
                  metrics=['dice', 'hd'])
# for only one metric
metrics = sg.write_metrics(labels=labels[1:],  # exclude background if needed
                  gdth_path=gdth_file,
                  pred_path=pred_file,
                  csv_file=csv_file,
                  metrics='msd')  

By passing the following parameters to select specific metrics.

- dice:     Dice (F-1)
- jaccard:  Jaccard
- precision:    Precision
- recall:   Recall
- fpr:      False positive rate
- fnr:      False negtive rate
- vs:       Volume similarity

- hd:       Hausdorff distance
- hd95:     Hausdorff distance 95% percentile
- msd:      Mean (Average) surface distance
- mdsd:     Median surface distance
- stdsd:    Std surface distance

For example:

labels = [1]
gdth_file = 'data/gdth.mhd'
pred_file = 'data/pred.mhd'
csv_file = 'metrics.csv'

metrics = sg.write_metrics(labels, gdth_file, pred_file, csv_file, metrics=['dice', 'hd95'])
dice = metrics['dice']
hd95 = metrics['hd95']

If this repository helps you in anyway, show your love ❤️ by putting a ⭐ on this project. I would also appreciate it if you cite the package in your publication.

#Bibtex

@misc{Jingnan,
    title  = {A package to compute segmentation metrics: seg-metrics},
    author = {Jingnan Jia},
    url    = {https://github.com/Ordgod/segmentation_metrics}, 
    year   = {2020}, 
    doi = {10.5281/zenodo.3995075}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seg_metrics-1.0.7.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

seg_metrics-1.0.7-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file seg_metrics-1.0.7.tar.gz.

File metadata

  • Download URL: seg_metrics-1.0.7.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for seg_metrics-1.0.7.tar.gz
Algorithm Hash digest
SHA256 ad040eca601d5d2c51da7810478c2921a29979cd9b0da53eafbe35eb256013a3
MD5 cc5a9bf26fad400260a2e520d312a282
BLAKE2b-256 1295554ca3e4f7ed3d83e37594cb59b01e6781e43d5207c70baf62b2b3b7fb2c

See more details on using hashes here.

Provenance

File details

Details for the file seg_metrics-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: seg_metrics-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for seg_metrics-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 4e69086022f95047282304ed89ac486c3cb98403be42eaafdeeb53485cae59f9
MD5 a4c02ed45038660de2f4dad7a3171bf7
BLAKE2b-256 787457a7e5b2bdc52ca31e24a238ed6327dd944a43484f5eae7b9d8aef918ed3

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page