この記事では、主に、状態推定、マッチング方法、カスケードマッチング、見かけのモデルなどのコアコンテンツを含む、Deep SORTペーパーのコアコンテンツについて説明します。
1.はじめに
Simple Online and Realtime Tracking(SORT)は、非常にシンプルで効果的で実用的なマルチターゲット追跡アルゴリズムです。SORTでは、速度は非常に高速ですが、マッチングはIOUによってのみ行われますが、IDスイッチは依然として非常に大きいです。
この記事では、Deep SORTアルゴリズムを提案します。SORTと比較して、見かけの情報を統合することでSORT のパフォーマンスを向上させます。この拡張により、モデルはターゲットが長時間ブロックされている状況をより適切に処理できるため、IDスイッチインジケーターが45%削減されます。見かけ上の情報もターゲットに対応する特徴です。この論文では、見かけ上の特徴は、大規模な歩行者の再識別データセット(ReIDフィールドでモデルを借用)でトレーニングされた深い相関メトリックを通じて抽出されます。
2.メソッド
2.1状態推定
SORTアルゴリズムの継続では、8次元の状態空間\((u、v、r、h、\ dot {x}、\ dot {y}、\ dot {r}、\ dot {h})\)を使用します。ここで、(u 、v)は、bboxの中心点、幅と高さの比率r、高さh、および画像座標での対応する相対速度を表します。
論文では、定速の線形カルマンフィルターと線形観測モデルを使用し、上記の8次元状態をオブジェクト状態の直接観測モデルとして使用します。
各トラックについて、現在のフレームと最後に正常に一致したフレームとの差が計算されますコード内の対応するtime_since_update変数。この変数は、カルマンフィルターが予測するとインクリメントされ、軌跡が検出に関連付けられると0にリセットされます。
最大経過時間\(A_ {max} \)より古いトラックは、画像領域を離れると見なされ、トラックセットから削除され、削除済み状態に設定されます。コードの最大経過時間のデフォルト値は70です。これは、カスケード一致のループの数です。
検出が既存のトラックと一致しない場合、検出は初期化され、新しいトラックに変換されます。新しいトラックが初期化されると、状態は不定となり、連続する3つのフレームが正常に一致した場合にのみ、不定の状態を決定された状態に変換できます。
不定状態のトラックがn_initフレームの検出と一致しない場合、それは削除済み状態になり、トラックセットから削除されます。
2.2マッチングの問題
割り当て問題の割り当てまたはマッチングの問題、ここでは主に軌道の追跡と観測結果の検出を一致させます。この種のマッチング問題は、ハンガリーアルゴリズム(またはKMアルゴリズム)を使用して解決されることがよくあります。アルゴリズムはコストマトリックスを解決するため、まずコストマトリックスを見つける方法について説明します。
- 二乗マハラノビス距離は、追跡と検出の間の距離を測定するために使用されます。2つはガウス分布を使用して表現するため、マハラノビス距離を使用して2つの分布間の距離を測定するのが適切です。マハラノビス距離は共分散距離とも呼ばれます。これは、2つの未知のサンプルセット間の類似度を計算する効果的な方法であるため、ここでは追跡と検出の一致度を測定します。
\(d_j \)はj番目の検出を表し、\(y_i \)はi番目のトラックを表し、\(S_i ^ {-1} \)はdとyの共分散を表します。
2番目の数式は、マハラノビス距離とカイ2乗分布のしきい値\(t ^ {(1)} \) = 9.4877を比較するインジケーターです。マハラノビス距離がこのしきい値よりも小さい場合、一致は成功しています。
- 余弦距離を使用して見かけの特徴間の距離を測定し、リードモデルは128次元ベクトルを抽出し、余弦距離を使用して比較します。
\(r_j ^ Tr_k ^ {(i)} \)は、コサイン類似度を計算し、コサイン距離= 1-コサイン類似度。コサイン距離は、トラックの見かけの特性と対応する検出の対応する特性を測定するために使用されます。 IDを正確に予測します。SORTでは、マッチングにモーション情報のみを使用すると、IDスイッチがさらに深刻になります。外観モデル+カスケードマッチングを導入すると、この問題を軽減できます。
上記のように、コサイン距離にもインジケーターが使用され、コサイン距離が\(t ^ {(2)} \)より小さい場合、一致すると見なされます。このしきい値は、コード内で0.2に設定されています(パラメーターmax_distによって制御されます)。これはハイパーパラメーターであり、通常、顔認識では0.6に設定されます。
- モーションモデルと外観モデルに重みを付けることで、総合一致度が得られます。
ここで、\(\ lambda \)はハイパーパラメーターであり、コードではデフォルトで0に設定されています。この設定は、カメラが実質的に動いている場合、つまり、相関行列の計算に外観モデルのみが使用される場合に、より適切であると著者は考えています。ただし、Deep SORTではマハラノビス距離が役に立たないというわけではありません。マハラノビス距離は、外観モデルによって取得される距離行列を制限し、明らかに実行不可能な割り当てを無視します。
\(b_ {i、j} \)もインジケーターであり、\(b_ {i、j} = 1 \)のみが人工的に照合されます。
2.3カスケードマッチング
カスケードマッチングは、SORTとは異なるDeep SORTのコアアルゴリズムです。現在の検出が現在の瞬間により近いトラックに一致するために、一致するとき、検出は優先的に、より短い消失時間でトラックに一致します。
ターゲットが長時間ブロックされている場合、カルマンフィルター予測結果は非常に大きな不確実性を増加させます(ブロックされた期間中に調整する観測オブジェクトがないため、不確実性が増加します)、状態空間での可観測性大幅に削減されます。
2つのトラックが同じ検出をめぐって競合する場合、長く消えるトラックは小さいマハラノビス距離と一致することが多く、検出がオクルージョン時間の長いトラックに関連付けられる可能性が高くなります。この状況では、トラックの継続時間が破壊されます。これは、SORTのIDスイッチが高すぎる理由の1つです。
したがって、この論文ではカスケードマッチングを提案しています。
疑似コードでのマッチング順序は、比較的年齢が低い軌道を優先的にマッチングすることであることに注意してください。対応する実装は次のとおりです。
# 1. 分配track_indices和detection_indices
if track_indices is None:
track_indices = list(range(len(tracks)))
if detection_indices is None:
detection_indices = list(range(len(detections)))
unmatched_detections = detection_indices
matches = []
# cascade depth = max age 默认为70
for level in range(cascade_depth):
if len(unmatched_detections) == 0: # No detections left
break
track_indices_l = [
k for k in track_indices
if tracks[k].time_since_update == 1 + level
]
if len(track_indices_l) == 0: # Nothing to match at this level
continue
# 2. 级联匹配核心内容就是这个函数
matches_l, _, unmatched_detections = \
min_cost_matching( # max_distance=0.2
distance_metric, max_distance, tracks, detections,
track_indices_l, unmatched_detections)
matches += matches_l
unmatched_tracks = list(set(track_indices) - set(k for k, _ in matches))
return matches, unmatched_tracks, unmatched_detections
照合の最終段階では、未確認と年齢= 1の不一致の軌跡もIOUに基づいて照合されます(SORTと同じ)。これにより、明らかな変異または部分的な閉塞によって引き起こされる大きな変化を緩和できます。
2.4見かけの特徴
見かけ上の特徴この部分は、歩行者の再識別の分野でネットワークモデルを借用します。ネットワークのこの部分は、事前にオフラインで学習する必要があります。その機能は、特徴的な特徴を抽出することです。
この論文では広い残余ネットワークを使用しており、具体的な構造を次の図に示します。
ネットワークの最終出力は、部品の見かけの特性を表すために使用される128次元のベクトルです(一般的な次元が高いほど、識別の度合いが高くなり、計算量が大きくなります)。最後に、L2正規化を使用して特徴を単位超球にマッピングし、コサインの外観を使用して類似性を測定できるようにします。
3.実験
MOTA、MOTP、MT、ML、FN、IDスイッチ、FMおよびその他のインジケーターを使用してモデルを評価します。
SORTと比較して、Deep SORTのIDスイッチインデックスは45%低下し、当時のSOTAに到達しました。
実験により、Deep SORTのMOTA、MOTP、MT、ML、FNの各指標が以前より改善されていることがわかりました。
多くのFPは、主に過剰な検出と最大エージングに起因します。
速度は20Hzに達し、半分の時間は明らかな特徴の抽出に費やされます。
4.まとめ
Deep SORTは3つの部分として見ることができます。
- 検出:ターゲット検出の効果は結果に非常に大きな影響を与えます。要件を満たすには、再現率と精度の両方が高くなければなりません。著者のテストによると、ターゲット検出器としてyolov3を使用すると、ターゲット追跡プロセスの時間の約60%が費やされます。 yolov3では、シーン内のターゲットが多いほど、この部分にかかる時間が長くなります(NMSが費やす時間)。
- 見かけの特徴:Reidモデル。元の論文では、大量のパラメーターを含む広い残余ネットワークを使用していました。作業のこの部分を完了するには、パフォーマンスが高く、パラメーターが低い新しいReIDモデルの使用を検討できます。OSNetの使用を推奨する人は多いようですが、実際の効果はそれほど良くありません。
- 相関:カルマンフィルターアルゴリズムとハンガリー語アルゴリズムを含みます。
改善の余地:
最近の多くの優れた作業のアイデアは、リードの特徴抽出とターゲット検出ネットワークは再利用できないということです。そのため、これら2つの部分をマージしたいと思います。
JDE = YOLOv3とリードフュージョン
FairMOT = CenterNetとリードの融合
私は最近CenterNetを調べましたが、このアンカーを使用しないマッチング方法は非常にエレガントであるため、FairMOTを強くお勧めします。効果は非常に高く、研究のベースラインに適しています。
5.リファレンス
距離:https : //blog.csdn.net/Kevin_cc98/article/details/73742037
論文のアドレス:https : //arxiv.org/pdf/1703.07402.pdf
コードアドレス:https : //github.com/nwojke/deep_SORT
FairMOT:https : //github.com/ifzhang/FairMOT