Skip to main content

Tracker using kinematic Kalman filters.

Reason this release was yanked:

The experimental association metric iou-like-two-yaw does not work with numpy<=2.0.0 (should have used np.arccos, not np.acos)

Project description

Kinematic Tracker

logo logo

📖 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.
  • 3D axes-aligned GIoU (volumetric GIoU for cuboids).
  • 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

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

kinematic_tracker-20.6.0.tar.gz (264.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kinematic_tracker-20.6.0-py3-none-any.whl (58.1 kB view details)

Uploaded Python 3

File details

Details for the file kinematic_tracker-20.6.0.tar.gz.

File metadata

  • Download URL: kinematic_tracker-20.6.0.tar.gz
  • Upload date:
  • Size: 264.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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}

File hashes

Hashes for kinematic_tracker-20.6.0.tar.gz
Algorithm Hash digest
SHA256 55d9864aaf3f6231713660799d2cfaa86fa73da9399b5bb5425d65a4ae8b50f4
MD5 dc344d5b7d5e25b832bb7bc4d99914ce
BLAKE2b-256 80dd0016a2a3bb9a502afbfddd9bb1eca80fd9119f950e319d6b52fef7fafa32

See more details on using hashes here.

File details

Details for the file kinematic_tracker-20.6.0-py3-none-any.whl.

File metadata

  • Download URL: kinematic_tracker-20.6.0-py3-none-any.whl
  • Upload date:
  • Size: 58.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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}

File hashes

Hashes for kinematic_tracker-20.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5495251eebd644429c139ed4e830b96d4aaa619c894793c14b030ff0692de654
MD5 2a141cafd965745f7d29a935c2f10164
BLAKE2b-256 403b48d3323cdf35b13fc5894be95d4ef4bb221d0bf414dcf35a83f3d5a2d9d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page