shaoshengsong/DeepSORT
A real-time multi-object tracking application in C++17 with Qt and ONNX Runtime that runs a YOLO detector with four pluggable trackers — ByteTrack, OC-SORT, Deep OC-SORT, and DeepSORT.
解決的問題
DeepTracker 是一個用於影片的即時多物件追蹤(MOT)系統。它允許使用者在影片幀之間識別並維持多個物件(例如人)的身分,能處理遮蔽、運動模糊和移動鏡頭等挑戰。
工作原理
系統使用 YOLO 檢測器在每一幀中尋找物件。然後應用四種追蹤演算法之一,將這些檢測結果與現有軌跡關聯起來。所有追蹤器共享一個通用的 C++ 接口(ITracker)和用於運動預測的恆定速度卡爾曼濾波器。
根據所選演算法,系統使用不同方法進行物件關聯:
- ByteTrack:利用運動資訊(IoU 和置信度)恢復因遮蔽而遺失的軌跡。
- OC-SORT:專注於運動(觀測中心)以處理模糊和遮蔽,無需外觀模型。
- Deep OC-SORT:結合運動與外觀特徵,並加入全域運動補償(GMC)以應對移動鏡頭。
- DeepSORT:結合外觀嵌入(ReID)與平方馬氏距離運動門控來維持身分。
推論由 ONNX Runtime 處理,支援使用 .onnx 模型進行檢測與外觀編碼,無需重新編譯。
適用對象
本專案適用於需要高效率 C++ 實作經典多物件追蹤演算法進行影片分析的開發者與研究人員。
主要亮點
- 多種演算法:支援 ByteTrack、OC-SORT、Deep OC-SORT 與 DeepSORT。
- 彈性推論:使用 ONNX Runtime 支援 CPU、CUDA、DirectML 與 OpenVINO 提供者。
- 整合 YOLO:整合 YOLO 檢測器用於初始物件檢測階段。
- 互動式 GUI:包含基於 Qt 的桌面應用程式用於互動式追蹤,以及用於腳本的命令列工具。
- 模組化架構:所有追蹤器均實作共享介面,僅需一行程式碼變更即可輕鬆切換演算法。
相關
- 專案
- 專案
- 專案
- 專案