A C++17 tracking switchboard wired for four famous algorithms
DeepTracker wraps ByteTrack, OC-SORT, Deep OC-SORT and DeepSORT behind a single C++ interface so you can swap tracking strategies without rewriting your pipeline.

What it does
DeepTracker is a real-time multi-object tracking application built in C++17 with Qt 6 and ONNX Runtime. It runs a YOLO detector through one of four pluggable trackers—ByteTrack, OC-SORT, Deep OC-SORT, or DeepSORT—behind a thin ITracker interface. A Qt desktop app provides interactive tracking with live preview and trajectory trails, while a command-line demo handles headless use.
The interesting bit
The project treats tracker choice as a policy decision rather than an architectural one. ByteTrack, OC-SORT and Deep OC-SORT all inherit from a shared BaseTracker template-method pipeline and override virtual hooks to change association behavior, while DeepSORT stands alone with its own faithful age-ordered cascade, 100-frame feature gallery, and χ² motion gating. Switching between them is nominally a one-line change.
Key highlights
- All four trackers share the same
ITrackerinterface (update,reset,frame_id) and a constant-velocity Kalman filter on the[cx, cy, aspect, height]state. - Detection and ReID embeddings run through ONNX Runtime with plain
.onnxfiles, so models can be swapped without recompiling; inference defaults to CPU but can target CUDA, DirectML, or OpenVINO without touching tracking code. - DeepSORT falls back to ByteTrack automatically when no ReID model is present, and Deep OC-SORT likewise degrades to plain OC-SORT without appearance features.
- The Qt GUI discovers models automatically, supports color-theme switching, and exposes Global Motion Compensation options (
sparseOptFlow,orb,sift,ecc) for moving-camera footage. - Association math includes a Jonker–Volgenant linear assignment solver and both IoU and embedding distance matrices.
Caveats
- Tracker parameters are compiled-in presets inside
src/core/tracker_config.cpp; tuning behavior requires editing C++ and rebuilding. - The build system is Windows-centric: it expects Visual Studio 2022, Qt 6.9.x, and prebuilt OpenCV and ONNX Runtime libraries placed under
external/. - The README does not mention Linux or macOS build instructions, and the
.profile paths suggest a Windows-first deployment.
Verdict
Worth a look if you need a self-contained C++ tracker with algorithmic variety and a Qt frontend. Skip it if you were hoping for runtime parameter tuning or a cross-platform build out of the box.
Frequently asked
- What is shaoshengsong/DeepSORT?
- DeepTracker wraps ByteTrack, OC-SORT, Deep OC-SORT and DeepSORT behind a single C++ interface so you can swap tracking strategies without rewriting your pipeline.
- Is DeepSORT open source?
- Yes — shaoshengsong/DeepSORT is an open-source project tracked on heatdrop.
- What language is DeepSORT written in?
- shaoshengsong/DeepSORT is primarily written in C++.
- How popular is DeepSORT?
- shaoshengsong/DeepSORT has 1k stars on GitHub.
- Where can I find DeepSORT?
- shaoshengsong/DeepSORT is on GitHub at https://github.com/shaoshengsong/DeepSORT.