javascript implementation of "tracker by detections" for realtime multiple object tracking (MOT)
Full Changelog: https://github.com/opendatacam/node-moving-things-tracker/compare/v0.9.0...v0.9.1
Full Changelog: https://github.com/opendatacam/node-moving-things-tracker/compare/v0.8.1...v0.9.0
v0.8.0 is a @vsaw contribution
see https://github.com/opendatacam/node-moving-things-tracker/pull/19
Features: Reset idDisplay, configurable fast delete and custom distance function
Resetting the tracker did not affect the item ID. Therefore multiple tests runs on the same file were difficult to evaluate as one had to offset the later runs to get the actual number of the items tracked.
This pull request fixes this. As it introduces a new reset function for ItemsTracked.
To prove it is working, jasmine tests with GitHub Actions are included. As GitHub does not run the checks in the opendatacam repository see the passing checks in my fork here: https://github.com/vsaw/node-moving-things-tracker/actions/runs/202256302
This allows to configure if detections should be removed quickly in cases where they were detected and could not be matched afterwards.
Fast deletion can be enabled/disabled via:
Tracker.setParams({ fastDelete: false });
Again passing tests can be see here https://github.com/vsaw/node-moving-things-tracker/pull/2/checks
In cases where one wants to try with a custom distance function it can now be passed to the Tracer as follows:
// See https://en.wikipedia.org/wiki/Taxicab_geometry
function l1metric(item1, item2) {
// Get the x and y distance, in relation to the item size
const xDist = Math.abs(item1.x - item2.x) / ((item1.w + item2.w) / 2);
const yDist = Math.abs(item1.y - item2.y) / ((item1.h + item2.h) / 2);
return xDist + yDist;
}
Tracker.setParams({ distanceFunc: l1metric });
Bearing was incorrect in some cases
Fix: Do not round bbox coordinates in mode opendatacam-darknet