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 検出器を使用します。その後、4 つの追跡アルゴリズムのいずれかを適用して、これらの検出結果を既存のトラックと関連付けます。すべてのトラッカーは共通の 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 をベースにしたデスクトップアプリと、スクリプティング用のコマンドラインツールを備える。
- モジュールアーキテクチャ:すべてのトラッカーが共有インターフェースを実装しており、1 行の変更でアルゴリズムを簡単に切り替え可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト