Package: simple-online-realtime-tracking
SORTA simple online and realtime tracking algorithm for 2D multiple object tracking in video sequences.
See an examplevideo here.By Alex BewleyIntroductionSORT 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 inthis paper. At the time of the initial publication, SORT was ranked the bestopen sourcemultiple object tracker on theMOT benchmark.Note:A significant proportion of SORT's accuracy is attributed to the detections.
For your convenience, this repo also containsFasterRCNN detections for the MOT benchmark sequences in thebenchmark format. To run the detector yourself please see the originalFasterRCNN projector the python reimplementation ofpy-faster-rcnnby Ross Girshick.Also see:A new and improved version of SORT with a Deep Association Metric implemented in tensorflow is available athttps://github.com/nwojke/deep_sort.This fork packages the SORT algorithm as a pip package (simple-online-realtime-tracking).LicenseSORT 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 SORTIf 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.2Main ResultsUsing theMOT challenge devkitthe method produces the following results (as described in the paper).SequenceRcllPrcnFARGT  MT  PT  MLFP    FN  IDs   FMMOTA  MOTP MOTALTUD-Campus68.594.30.218   6   2   015   113    6    962.7  73.7  64.1ETH-Sunnyday77.581.90.9030  11  16   3319   418   22   5459.1  74.4  60.3ETH-Pedcross251.990.80.39133  17  60  56330  3014   77  10345.4  74.8  46.6ADL-Rundle-844.375.81.4728   6  16   6959  3781  103  21128.6  71.1  30.1Venice-242.564.82.7526   7   9  101650  4109   57  10618.6  73.4  19.3KITTI-1767.192.30.269   1   8   038   225    9   1660.2  72.3  61.3Overall49.577.51.24234  48 111  753311 11660  274  49934.0  73.3  35.1Using SORT in your own projectBelow is the gist of how to instantiate and update SORT. See the'main'section ofsort.pyfor 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)
...