Yolo ターゲット追跡: カルマン フィルター + ハンガリアン マッチング アルゴリズム + ディープソート アルゴリズム

1. プロジェクトのアイデア

ターゲット追跡は、ターゲット検出アルゴリズムに基づいており、画像の各フレームで検出されたターゲットが追跡されます。逆に、ターゲット検出アルゴリズムが現在のターゲットを検出した場合にのみターゲットを追跡できるため、追跡効果はターゲット検出効果に依存します。

  • (1)カルマンフィルターによるステータス更新。各トラッカートラックは、現在の状態に基づいて次の瞬間の状態を予測し、ターゲット検出によって得られた結果に基づいて推定値を修正する必要があります。その中で、最初のフレームで検出されたターゲット情報は、カルマン フィルターの状態変数 (トラッカー) を初期化するために使用されます。
  • (2)ハンガリーのマッチング アルゴリズムによるターゲット マッチングを実行しますマッチング方法としては、カルマンフィルタリングによる8状態ベクトルマッチングによるもの、外観特徴マッチングの深層学習歩行者再識別ネットワークモデルによるもの、IOU重複領域マッチングによるものがあります。3 つの方法によるスクリーニングの後、最小の代替価格マトリックス (例: Tian Ji 競馬) を持つターゲットが、現在追跡されているターゲットとして定義されます。

ここに画像の説明を挿入

2. 詳細なアルゴリズム

2.1、カルマン フィルター アルゴリズム

最終的な目標: 重み項目 (カルマン ゲイン K) をトレーニングして、最終的な K 値が最適値の不確実性を最小限に抑えることができるようにすること。 その中で、最初のフレームで検出されたターゲット情報は、カルマン フィルターの状態変数 (トラッカー) を初期化するために使用されます。
この記事は、(1) 車の位置推定 (入門)、(2) 理論的導出の詳細なプロセス (熟達)、(3) 例を使ったデモンストレーション (実際の戦闘) の 3 つの部分で説明されています。

2.1.1. 自車位置推定(はじめに)

現在の状態の最適値の実現プロセス:現在の状態の推定値を予測するために最後の状態の最適値を使用し、現在の状態の最適値を取得するために推定値を修正するために現在取得された測定値を使用します。州。
最適値を得るための影響要因: (1) センサー自体の測定値は不正確です; (2) 理論的導出によって得られた推定値と実際の状況によって得られた測定値の間には、ある程度の誤差があります。
ここに画像の説明を挿入

2.1.2. 理論導出の詳細プロセス(熟達)

bilibili動画解説:諦めから使いこなすまで!カルマンフィルターの理論から実践まで~ここに画像の説明を挿入
テキストグラフィック カルマンフィルター(Kalman Filter)
カルマンフィルター(Kalman Filtering)の詳しい説明:詳細な導出過程
カルマンフィルター、最も分かりやすい説明 インターネットで検索してこの記事を理解してください。

2.1.3. 例

ここに画像の説明を挿入

2.1.4. アプリケーション: 考慮する必要がある 8 つの状態の追跡

ここに画像の説明を挿入

2.2. ハンガリー語マッチングアルゴリズム

最終的な目標: マッチング後のコスト マトリックスを最小化すること (例: Tian Ji 競馬)。短所: この方法は最適なマッチングではありませんが、すべてのターゲットを可能な限り一致させます。sklearn と scipy には、ハンガリー語マッチング アルゴリズム用の API インターフェイスがあります: (1) 【sklearn】linear_assignment()(2) 【scipy】linear_sum_assignment()そのため、ご利用の際は用意したコードマトリクスを入力するだけで済みます。

(備考:APIインターフェースはすでにありますが、アルゴリズムの原理をより理解するために、詳細な分析と例が行われています。この部分の内容は、必要に応じて選択してください。)

2.2.1. バックグラウンドインポート

