Skip to main content

A simple online and realtime tracking algorithm for 2D multiple object tracking in video sequences

Project description

SORT

A simple online and realtime tracking algorithm for 2D multiple object tracking in video sequences. See an example video here.

By Alex Bewley

Introduction

SORT is a barebones implementation of a visual multiple object tracking framework based on rudimentary data association and state estimation techniques. It is designed for online tracking applications where only past and current frames are available and the method produces object identities on the fly. While this minimalistic tracker doesn't handle occlusion or re-entering objects its purpose is to serve as a baseline and testbed for the development of future trackers.

SORT was initially described in this paper. At the time of the initial publication, SORT was ranked the best open source multiple object tracker on the MOT benchmark.

Note: A significant proportion of SORT's accuracy is attributed to the detections. For your convenience, this repo also contains Faster RCNN detections for the MOT benchmark sequences in the benchmark format. To run the detector yourself please see the original Faster RCNN project or the python reimplementation of py-faster-rcnn by Ross Girshick.

Also see: A new and improved version of SORT with a Deep Association Metric implemented in tensorflow is available at https://github.com/nwojke/deep_sort .

This fork packages the SORT algorithm as a pip package (simple-online-realtime-tracking).

License

SORT is released under the GPL License (refer to the LICENSE file for details) to promote the open use of the tracker and future improvements. If you require a permissive license contact Alex (alex@bewley.ai).

Citing SORT

If you find this repo useful in your research, please consider citing:

@inproceedings{Bewley2016_sort,
  author={Bewley, Alex and Ge, Zongyuan and Ott, Lionel and Ramos, Fabio and Upcroft, Ben},
  booktitle={2016 IEEE International Conference on Image Processing (ICIP)},
  title={Simple online and realtime tracking},
  year={2016},
  pages={3464-3468},
  keywords={Benchmark testing;Complexity theory;Detectors;Kalman filters;Target tracking;Visualization;Computer Vision;Data Association;Detection;Multiple Object Tracking},
  doi={10.1109/ICIP.2016.7533003}
}

Installing:

To install the package:

pip install simple-online-realtime-tracking==0.2

Main Results

Using the MOT challenge devkit the method produces the following results (as described in the paper).

Sequence Rcll Prcn FAR GT MT PT ML FP FN IDs FM MOTA MOTP MOTAL
TUD-Campus 68.5 94.3 0.21 8 6 2 0 15 113 6 9 62.7 73.7 64.1
ETH-Sunnyday 77.5 81.9 0.90 30 11 16 3 319 418 22 54 59.1 74.4 60.3
ETH-Pedcross2 51.9 90.8 0.39 133 17 60 56 330 3014 77 103 45.4 74.8 46.6
ADL-Rundle-8 44.3 75.8 1.47 28 6 16 6 959 3781 103 211 28.6 71.1 30.1
Venice-2 42.5 64.8 2.75 26 7 9 10 1650 4109 57 106 18.6 73.4 19.3
KITTI-17 67.1 92.3 0.26 9 1 8 0 38 225 9 16 60.2 72.3 61.3
Overall 49.5 77.5 1.24 234 48 111 75 3311 11660 274 499 34.0 73.3 35.1

Using SORT in your own project

Below is the gist of how to instantiate and update SORT. See the 'main' section of sort.py for a complete example.

from sort import Sort

#create instance of SORT
mot_tracker = Sort() 

# get detections
...

# update SORT
track_bbs_ids = mot_tracker.update(detections)

# track_bbs_ids is a np array where each row contains a valid bounding box and track_id (last column)
...

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

simple-online-realtime-tracking-0.3.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

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

simple_online_realtime_tracking-0.3-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file simple-online-realtime-tracking-0.3.tar.gz.

File metadata

  • Download URL: simple-online-realtime-tracking-0.3.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

File hashes

Hashes for simple-online-realtime-tracking-0.3.tar.gz
Algorithm Hash digest
SHA256 6a37f74fade51e246685be8a9e9eb06b5c5034b10552d8fb5f28a303485e80f7
MD5 9230a6af0b41ed2ad9d87b03ce35622d
BLAKE2b-256 aa298a343ba98a1c2970c2ed86b0393cccf8f9ef32a94168fc740bac9f09f9e1

See more details on using hashes here.

File details

Details for the file simple_online_realtime_tracking-0.3-py3-none-any.whl.

File metadata

  • Download URL: simple_online_realtime_tracking-0.3-py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

File hashes

Hashes for simple_online_realtime_tracking-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 634f148518cd3a22d90a82058d4fe0b2ef328c92b5f7b474b85665f77e1be923
MD5 4904bd491b75eb91ea0566f303685e65
BLAKE2b-256 79a4ee1f7a0417cb2e4d27d506447f46a5a33ef38f5e49a5dc2c5b27bb3ea1ba

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