Skip to main content

Object tracker for stereo images and video

Project description

# YASMOT: Yet Another Stereo Image Multi-Object Tracker

This is a program that parses the output from a typical object detector (Yolo and RetinaNet are supported) applied to video or a series of still images, and tracks the objects over time.

The usage is probably best illustrated by the test cases or the help text generated by yasmot –help.

## Tracking

As usual, tracking consists of defining a distance measure between object detection bounding boxes, and then using the Hungarian algorithm to find the best pairing.

The input is either one or more directories of individual frame annotations (as produced by YOLO), or one or more CSV-files with a table of annotations (as produced by e.g. RetinaNet).

Output is a list of tracks (i.e. the set of detections for each object), with a summary of the class detections for each track. Then follows a list of frames with the object detections labeled with track ID, which may be redirected to a file with -o.

## Interpolation

Missing detections can be interpolated by specifying the –interpolate option, the interpolated (inferred) detections will have a probability of 0.0000.

## Stereo images

The -s option links objects taken with a stereoscopic camera setup. Normally tracks will be generated, but the –no-track option can be specified to only link detections between the cameras, and not in time.

## Using pixel-based coordinates

YOLO outputs image coordinates as fractional images, i.e. values range from 0 to 1. Some object detectors (including RetinaNet) outputs a CSV file with pixel-based coordinates. Since yasmot may not have the images available, you therefore need to specify the pixel size of the images, e.g. as –shape 1228,1027.

## Consensus predictions

If you run multiple object detectors, it may be useful to combine the outputs into a consensus set of predictions. This can be achieved by specifying the -c option. Again you can use –no-track if you just want the frame-by-frame consensus and not perform tracking as well.

## Controlling tracking parameters

The –scale parameter controls how the different bounding box pairs are ranked when considered for tracking (or stereo matching). The algorithm uses a Gaussian score for position and size, and this parameter controls the sharpness (or temperature) of the Gaussian. Generally, if you have large changes between frames (rapidly moving objects or low frame rate, you can try reducing this parameter.

Tracks are maintained across missing detections, this is controlled by the parameter –max_age. The age is determined based on the frame name, and unless the frame name is a plain number, the extraction can be specified with –time_pattern.

In case there are classes representing an unknown or unidentified object, it is possible to specify the label with the –unknown parameter to avoid having this class be called as a consensus class.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yasmot-0.10.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

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

yasmot-0.10-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file yasmot-0.10.tar.gz.

File metadata

  • Download URL: yasmot-0.10.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for yasmot-0.10.tar.gz
Algorithm Hash digest
SHA256 496e40a6fd7344a6c349c4d556207e8bce87d5225f33ad957cda69b3685f551f
MD5 16d118c72f9d10911fad839fc8cbd3dd
BLAKE2b-256 8cedd2c4179f4eed8f89800b5c80d9fd3eb13b39a9320fd04b18dda60c24dc21

See more details on using hashes here.

File details

Details for the file yasmot-0.10-py3-none-any.whl.

File metadata

  • Download URL: yasmot-0.10-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for yasmot-0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 b8819632b557b39e7f3659e8743e561c765d083bb3b1c957ce71a237a6c3950d
MD5 262ce254b91c2273f614b75664410550
BLAKE2b-256 c5c5e3f88f81b9d1f4e7e4e8da5cd8cdf48b60dd6318ddfde187019fac39bc1e

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