Skip to content

EMalagoli92/OD-Metrics

Repository files navigation


License: MIT

A python library for Object Detection metrics.

Why OD-Metrics?

  • User-friendly: simple to set and simple to use;
  • Highly Customizable: every parameters that occur in the definition of mAP and mAR can be set by user to custom values;
  • Compatibility with COCOAPI: each calculated metric is tested to coincide with COCOAPI metrics.

Supported Metrics

Supported metrics include mAP (Mean Average Precision), mAR (Mean Average Recall) and IoU (Intersection over Union).

Documentation

For help, usage and API reference, please refer to Documentation

Try live Demo

Try OD-Metrics samples Binder

Installation

Install from PyPI

pip install od-metrics

Install from Github

pip install git+https://github.com/EMalagoli92/OD-Metrics

Simple Example

from od_metrics import ODMetrics

# Ground truths
y_true = [
    { # image 1
     "boxes": [[25, 16, 38, 56], [129, 123, 41, 62]],
     "labels": [0, 1]
     },
    { # image 2
     "boxes": [[123, 11, 43, 55], [38, 132, 59, 45]],
     "labels": [0, 0]
     }
    ]

# Predictions
y_pred = [
    { # image 1
     "boxes": [[25, 27, 37, 54], [119, 111, 40, 67], [124, 9, 49, 67]],
     "labels": [0, 1, 1],
     "scores": [.88, .70, .80]
     },
    { # image 2
     "boxes": [[64, 111, 64, 58], [26, 140, 60, 47], [19, 18, 43, 35]],
     "labels": [0, 1, 0],
     "scores": [.71, .54, .74]
     }
    ]

metrics = ODMetrics()
output = metrics.compute(y_true, y_pred)
print(output)
"""
{'mAP@[.5 | all | 100]': 0.2574257425742574,
 'mAP@[.5:.95 | all | 100]': 0.10297029702970294,
 'mAP@[.5:.95 | large | 100]': -1.0,
 'mAP@[.5:.95 | medium | 100]': 0.10297029702970294,
 'mAP@[.5:.95 | small | 100]': -1.0,
 'mAP@[.75 | all | 100]': 0.0,
 'mAR@[.5 | all | 100]': 0.25,
 'mAR@[.5:.95 | all | 100]': 0.1,
 'mAR@[.5:.95 | all | 10]': 0.1,
 'mAR@[.5:.95 | all | 1]': 0.1,
 'mAR@[.5:.95 | large | 100]': -1.0,
 'mAR@[.5:.95 | medium | 100]': 0.1,
 'mAR@[.5:.95 | small | 100]': -1.0,
 'mAR@[.75 | all | 100]': 0.0,
 'classes': [0, 1],
 'n_images': 2}
"""

Aknowledgment

License

This work is made available under the MIT License