onemetric
Installation
- 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
Example
Figure 1. Dataset sample, blue - ground-truth and red - detection.
Calculate mAP@0.5
>>> 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
Calculate Confusion Matrix
>>> 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
Documentation
The official documentation is hosted on Github Pages: https://skalskip.github.io/onemetric
Contribute
Feel free to file issues or pull requests. Let us know what metrics should be part of onemetric!
Citation
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},
}
License
This project is licensed under the BSD 3 - see the LICENSE file for details.