Kinematic Tracker
📖 Live docs: https://kovalp.github.io/kinematic-tracker-docs/
This tracker is based on kinematic Kalman filters. The system state can consist of multiple parts,
each defined by its kinematic order and dimensionality. For example, to track cuboids
aligned with Cartesian axes, we might decide for a constant-acceleration motion model
for Cartesian coordinates and a constant-position motion model for the sizes of the cuboids.
This choice encoded by orders = [3, 1]. The dimensionality of both parts (coordinates and sizes)
is 3. Therefore dimensions = [3, 3] in our example.
The state of the cuboids aligned with Cartesian axis will have 12 variables. Internally, a block-diagonal states are used, i.e.
state = p_x, v_x, a_x, p_y, v_y, a_y, p_z, v_z, a_z, s_x, s_y, s_z
To simplify the input/output processing, one might find attractive a derivative-sorted order
state = p_x, p_y, p_z, s_x, s_y, s_z, v_x, v_y, v_z, a_x, a_y, a_z
This package provides utility classes for such conversion (block-diagonal ↔ derivative sorted).
Process noise models
The tracker supports various process noise models, including a custom adaptive process noise model based on a white-noise assumption.
Association metrics
A number of association metrics are implemented. Some of the metrics are experimental.
- Mahalanobis with a process-measurement noise sum covariance (HPH + R) -- default.
- Axes-aligned GIoU for segments, bounding boxes, cuboids etc.
- 3D yaw-only GIoU (volumetric GIoU for cuboids oriented by yaw).
- Mahalanobis with size-modulated covariance (experimental).
- IoU-like two-yaw (experimental): based on Mahalanobis distance with diagonal covariance.
Installation
If you plan to use OpenCV with HighGUI, then
pip install kinematic-tracker[gui]
If you do not plan to use OpenCV's GUI, then
pip install kinematic-tracker[headless]
In any case, you choose one extra: gui or headless.
Usage
Simple examples are available in the test/tutorials folder.
The test folder is available in the source package
pip download kinematic-tracker --no-binary :all: --no-deps
Use the kinematic-tracker as dependency
uv add kinematic-tracker --extra headless
If you happen to need GUI-enabled version of OpenCV, then
uv add kinematic-tracker --extra gui
Metadata
Release files for kinematic-tracker 24.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kinematic_tracker-24.2.0.tar.gz | 291.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kinematic_tracker-24.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 351.2 kB
Release files / kinematic_tracker-24.2.0.tar.gz
| Download URL | kinematic_tracker-24.2.0.tar.gz |
|---|---|
| Size | 291.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
810ddfa6d9d8b937e37830a9f0d018060d20b6e459b5eeaa0af2bfa37a23372f
|
|
BLAKE2b-256 checksum How to use checksums |
9f9f963c0491e0f4198a3c7f5bbb57dd95d909c329c18db6110061fc381d82da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / kinematic_tracker-24.2.0-py3-none-any.whl
| Download URL | kinematic_tracker-24.2.0-py3-none-any.whl |
|---|---|
| Size | 59.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
739fb937a0bb0d2fcb4117608684cef4d867abb12a96c9e4c8fd845a78a0ecca
|
|
BLAKE2b-256 checksum How to use checksums |
ef2780c358fa0312525fb14c12f1886b25cb2a2498f06b3aa807d97e2757e2af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|