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 行の変更でアルゴリズムを簡単に切り替え可能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト