複数カメラの映像を用いたオンライン物体追跡のためのマッチングアルゴリズムについて

こんにちは、先進技術部の田中です。 今回の記事では、我々が開発している物体追跡手法、特に複数のカメラにまたがった追跡について紹介します。この手法は SSII2021/第27回画像センシングシンポジウムへの論文投稿及び発表を行った[1]もので、特許出願もしました。

物体追跡とは

さて「物体追跡」と聞くとどのようなものを思い浮かべるでしょうか。一口に「物体追跡」と言っても様々な種類があり、前提とする条件によっていくつかに分類することができます。

例えば以下のような条件があります。
  • 一度に追跡する物体の数が「1つ or 複数」
  • オクルージョン(追跡対象がカメラから隠れること。例えば他の物体の影に入った場合や画面内外への出入りなど)を「考慮しない or 考慮する」
  • カメラが「1つ or 複数」
  • (カメラが複数の場合)各カメラの撮影領域が「重複していない or 重複していてもよい」
  • オフライン(すでに保存された動画で追跡)or オンライン(動画を撮影しながら逐次的に追跡)
現在我々が取り組んでいるものは物体追跡の中でも特に複雑なもので、「複数の追跡対象を、オクルージョンを考慮しながら、撮影領域の重複した複数のカメラにまたがって、オンラインで追跡する」ものであり、オンラインMTMCT(Multi-Target Multi-Camera Tracking)と呼ばれています(MTMCTにはカメラの撮影領域に対する制限はないため、より正確には「撮影領域の重複を許容したオンラインMTMCT」と言うべきかもしれません)。
本来追跡対象は何でも構わないのですが、公開されているデータセットの傾向から人や車を追跡対象としている場合が多いです。本ブログ内では人の追跡を取り扱います。


ではどのような方法で物体追跡を実現できるのでしょうか。

カメラが1つで追跡対象も1つの場合は簡単で、各フレームに存在する1つの物体を検出し、それらをつなぎ合わせれば事足ります。

カメラが1つで追跡対象が複数の場合には、あるフレームに存在する物体を全て検出した上で、別のフレームで検出された物体とのマッチングを行う必要があります。これは検出されたフレームによらず、同じ物体に同じIDを割り振ることに相当します。
物体の同一性の判断のためには物体の外観情報や位置情報がよく用いられます。特にオクルージョンを考慮しない場合、連続したフレーム間での物体の移動量が十分に小さいことを仮定し、位置情報を用いることで精度よく追跡を行うことが可能です。

複数のカメラにまたがった追跡(MTMCT)も必要な操作はほとんど同じです。各フレームに存在する物体を検出した上で、カメラやフレームの違いによらず同じ物体に同じIDを割り振ることで追跡を行うことができます。
ただし、連続したフレーム間での処理を前提としていた1つのカメラでの追跡と比べると、ID割り振りの難易度は跳ね上がります。カメラ間でのID割り振りのためには位置情報以外での同一性判定を行う必要がありますが、カメラの設置位置・設置環境が異なるため、外観情報(画面上での物体の色・大きさ・姿勢など)も大きく異なっている可能性があるのです。


提案手法(マッチングアルゴリズム)の概要

我々は3つの要素を組み合わせることでMTMCTを実現しようとしています。

1つ目はMOT(Multi Object Tracking)と呼ばれる単一カメラでの追跡を行うモデルです。フレーム内の物体を検出しつつ位置情報や外観情報を活用してID割り振りを行うことで、単一カメラでの短時間の追跡結果(トラックレット)を得ることができます。トラックレットは図1のように、人物部分を切り出した画像の集合として表されます。

2つ目は得られたトラックレットの外観特徴量を計算するためのモデルです。Person ReID(Re-Identification)と呼ばれる複数のカメラで撮影された人物画像の識別タスクで用いられており、多様な条件下でのマッチングを行うことが可能です。トラックレットは複数枚の画像の集合であるため、画像ごとに特徴量を算出し集計することでトラックレットの特徴量を得ることができます。

そして、3つ目が本ブログの本題であるマッチングアルゴリズムです。上記で得られた外観特徴量を用いてトラックレットにIDを割り振ることで、オクルージョン対策やカメラ間の追跡を行うことが可能となります。

