UNet Segmentation Metrics
Project description
UNet segmentation metrics
WORK IN PROGRESS
Simple Python 3 tools to assess the performance of UNet segmentation networks (or any other segmentation method) by comparing the prediction to a ground truth image.
Use it to calculate:
- Jaccard metric for object detection
- Intersection over Union (IoU) for object segmentation accuracy
- Localization (positional) error for estimating MOTP during tracking
- Pixel identity
TODO:
- Add strict matching with IoU threshold
- Add confusion matrix for multi-label/classification type tasks
Single image usage
import umetrix
from skimage.io import imread
y_true = imread('true.tif')
y_pred = imread('pred.tif')
# can now make the calculation strict, by only considering objects that have
# an IoU above a theshold as being true positives
result = umetrix.calculate(
y_true,
y_pred,
strict=True,
iou_threshold=0.5
)
print(result.results)
returns:
============================
Segmentation Metrics (n=1)
============================
Strict: True (IoU > 0.5)
n_true_labels: 354
n_pred_labels: 362
n_true_positives: 345
n_false_positives: 10
n_false_negatives: 0
IoU: 0.999
Jaccard: 0.972
pixel_identity: 0.998
localization_error: 0.010
Batch processing
import umetrix
# provide a list of file pairs ('true', 'prediction')
files = [
('true0.tif', 'pred0.tif'),
('true1.tif', 'pred1.tif'),
('true2.tif', 'pred2.tif')
]
batch_result = umetrix.batch(files)
Returns aggregate statistics over the batch. Jaccard index is calculated over all found objects, while other metrics are the average IoU etc.
Installation
- First clone the repo:
$ git clone https://github.com/quantumjot/unet_segmentation_metrics.git
- (Optional, but advised) Create a conda environment:
$ conda create -n umetrix python=3.9
$ conda activate umetrix
- Install the package
$ cd unet_segmentation_metrics
$ pip install .
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
umetrix-0.2.0.tar.gz
(226.9 kB
view details)
Built Distribution
File details
Details for the file umetrix-0.2.0.tar.gz
.
File metadata
- Download URL: umetrix-0.2.0.tar.gz
- Upload date:
- Size: 226.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b79e7812246e4a4c10cf13a77eeed607c8a52969cfb224d48c7a5f15e222234e |
|
MD5 | 405145268cc55181ba2da1b0f3f55fcd |
|
BLAKE2b-256 | 335504ddda3f0c8bb8a296680006c489dea57563ad1b723c460babb363f08b84 |
File details
Details for the file umetrix-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: umetrix-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0df225ea5a7ae0a77992b4234267299418d1bdacb76f492c84305e9e457d2de8 |
|
MD5 | a4621ed8daa75e9b64c394364f3b5ff1 |
|
BLAKE2b-256 | b00095c2ca9bd7de92486a6ab384f07548e783b4f9ab317413df25c5cd08a4d2 |