Python module bindings for SORT algorithm (Simple, Online, and Realtime Tracking) implemented in C++, with the goal of being fast and easy to use. Tracker is based on this repo.
Before you can install the package, you need to install the following dependencies:
$ sudo apt install libopencv-dev
$ sudo apt install libeigen3-dev
Make sure pip is upgraded to last version:
$ pip install pip --upgrade
Then you can install the package using:
$ pip install sort-tracker
or
$ git clone https://github.com/MrGolden1/sort-python.git
$ cd sort-python
$ pip install .
import sort
# Create a tracker with max_age = 5, min_hits = 3 and iou_threshold = 0.2
# Default values are max_age = 3, min_hits = 1 and iou_threshold = 0.3
tracker = sort.SORT(max_age=5, min_hits=3, iou_threshold=0.2)
Two main methods are available named run
and get_tracks
and you can specify format of input and output bounding boxes as follows:
# format (int):
# 0: [xmin, ymin, w, h]
# 1: [xcenter, ycenter, w, h]
# 2: [xmin, ymin, xmax, ymax]
defaulf format is 0.
run
method takes an array of bounding boxes and format, and then performs tracking.
# Input:
# bounding_boxes: a numpy array of bounding boxes [n, 4]
# format: format of bounding boxes (int)
import numpy as np
bounding_boxes = np.array([[10, 10, 20, 20], [30, 30, 40, 40]])
tracker.run(bounding_boxes, 0)
get_tracks
method returns a array of tracks.
# Input:
# format: format of bounding boxes (int)
# Output:
# tracks: a numpy array of tracks [n, 5] where n is the number of tracks
# and 5 is (id, ..., ..., ..., ...) where id is the track id and ... is the bounding box in the specified format
tracks = tracker.get_tracks(0)
Author: MrGolden1
Email: ali.zarrinzadeh@gmail.com