図1は提案アルゴリズムを図式化したものです。

図1:動的なツリー形成によるオンラインマッチングアルゴリズム[1]
アルゴリズムの基本的な考え方は以下の通りです。
  • 各ノードはトラックレットを表す
  • 各ツリーは1人の人物を表す
  • 類似ノード間を繋げることでツリーを形成する
  • ノード間連結を動的に変更することで最適な結合を保つ

それでは具体的にアルゴリズムを見ていきましょう。
人物ごとにツリー形成(左図)
これまでに追跡を行った結果として、2つのツリーが形成されています。

更新ノードの接続関係再検討(中図)
新たなフレームが取得されました。単一カメラ追跡モデルでの推論を行い、トラックレットの検出を行います。提案手法はオンライン手法なので、画面上にいる人物(追跡途中のトラックレット)にもIDを割り振る必要があります。

そのため既にツリーに組み込まれたトラックレットであっても次フレームで再度同一人物が検出され、トラックレットが更新される(トラックレットを構成する画像が増える)場合が多いです。一方で未知の人物が検出された場合、あるいは既知の人物であってもオクルージョンなどにより単一カメラ追跡が途切れた場合には新たなトラックレットが生成されます。

ここでは処理対象のフレームを推論した結果、既存の白丸のトラックレットが更新されたとします。更新されたトラックレットとその下位ノード(図の白丸を親とした3ノード)はツリーから分離されて再度マッチングが行われます。マッチング対象は過去に検出されたツリーから、今回検出されたトラックレットとその下位ノードを除いたものです(いくつかの条件を課すことでさらに対象を絞ることもできますがここでは省略します)。

