複数のターゲットを追跡するには、次の 2 つの方法があります。 オプション1 初期化フレームの追跡に基づいて、ビデオの最初のフレームでターゲットを選択し、追跡アルゴリズムに渡してターゲット追跡を実現します。この方法では、基本的に最初のフレームで選択したターゲットのみを追跡できます。後続のフレームに新しいオブジェクトが表示された場合、アルゴリズムはそれらを追跡できません。この方法の利点は、比較的高速であることです。欠点は明らかです。新しく出現するターゲットを追跡できないのです。 オプション2 ターゲット検出追跡に基づいて、まずビデオの各フレームで対象となるすべてのターゲット オブジェクトが検出され、次に前のフレームで検出されたターゲットと関連付けられて追跡効果が得られます。この方法の利点は、ビデオ全体の任意の時点で表示される新しいターゲットを追跡できることです。もちろん、この方法を使用するには、前提条件として優れた「ターゲット検出」アルゴリズムが必要です。 この記事では、主に Tracking By Detecting の追跡方法であるオプション 2 の実装原理について説明します。この記事にはソースコードへのリンクがありません。「ターゲット検出」アルゴリズムのソースコードについては、前回の記事を参照してください。「軌道追跡」アルゴリズムのソースコード実装に関しては、非常にシンプルです。この記事を読めば誰でも書けると思います。Python 実装は 200 行未満です。 検出による追跡 ステップ 1:ターゲット検出アルゴリズムを使用して、各フレーム内の対象ターゲットを検出し、対応する情報 (位置座標、分類、信頼性) を取得します。検出されたターゲットの数は M であると仮定します。 ステップ 2:何らかの方法で、ステップ 1 の検出結果を前のフレームの検出ターゲットに関連付けます (前のフレームの検出ターゲットの数は N であると仮定します)。つまり、M*N 個のペアの中で最も類似したペアを見つけることです。 ステップ 2 の「特定の方法」についてですが、実際にはターゲットの関連付けを実現する方法は多数あります。たとえば、一般的な方法は、2 つのフレーム内の 2 つのターゲット間のユークリッド距離 (平面上の 2 点間の直線距離) を計算することです。距離が最短のターゲットを同じターゲットと見なし、ハンガリアン アルゴリズムを使用して最も一致するペアを見つけます。もちろん、私が使用した IOU のように、他の判定条件を追加することもできます。これは、2 つのターゲット ボックス (位置ボックスとサイズ ボックス) の交差と結合の比率を計算します。値が 1 に近いほど、同じターゲットを表します。他にも、2 つのターゲットの外観が類似しているかどうかを判断するなど、比較に外観モデルを使用する必要があり、時間がかかる場合があります。 関連付けプロセス中に、次の 3 つの状況が発生する可能性があります。 1) 検出されたターゲットは前のフレームの N 個のターゲットの中に見つかり、正常に追跡されていることを示します。 2) 検出されたターゲットが前のフレームの N 個のターゲットの中に見つからない場合、そのターゲットはこのフレームでは新しいものであるため、次の追跡関連付けのために記録する必要があります。 3) 前のフレームにターゲットがあったが、このフレームにそれに関連付けられたターゲットがない場合、ターゲットが視野から消えた可能性があるため、削除する必要があります。 (これは、検出エラーのためにこのフレームでターゲットが検出されなかった可能性があるためであることに注意してください) 問題点 上記の追跡方法は通常の状況ではうまく機能しますが、ビデオ内のターゲットが非常に速く移動し、前のフレームと次のフレームの同じターゲット間の距離が非常に遠い場合、この追跡方法では問題が発生します。 上図に示すように、実線のフレームは最初のフレームのターゲットの位置を表し、点線のフレームは 2 番目のフレームのターゲットの位置を表します。ターゲットがゆっくり走る場合、従来の追跡方法では (A, A') と (B, B') を正確に関連付けることができます。ただし、ターゲットが非常に速く移動する(または 1 フレームおきに検出される)場合、2 フレーム目では A は 1 フレーム目の B の位置に移動し、B は別の位置に移動します。このとき、上記の関連付け方法を使用すると間違った結果になります。 では、どうすればより正確に追跡できるのでしょうか? 軌道予測に基づく追跡方法 2 番目のフレームの位置を 1 番目のフレームの位置と比較して関連付けると誤差が生じるため、比較する前に次のフレームでターゲットが出現する位置を予測し、予測した位置と比較して関連付ける方法があります。このように、予測が十分に正確である限り、速度が速すぎることによる上記のようなエラーはほとんど発生しません。 上図に示すように、比較して関連付ける前に、まず次のフレームの A と B の位置を予測し、実際の検出位置を使用して予測位置と比較および関連付けることで、上記の問題を最も効果的に解決できます。理論上は、ターゲットがどれだけ高速であっても接続できます。そこで疑問になるのが、次のフレームのターゲットの位置をどのように予測するかということです。 方法は多数あります。カルマン フィルタリングを使用して、前のフレームの軌跡に基づいて次のフレームのターゲットの位置を予測したり、適合した関数を使用して次のフレームの位置を予測したりできます。実際には、フィッティング関数を使用して、次のフレームのターゲットの位置を予測します。 上に示すように、前の 6 フレームの位置に基づいて (T->XY) 曲線を当てはめ (図の直線ではないことに注意してください)、T+1 フレームのターゲットの位置を予測できます。具体的な実装は非常に簡単で、Python の numpy ライブラリに同様の機能を持つメソッドがあります。 残る欠陥 それでも、まだ欠点はあります。
軌道予測の前提は、過去数フレームにおけるターゲットの軌道情報を知ることです。そのため、最初はターゲットの軌道を予測できないか、予測が不正確になります。したがって、最初の数フレームでは、比較と関連付けに元の方法を使用する必要があります。 |
<<: ロボット宅配便があなたの玄関までお届けします!フォードが「無人配送」の最後のハードルを解決
[[422501]]多層パーセプトロン(MLP)は非常に長い歴史を持っています。多層パーセプトロン(...
翻訳者 |ブガッティレビュー | Chonglou ChatGPTは2020年6月にリリースされ、 ...
1. 推奨ステータスまず、レコメンデーションシステムの現状について簡単に紹介します。推薦システムは、...
研究者らによると、人工知能はインターネットサービスプロバイダー(IPS)がDDoS攻撃に先手を打つの...
[[433085]]アルゴリズムは本質的に、1 つ以上の入力を受け入れ、内部計算とデータ操作を実行...
「シナプストランジスタ」は、脳の可塑性を模倣して、データの処理と保存を同時に行うことができます。 ...
5月20日、中国国家深層学習技術応用工程研究室と百度が共催する「WAVE SUMMIT 2021 ...
[[274542]]近年、職場における女性はあらゆる方面から注目されています。女性が職場で真に...
[[408951]]人工知能は未来をリードする戦略的な技術であり、国際競争の焦点にもなっています。わ...
[[437809]]動的視覚推論、特にオブジェクト間の物理的な関係についての推論は、コンピューター ...
インテリジェントロボットはビジネスの世界で大きな注目を集めています。スマートロボットの使用には、効率...
他の業界と同様に、ヘルスケアにおける AI の応用と議論は幅広く行われています。 AIはすでに診断の...
データセンターのワークロードが急増し続ける中、効率性を向上させてコストを削減しながら IT チームの...