画像の同じフレームで、検出するターゲットが N 個ある場合 (たとえば、画像に 30 人の人物がいる場合)、ターゲット検出アルゴリズムは N 個のターゲットを検出し、カルマン フィルターは次のフレームで対応するターゲットをそれぞれ予測します。画像ターゲットのフレーム (8 つのステータス メッセージ)。では、現在のフレーム画像の複数のターゲットを、次のフレーム画像の対応するトラッカー トラックと一致させ、一致後のコストを最小化するにはどうすればよいでしょうか?

  • 状況 1: 2 人の人物が非常に接近しているか、重なり合っているため、区別ができません。
  • ケース 2: 現在のフレーム画像には 8 つのトラッカーがありますが、次のフレーム画像には 10 のターゲットがあります。

2.2.2. アルゴリズムマッチングの原理と詳細な計算手順

ここに画像の説明を挿入

2.2.3. 例

ここに画像の説明を挿入

2.2.4. コストマトリックスの 3 つの形式 (モーション + 外観 + IOU)

マッチング方法は順番に3通りあります。

  • 第一歩:スポーツ情報マッチング合格カルマン フィルター次フレームの8個の推定状態量を求め、推定結果を次フレームの実検出結果と比較して、動き情報のコスト行列を求める。
  • ステップ 2: 外観のマッチング.ディープソートの核心。

歩行者再識別ネットワーク モデル (ReID) は、 ReID 特徴抽出に使用され、歩行者特徴に対する抽出効果が最も優れています。注: 人体追跡にのみ適しています。他のターゲットの場合は、カスタム + セルフ トレーニング モデルが必要です。主なプロセス: 特徴抽出のためにターゲット ボックス bbox を歩行者再識別モデルに入力し、128 次元の特徴ベクトルを取得します。

(1)現フレームトラッカーで得られたターゲットフレーム bbox1 に対して畳み込みまたは特徴抽出 (歩行者再識別モデル) を実行し、 128 次元のベクトルを取得します。このベクトルは、ターゲット 1 の外観情報特性を表します。重要な知識: 現在、各トラックには機能シーケンスがあります: [128-T1,128-T2,...,128-TM]. このうち、T はフレーム時間を表し、最大フレーム時間 M=100 (論文で規定) を超えた場合、前のフレームが失われ、次のフレームが保証されます。各フレーム時間は 128 次元のベクトルを取得し、フィーチャ シーケンスは、各トラッカー トラックが M フレーム時間で追跡する M ターゲット情報を保存することを表し、ターゲットは同じでも異なっていてもかまいません。
(2)同様に、次フレームのターゲット検出で得られたN個のターゲットフレームを同様の操作で求め、N個の128次元ベクトルを求める。
(3)次のフレームで検出された任意のターゲットの 128 次元ベクトルと、前のフレームだけでなく、現在のフレームのターゲット ボックス bbox1 の特徴シーケンス内のすべてのフレーム時間の 128 次元ベクトルとの間のコサイン類似度を計算します。コスト行列を構成し、最終的に類似度が最大のターゲット フレームが、現在のフレームのターゲット フレームと同じターゲットとして識別されます
たとえば、ターゲットが現在のフレームで消えて検出できず、数フレーム後に引き続き表示される場合、ターゲット情報は前の M フレームで利用できるため、ターゲットの検出と追跡を同時に行うことができます。

  • 3 番目のステップ: IOU マッチング (バウンディング ボックス、bbox)次のフレームのターゲット ボックスと現在のフレームのターゲット ボックスの間の IOU 重複領域を示します。1-IOU は IOU の距離を意味します。

2.2.5. 歩行者再識別ネットワークモデル (ReID)

ここに画像の説明を挿入

2.3. 追跡アルゴリズム

ディープソート アルゴリズムは、ソート アルゴリズムに基づいてディープ ラーニング モデル抽出機能 (カスケード マッチング、ステータス確認) を追加します. ソート アルゴリズムのコアは、カルマン フィルター アルゴリズムとハンガリアン アルゴリズムです。

2.3.1、ソートアルゴリズム

