Modified HOTA (Higher Order Tracking Accuracy) extended for ReID evaluation
Project description
HOTA-ReID: Accelerated Higher Order Tracking Accuracy for Re-Identification
HOTA-ReID is a modified version of the Higher Order Tracking Accuracy (HOTA) metric specifically designed to support Re-Identification (ReID) problems while providing significant performance improvements through parallel processing acceleration.
Key Features
- ReID-Aware Evaluation: Handles identity switches and re-appearances common in ReID scenarios
- Parallel Processing: Multi-threaded computation for faster evaluation
- Flexible ID Assignment: Flexible ID assignment per frame, video, and global
- Extraneous Box Handling: Optional removal of comparison ids which don't have an assignment to a ground truth id, with those FP tracked separately.
- Flexible ID Assignment Cost: ID assignment cost can be box IOU or L2 distance in Lat/Long/Alt space.
Installation
Using uv:
uv venv --python=3.12
source .venv/bin/activate
uv pip install reid_hota
Or from source:
git clone https://github.com/usnistgov/reid_hota.git
cd hota_reid
uv venv --python=3.12
source .venv/bin/activate
uv sync
Quick Start
Basic Usage
from reid_hota import HOTAReIDEvaluator, HOTAConfig
# create a reference and comparison dictionary of pandas dataframes. Each dataframe contains all detection boxes from that video.
ref_dfs, comp_dfs = load_data()
# create the Config controlling the Metric calculation
config = HOTAConfig(id_alignment_method='global', similarity_metric='iou', purge_non_matched_comp_ids=True)
# create the evaluator
evaluator = HOTAReIDEvaluator(n_workers=20, config=config)
# evaluate on data
evaluator.evaluate(ref_dfs, comp_dfs)
# extract results
global_hota_data = evaluator.get_global_hota_data() # returns a dict
per_video_hota_data = evaluator.get_per_video_hota_data() # returns a dict
per_frame_hota_data = evaluator.get_per_frame_hota_data() # returns a dict
print(f"HOTA-ReID Score: {global_hota_data['HOTA']:.3f}")
License
This software was developed by employees of the National Institute of Standards and Technology (NIST), an agency of the Federal Government and is being made available as a public service. Pursuant to title 17 United States Code Section 105, works of NIST employees are not subject to copyright protection in the United States. This software may be subject to foreign copyright. Permission in the United States and in foreign countries, to the extent that NIST may hold copyright, to use, copy, modify, create derivative works, and distribute this software and its documentation without fee is hereby granted on a non-exclusive basis, provided that this notice and disclaimer of warranty appears in all copies.
THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION WILL CONFORM TO THE SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT SHALL NIST BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY, CONTRACT, TORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED HEREUNDER.
To see the latest statement, please visit: [https://www.nist.gov/director/copyright-fair-use-and-licensing-statements-srd-data-and-software](Copyright, Fair Use, and Licensing Statements for SRD, Data, and Software)
Acknowledgments
- Original HOTA implementation by Jonathon Luiten
Contact
- Author: Michael Majurski
- Email: michael.majurski@nist.gov
- Project Link: https://github.com/usnistgov/reid_hota
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reid_hota-0.1.2.tar.gz.
File metadata
- Download URL: reid_hota-0.1.2.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9919eed7e4bda1ac5f4ef55ea4bc42b432062c041115f54c5c3ea390a9d7ef4
|
|
| MD5 |
2f91c4dcb1f76fcb837d603baf306483
|
|
| BLAKE2b-256 |
7b669515ee0b58f92626ed5c9c802d5f1f73654495a77b12bfbb0f4fb3fa4f1e
|
File details
Details for the file reid_hota-0.1.2-py3-none-any.whl.
File metadata
- Download URL: reid_hota-0.1.2-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cffec961799a895f4a8b1c30322b2da44803b153c10bb372ae4d713c3ebb605
|
|
| MD5 |
5d00ab703077dd2b14afcbefa99d4ae0
|
|
| BLAKE2b-256 |
58d591f783c7de1dd374345b765c5b71b35840cc76c208c752e7cd0105e7ef1f
|