QSORT(Quick + Simple Online and Realtime Tracking) is a simple online and realtime tracking algorithm for 2D multiple object tracking in video sequences. It is much faster than SORT(Simple Online and Realtime Tracking). But its performance is a little worse than SORT.
This method and project are heavily based on abewley/sort.
Note: A significant proportion of QSORT’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.
What is different from SORT?
QSORT is SORT skipping the Kalman Filter. That’s it.
To install required dependencies run:
pip install -r requirements.txt
To run the tracker with the provided detections:
cd path/to/qsort python qsort.py
To display the results you need to:
- Download the 2D MOT 2015 benchmark dataset and unzip this file.
- Create a symbolic link to the dataset
ln -s /path/to/MOT15 MOT15
- Run the demo with the
python qsort.py --display
Using the MOT challenge devkit the method produces the following results (as described in the paper).
- Sequence: TUD-Campus, ETH-Sunnyday, ETH-Pedcross2, ADL-Rundle-8, Venice-2, and KITTI-17
- MOTA, FPS: Higher is better.
- IDs: Lower is better.
FPS is measured on a Intel I5 10400 CPU.
Using QSORT in your own project
from qsort import * #create instance of QSORT mot_tracker = QSORT() # get detections ... # update QSORT 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) ...