Skip to main content

Object Detection metrics.

Project description


License: Apache 2.0

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.16831683168316827,
    "mAP@[.5:.95 | all | 100]": 0.06732673267326732,
    "mAP@[.5:.95 | large | 100]": -1.0,
    "mAP@[.5:.95 | medium | 100]": 0.06732673267326732,
    "mAP@[.5:.95 | small | 100]": -1.0,
    "mAP@[.75 | all | 100]": 0.0,
    "mAR@[.5 | all | 100]": 0.16666666666666666,
    "mAR@[.5:.95 | all | 100]": 0.06666666666666667,
    "mAR@[.5:.95 | all | 10]": 0.06666666666666667,
    "mAR@[.5:.95 | all | 1]": 0.06666666666666667,
    "mAR@[.5:.95 | large | 100]": -1.0,
    "mAR@[.5:.95 | medium | 100]": 0.06666666666666667,
    "mAR@[.5:.95 | small | 100]": -1.0,
    "mAR@[.75 | all | 100]": 0.0,
    "class_metrics": {
        "0": {
            "AP@[.5 | all | 100]": 0.33663366336633654,
            "AP@[.5:.95 | all | 100]": 0.13465346534653463,
            "AP@[.5:.95 | large | 100]": -1.0,
            "AP@[.5:.95 | medium | 100]": 0.13465346534653463,
            "AP@[.5:.95 | small | 100]": -1.0,
            "AP@[.75 | all | 100]": 0.0,
            "AR@[.5 | all | 100]": 0.3333333333333333,
            "AR@[.5:.95 | all | 100]": 0.13333333333333333,
            "AR@[.5:.95 | all | 10]": 0.13333333333333333,
            "AR@[.5:.95 | all | 1]": 0.13333333333333333,
            "AR@[.5:.95 | large | 100]": -1.0,
            "AR@[.5:.95 | medium | 100]": 0.13333333333333333,
            "AR@[.5:.95 | small | 100]": -1.0,
            "AR@[.75 | all | 100]": 0.0
        },
        "1": {
            "AP@[.5 | all | 100]": 0.0,
            "AP@[.5:.95 | all | 100]": 0.0,
            "AP@[.5:.95 | large | 100]": -1.0,
            "AP@[.5:.95 | medium | 100]": 0.0,
            "AP@[.5:.95 | small | 100]": -1.0,
            "AP@[.75 | all | 100]": 0.0,
            "AR@[.5 | all | 100]": 0.0,
            "AR@[.5:.95 | all | 100]": 0.0,
            "AR@[.5:.95 | all | 10]": 0.0,
            "AR@[.5:.95 | all | 1]": 0.0,
            "AR@[.5:.95 | large | 100]": -1.0,
            "AR@[.5:.95 | medium | 100]": 0.0,
            "AR@[.5:.95 | small | 100]": -1.0,
            "AR@[.75 | all | 100]": 0.0
        }
    },
    "classes": [
        0,
        1
    ],
    "n_images": 2
}
"""

Aknowledgment

License

This work is made available under the Apache License 2.0

Support

Found this helpful? ⭐ it on GitHub

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

od_metrics-2.2.1.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

od_metrics-2.2.1-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file od_metrics-2.2.1.tar.gz.

File metadata

  • Download URL: od_metrics-2.2.1.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for od_metrics-2.2.1.tar.gz
Algorithm Hash digest
SHA256 40879148601b07695f93a328dbba92fc84e3851e31330a222d040662a6ab1fc5
MD5 0f7055530f7257a92b0b6f75d3c499e5
BLAKE2b-256 e81ee2197e944346a31d133cfe365deee27c17dafe2b44ef94801a13fde64b70

See more details on using hashes here.

File details

Details for the file od_metrics-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: od_metrics-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for od_metrics-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 75c470fb8d38aa5ea1b584646d969b1a3555b527609a001987dbeb5bad49cb92
MD5 19e5544bf6ed611ed3324402330ee2e9
BLAKE2b-256 5ca577830e83515877f9da6dabd2978859812196155b7a15d815b0439ad1b934

See more details on using hashes here.

Supported by

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