-
Install onemetric from PyPI (recommended):
pip install --upgrade pip pip install onemetric
-
Install onemetric from the GitHub source:
git clone https://github.com/SkalskiP/onemetric.git cd onemetric python setup.py install
Figure 1. Dataset sample, blue - ground-truth and red - detection.
Calculate [email protected]
>>> from onemetric.cv.loaders import YOLOLoader
>>> from onemetric.cv.object_detection import MeanAveragePrecision
>>> model = load_model(...) # model-specific loading method
>>> data_set = YOLOLoader(
... images_dir_path=DATA_SET_IMAGES_PATH,
... annotations_dir_path=DATA_SET_ANNOTATIONS_PATH
... ).load()
>>> true_batches, detection_batches = [], []
>>> for entry in data_set:
>>> detections = model(entry.get_image()) # model-specific prediction method
>>> true_batches.append(entry.get_annotations())
>>> detection_batches.append(detections)
>>> mean_average_precision = MeanAveragePrecision.from_detections(
... true_batches=true_batches,
... detection_batches=detection_batches,
... num_classes=12,
... iou_threshold=0.5
... )
>>> mean_average_precision.value
0.61
>>> confusion_matrix = ConfusionMatrix.from_detections(
... true_batches=true_batches,
... detection_batches=detection_batches,
... num_classes=12
... )
>>> confusion_matrix.plot(CONFUSION_MATRIX_TARGET_PATH, class_names=CLASS_NAMES)
Figure 2. Create confusion matrix chart
The official documentation is hosted on Github Pages: https://skalskip.github.io/onemetric
Feel free to file issues or pull requests. Let us know what metrics should be part of onemetric!
Please cite onemetric in your publications if this is useful for your research. Here is an example BibTeX entry:
@MISC{onemetric,
author = {Piotr Skalski},
title = {{onemetric}},
howpublished = "\url{https://github.com/SkalskiP/onemetric/}",
year = {2021},
}
This project is licensed under the BSD 3 - see the LICENSE file for details.