詳細なアルゴリズム フロー:

  • (1)最初のフレームで検出されたターゲット情報を使用して、カルマン フィルターの状態変数を初期化します (トラッカー トラック). 例: 10 人が 10 個のトラッカーを持っています。
  • (2)合格カルマン フィルター次のフレームを予測して状態推定を取得し、yolo ターゲット検出 (Detections) を使用して実際の検出値を取得し、次に進みますIOU匹配(IOU Match)
    • 一致結果 1: Unmatched Tracks (Unmatched Tracks)。例: 前のフレームで 8 つのトラックが初期化されましたが、次のフレームで一部のターゲットがブロックまたは消失しました。消去このトラック。
    • 一致結果 2:一致しない検出。例: 前のフレームで 8 つのトラックが初期化されましたが、次のフレームには 10 個の検出フレームがあり、追加2 つの初期化トラック。
    • 一致結果 3:一致した検出ボックスとトラッカー (Matched Tracks)。 現在のターゲットの状態ベクトルを更新します。
  • (3) ビデオフレームの終わりまでステップ (2) を繰り返します。

ここに画像の説明を挿入

2.3.2、ディープソート アルゴリズム

詳細なアルゴリズム フロー:ターゲット トラッキング - ディープソートの原理の説明

  • (1)最初のフレームで検出されたターゲット情報を使用して、カルマン フィルター (トラッカー トラック) の状態変数を初期化し、ターゲット フレームがビデオに表示される前に、ターゲット フレームが 3 つの連続するフレームのターゲットに一致する必要があります. それ以前は、カスケード マッチングは実行されず、IOUマッチングは行いません。. 例: 10 人が 10 個のトラッカーを持っています。
  • (2)合格カルマン フィルター次のフレームを予測して状態推定を取得し、yolo ターゲット検出 (Detections) を使用して実際の検出値を取得します。

ケース 1:クラックが 3 フレーム連続でターゲットと一致した場合、確認済みとして定義され、マッチング カスケードに入る
ケース 2: それ以外の場合、未確認として定義され、そのまま進むIOU匹配(IOU Match)

マッチング カスケード カスケード マッチング。優先度マッチングとも呼ばれます。
11. カルマン フィルターによって予測された動きの特徴と、深層学習モデルによって抽出された ReID の外観特徴との間の距離を計算して、新しいコスト マトリックスを形成します。
22. 画像の最初の 100 フレームに、それぞれ 100 回、100 回、90 回、および 60 回一致する 4 つのトラックがあるとします。次に、101 番目のフレーム画像は、最初に一致回数が最も多いトラック 1 とトラック 2 で IOU マッチングを実行し、残りのトラック 3/4 は、トラック 1/2 マッチングの残りのターゲット フレームで IOU マッチングを実行します。

備考:ハンガリアンマッチングアルゴリズムの特徴は、すべてのターゲットをできるだけうまくマッチングさせることであるため、カスケードマッチングとIOUマッチングにはゲートユニット(ゲートユニット)が設定されます。一致結果がしきい値よりも大きい場合、2 つの値の差が大きすぎて要件を満たすことができないため、これらを一緒に一致させることはできません。

  • 一致結果 1: Unmatched Tracks (Unmatched Tracks)。 2 つの状況があります: 1 つは非確認状態 Unconfirmed で、ターゲットが一致しない場合、セカンダリ トラックは直接削除されます。もう 1 つは、確認済み状態 Confirmed で、ターゲットが 70 連続フレームで一致しない場合です。消去このトラック、そうでなければ次のフレームに戻り、確認ステータスのカスケード マッチングを実行します。 例: 前のフレームで 8 つのトラックが初期化されました。しかし、次のフレームの一部のターゲットはブロックされたり消えたりします。
  • 一致結果 2:一致しない検出。 例: 前のフレームで 8 つのトラックが初期化されましたが、次のフレームでは 10 の検出フレームがあり、特定の条件が満たされると、次のようになります。追加2 つの初期化トラック。
  • 一致結果 3:一致した検出ボックスとトラッカー (Matched Tracks)。 更新する現在のターゲットの状態ベクトル。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/shinuone/article/details/129639864