Package Exports
- object-tracking-measure
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (object-tracking-measure) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Object Tracking measure
This project aims to calculate metrics for tracking algorithm (especially MOTA, IDF1)
MOTA
See [1].
const otm = require('object-tracking-measure');
const groundTruths = [
[
[22, 33, 20, 20],// x, y, w, h
[22, 33, 20, 20],
[22, 33, 20, 20],
[22, 33, 20, 20]
],
[
[22, 33, 20, 20],// x, y, w, h
null,
[25, 35, 20, 20],
[39, 41, 20, 20]
]
];
const predictions = [
[
[23, 33, 22, 20],// x, y, w, h
[21, 35, 20, 26],
[23, 33, 22, 20],
[21, 35, 20, 26]
],
[
[23, 33, 20, 20],// x, y, w, h
null,
[23, 35, 22, 20],
[39, 35, 20, 26]
]
];
otm.mota({
groundTruths,
predictions
});IDF1
See [2].
const otm = require('object-tracking-measure');
const groundTruths = [
[
[22, 33, 20, 20],// x, y, w, h
[22, 33, 20, 20],
[22, 33, 20, 20],
[22, 33, 20, 20]
],
[
[22, 33, 20, 20],// x, y, w, h
null,
[25, 35, 20, 20],
[39, 41, 20, 20]
]
];
const predictions = [
[
[23, 33, 22, 20],// x, y, w, h
[21, 35, 20, 26],
[23, 33, 22, 20],
[21, 35, 20, 26]
],
[
[23, 33, 20, 20],// x, y, w, h
null,
[23, 35, 22, 20],
[39, 35, 20, 26]
]
];
otm.idf1({
groundTruths,
predictions
});Advanced usage
By default, object-tracking-measure uses
- distance between boxes is (1 - Intersection Over Union) (using (mean-average-precision)[https://www.npmjs.com/package/mean-average-precision] library)
- threshold is 1 (i.e. IOU = 0 - no overlap)
You can cutomize this, for example to track distance between {x,y} points like
const otm = require('object-tracking-measure');
const groundTruths = [
[
{x: 22, y: 34},
{x: 22, y: 34},
{x: 22, y: 34},
{x: 22, y: 34}
],
[
{x: 55, y: 68},// x, y, w, h
null,
{x: 55, y: 68},
{x: 55, y: 68}
]
];
const predictions = [
[
{x: 22, y: 34},// x, y, w, h
{x: 22, y: 34},
{x: 22, y: 34},
{x: 22, y: 34}
],
[
{x: 55, y: 68},// x, y, w, h
null,
{x: 55, y: 68},
{x: 55, y: 68}
]
];
otm.idf1({
groundTruths,
predictions,
distFn: ((a,b) => Math.sqrt(((a.x - b.x) * (a.x - b.x)) + ((a.y - b.y) * (a.y - b.y)))), // Euclidian distance
threshold: 2 // means that 2 meters far is too far
});References
[1] Keni Bernardin and Rainer Stiefelhagen (2008). Evaluating Multiple Object Tracking Performance: The CLEAR MOT Metrics
[2] Ergys Ristani1, Francesco Solera2, Roger S. Zou1, Rita Cucchiara2, and Carlo Tomasi1 (2016). Performance Measures and a Data Set for Multi-Target, Multi-Camera Tracking