接続関係のコスト計算(右上図)
検出されたトラックレットとマッチング対象のツリーの間の結合コストを計算します。ツリーの結合コストはそれを構成するトラックレットと検出されたトラックレットのコストの平均とします。 トラックレット間のコストの中で最も重要なコストは特徴量の類似度です。検出されたトラックレットの特徴量ベクトル(\bm{F})とツリーを構成するトラックレットの特徴量ベクトル(\bm{F'})を用いて、以下のように表されます。

C_{\rm sim} = 1 - \bm{F} \cdot \bm{F'}

ただし|\bm{F}| = |\bm{F'}| = 1

他にも状況に応じたコストを追加することが可能です。例えば「あるフレームに同時に存在したことのあるトラックレットを同じツリーに所属させないためのコスト(同一人物ではないことが明らかなため)」や「カメラの位置関係を利用したコスト(カメラ1の右端とカメラ2の左端が隣接しているなど)」などが考えられます。これらを加えて最終的な結合コストを算出します。

ツリーの再結合(右下図)
上記で得られたコストを用いてマッチング先を決定します。
図では検出されたトラックレットは1つしかありませんが、一般には複数のトラックレットを複数のツリーに同時にマッチングさせる必要があります。そこでハンガリアンアルゴリズム[2]と呼ばれる最適化アルゴリズムを用いて、結合コストが最も低くなるようなマッチングを計算します。この際、全てのツリーとの結合コストが閾値より高いトラックレットは新たなツリーの根ノード、つまり新しい追跡対象が現れたものとして扱います。

一方、既存のツリーとのマッチングが成立したトラックレットに関しては、親となる結合先のトラックレットを決定します。マッチングされたツリー内で最も結合コストが低いトラックレットを選び、検出されたトラックレットを下位ノードとして結合します。この操作により、あるトラックレットの下位ノードには自身と似た特徴を持つトラックレットが結合されることとなります。

各カメラからフレームが与えられる度にこの一連の更新サイクルを実行することで複数カメラでの追跡を行うことが可能となります。また一度に処理されるのはあくまで1つのフレームであるため、各カメラを同期する必要はありません。


提案手法の利点・既存手法との比較

上でも触れたとおり、MTMCTは単一カメラでの追跡とIDの割り振りに分解することができ、ID割り振りは検索対象(過去に検出された物体)とのマッチングで解決可能です。

ただしカメラの撮影領域が重複している、つまり複数のカメラが同じ地点を撮影している場合は状況が変わり、同時刻に別カメラで撮影された物体も検索対象に入れなければなりません。下手なアルゴリズムを用いると、お互いがお互いとマッチングし合う循環参照のような状況に陥りかねません。提案手法では階層的なツリー構造を採用し、自身の下位ノードを検索対象から除外することでこれを解決しています。

また階層的なツリー構造には別の利点もあります。コスト計算やマッチングを行うのは検出されたトラックレットのみであるにも関わらず、再結合時には自身の下位ノードも移動できるのです。下位ノードは自身と似た特徴を持つトラックレットであるため、親ノードとともに移動することで、計算量やメモリ消費量を抑えつつも適切なツリー再構成が可能となるのです。


MTMCTの既存手法には、 MHT(Multiple Hypothesis Tracking)[3]や FCDSC(Fast-Constrained Dominant Sets Clustering)[4]があります。

MHT

図2:MHTの概要図[3]
MHTは仮設木を作成することで追跡を行う手法です。ツリーを構成するという点で提案手法と似ているように見えますが、実態は大きく異なります。

まずノードはトラックレットではなく、あるフレームで検出された人物画像です。そして結合されたノード同士は同一人物であることを表すのですが、その際、起こりうる全ての可能性を保持するためにツリー構造を使用しています。

例えば図2の左図のO2に注目してみましょう。O2は前フレームで検出されたO1と同一人物であるかもしれませんし、前フレームには存在しなかった新たな人物であるかもしれません。また次フレームで検出されたO4と同一人物であるかもしれませんし、そのフレームには存在しない(黄色い四角のO2)かもしれません。左図はそれら全ての仮説をツリーとして保持した様子を表しています。

そして一定期間経過後に尤度が最も高い仮説(葉ノード)を選択し、それと矛盾する仮説を全て排除します。図2の右図はO1とO2が同一人物である、という仮説が採用されたことを表しています。O2とO4が同一人物か否かはその次のフレームで決定されることとなります。

すぐに想像がつくように、MHTは登場人物が増えると仮説木が急激に大きくなり、それに伴い計算量も増加します。実際MHTは、この木構造の更新をKフレームまでに制限することで計算量を抑えているため、オクルージョンを含んだ長期間の同一人物追跡に難があります。またカメラの撮影領域が重複している場合には適用できないというデメリットもあります。

MHTに対して提案手法は、仮説を保持する代わりにツリーの動的な再構成を行っていること、トラックレットをノードとしていることによってメモリや計算量を抑えることに成功しています。

FCDSC

図3:FCDSCの概要図[4]
またもう1つの既存手法であるFCDSCは、段階的にクラスタリングを繰り返すことで追跡を行う手法です。

あるフレームで検出された人物画像からクラスタリングを繰り返し、人物画像 → 短いトラックレット → トラックレット → トラックレット同士の結合、のように段階的に統合します。トラックレットの生成までは一度のみ実行されますが、最終段のクラスタリングは過去の全てのトラックレットを対象に繰り返し行われます。

採用した生成方法は異なるものの、トラックレットを生成しそれらを結合するという観点では提案手法と似た手法だと言えます。
一方で、FCDSCではフレームごとにクラスタリングを繰り返すために全てのトラックレット間のコストを保持しておく必要があるのに対し、提案手法では再結合の対象はそのフレームで検出されたトラックレットのみであり、それらと関係しないコストは必要ありません。提案手法では過去の結合情報をツリーとして保持して有効活用していることにより、必要なメモリを抑えることができているのです。


動作検証

提案手法の精度や動作速度の計測を行うためにMTMCTモデルを構築して動作検証を行いました。

図4:Terraceの追跡結果[1]
図4はMulti-camera pedestrians video[5,6]のTerraceという動画セットでの追跡結果を可視化したものです。Terraceは9人の登場人物が狭い空間内を歩き回っている様子を複数の角度から撮影したものであり、オクルージョン(人同士の重なりや画面内外への出入り)が非常に多いことが特徴です。

図4を詳しく眺めてみましょう。例えば濃い紫で囲われた人物(ID80)に注目すると、どのカメラに写っていても同じ人物に同じIDが割り振られている、つまりうまく追跡ができていることがわかります(実はcam1の左から2番目は似た服装の違う人物なのですが…)。他の人物に注目しても、いくつかミスはあるものの全体的によく追跡できています。このように当初の目的通りにカメラ間での追跡に成功していることがわかります。

そしてもう1つ注目すべき点があります。先程と同じく濃い紫で囲われた人物を見てみると、cam1,2,3ではオクルージョンにより一度追跡が途切れてしまっていますが、後のフレームで追跡を再開することができています。このように提案手法は複数カメラ間の追跡だけでなく、単一カメラでの追跡のためのオクルージョン対策として用いることも可能なのです(正確には上の実験だけでは単一カメラ追跡時に有効か否かの判別はできませんが、別の実験でその効果が確認できています)。


また提案手法はオンライン手法ですので、その処理速度も重要な評価指標です。

上記の実験はIntel Xeon Gold 6230 と NVIDIA V100 GPU を用いて行ったのですが、その処理速度は約28fpsを記録しました。Terraceは25fpsで撮影された動画なので、リアルタイム推論を実現できたこととなります。

さて、これまで述べたとおりTerraceを用いた実験では十分な精度と速度を達成したことを確認できました。一方で、他の動画を用いた実験からこの手法の課題も見えてきています。

例えば照明が暗い場合やカメラから被写体までの距離が遠い場合には、トラックレットの特徴量をうまく取得できずにマッチングに失敗すること、また登場人数が数百人になると結合コストの計算に時間がかかり推論速度が低下することなどがわかりました。

上記の課題の解決策として、外観特徴量を取得する際にその特徴量の信頼度も出力するようモデルを再訓練することを計画しています。信頼度とはその特徴量の有用性を表しており、カメラの画質が荒かったり他の物体と重なっていたりする場合に低い値を取るものです。高い信頼度の特徴量のみを用いることでマッチングの質を担保しつつ、計算量の削減も期待することができます。

まとめ

本ブログでは、我々が開発した複数カメラの映像を用いたオンライン物体追跡のためのマッチングアルゴリズムの概要とその動作検証結果の紹介を行いました。そしてオクルージョンが多い環境や複数のカメラで同一地点を撮影している状況でもリアルタイムに追跡が可能であることを確認しました。

また一般にMTMCTというと固定されたカメラを用いるものですが、実は提案アルゴリズムはカメラが固定でなくとも適用可能で、カメラ間の位置関係の制約もありません。複数のスマホやAR機器で撮影された映像のそれぞれから物体を検出し、それらのマッチングを行うことで情報の統合を行うような使い方ができないかなあと考えたりもしています。

最後になりますが、先進技術部では今後も動画を対象とした研究開発を推進していく予定です。ご興味のある方はこちらからぜひご応募ください。お待ちしています。


  1. 田中駿祐, 松林達史, 「動的な Tree 形成によるオンライン複数カメラ物体追跡手法」, Symposium on sensing via image information, IS3-21/SO3-21, 2021
  2. Harold W. Kuhn, “The Hungarian Method for the assignment problem”, Naval Research Logistics Quarterly, 2: 83–97, 1955. Kuhn’s original publication.
  3. Kwangjin Yoon, Young-min Song, and Moongu Jeon. “Multiple hypothesis tracking algorithm for multi-target multi-camera tracking with disjoint views”. CoRR, Vol. abs/1901.08787, 2019.
  4. Yonatan Tariku Tesfaye, Eyasu Zemene, An- drea Prati, Marcello Pelillo, and Mubarak Shah. “Multi-target tracking in multiple non-overlapping cameras using fast-constrained dominant sets”. In- ternational Journal of Computer Vision, May 2019.
  5. Lengagne Richard Fua Pascal Fleuret Fran ̧cois, Berclaz J ́erˆome. “Multi-camera people tracking with a probabilistic occupancy map”. 2008.
  6. Yang Liu Song-Chun Zhu Yuanlu Xu, Xi- aobai Liu. “Multi-view people tracking via hier- archical trajectory composition”. 2016.