Skip to content

EMalagoli92/OD-Metrics

Repository files navigation


License: MIT

A python library for Object Detection metrics.

Why OD-Metrics?

  • User-friendly: Designed for simplicity, allowing users to calculate metrics with minimal setup.
  • Highly Customizable: Offers flexibility by allowing users to set custom values for every parameter in metrics definitions.
  • COCOAPI Compatibility: Metrics are rigorously tested to ensure compatibility with COCOAPI, ensuring reliability and consistency.

Supported Metrics

Supported metrics include:

  • mAP (Mean Average Precision)
  • mAR (Mean Average Recall)
  • IoU (Intersection over Union).

For more information see Metrics documentation.

Documentation

For help, usage, API reference, and an overview of metrics formulas, 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

Support

Found this helpful? ⭐ it on GitHub