最新AI論文をキャッチアップ

StrongSORT: DeepSORTが強くなって帰ってきた!アップグレードされた追尾モデル!

StrongSORT: DeepSORTが強くなって帰ってきた!アップグレードされた追尾モデル!

Object Tracking

3つの要点
✔️ MOTタスクにおいて初期の深層モデルだったDeepSORTを改良しSOTAを達成!
✔️ 計算コストが低い2つの後処理AFLinkとGSIを提案し、更なる高精度化を実現!
✔️ AFLinkとGSIは提案手法に限らず複数のモデルで精度を向上させた

StrongSORT: Make DeepSORT Great Again
written by Yunhao DuYang SongBo YangYanyun Zhao
(Submitted on 28 Feb 2022)
Comments: Published on arxiv.

Subjects: Computer Vision and Pattern Recognition (cs.CV)

code:  

本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。  

はじめに

最初にMOT17,MOT20の精度比較を載せておきます。StrongSORTの優位性が分かります。さて、最近特徴抽出器として有名なVGGNetがRepVGGとして強力になって帰ってきました。同じようなタイトルで帰ってきたのが「StrongSORT: Make DeepSORT Great Again」です。DeepSORTは初期の深層学習ベースの物体追尾モデルで、StrongSORTはその初期モデルを最新の技術で改良することでSOTAを達成したモデルになります。まずはざっと改良箇所を見てみましょう。

 DeepSORT
  +BoT:外観特徴抽出器を改良
  +EMA:慣性項を持たせた特徴量の更新
  +NSA:カルマンフィルタを非線形な動きに対応
  +MC:動き情報を含めたコスト行列
  +ECC:カメラの動きを補正
  +woC:カスケードアルゴリズムの不採用
=StrongSORT
  +AF Link:動き情報のみ用いるグローバルリンク
=StrongSORT+
  +GSI補間:検出ミスをガウス過程で補間
=StrongSORT++ 

抜本的に構造を変えたというよりも追尾で必要な特徴抽出や動き情報の処理、コスト行列などの処理を改良しています。改良したStrongSORTに更にオフライン処理であるAFLink、後処理であるGSI補間を適用したStrongSORT++は更に精度が高いモデルとなっています。個人的に肝はむしろそちらにあるように思うので是非最後まで読んでいただけると嬉しいです。早速StrongSORTを見ていきましょう。

体系的位置付け

まずは本手法の体系的な位置付けから解説します。手法の詳細が知りたい方は飛ばしていただいて構いません。深層学習の追尾手法はDeepSORTから始まっています。その後FairMOTやByteTrackなどの新たな手法が現れ、DeepSORTの精度を追い抜いていきました。新たな追尾手法が提案されていく過程で2つの追尾のアプローチが生まれました。検出と追尾を1つのモデルで学習させるJDE(Joint Detection and Embedding)と、検出モデルと追尾モデルで分けて学習させるSDE(Separate Detection and Embedding)です。DeepSORTは検出器を別に用意するSDEに属します。様々な手法が提案され、DeepSORTは精度が低い初期モデルとして扱われるようになりましたが本論文では、DeepSORTの精度が低いのはアプローチが悪いのではなく単純に古いためであり、その後提案された最新の要素技術を基に改良すれば十分精度が出せるというモチベーションで改良を行っています。
DeepSORTを改良した理由はまだあります。まずJDEの手法は学習が容易でない欠点があります。JDEは検出と追尾という異なるタスクのパラメータを同時に学習するためモデルが競合してしまい、精度が制限されやすいです。また検出から追尾までを同時に学習できるデータセットが必要になり、学習の幅も制限されてしまいます。対してSDEでは検出モデルと追尾モデルを個々に最適化できます。また最近ではByteTrackのように外観情報なしに動き情報のみで高速に追尾するモデルも提案されていますが、このようなモデルについては対象の動きが単純でない場合に追尾できない問題点を指摘しています。
このようにDeepSORTベースにSDEのアプローチで外観特徴を用いながら追尾するのが最適であるというモチベーションをもとに提案されたのがStrongSORTです。

余談

追尾タスクではTrackletやTracjectory、カルマンフィルタ、グローバルリンクなどの用語が出てきます。ざっとは触れますが、以前紹介したGIAOTrackerの方が詳しく説明していますのでぜひご覧ください。GIAOTrackerは追尾に必要な3段階のプロセスを体系的に理解できます。また、この2つの論文は同じ著者チームによるものです。

GIAOTracker:多クラス多物体の追尾のための包括的フレームワークを提案!

DeepSORT

StrongSORTを説明する前にDeepSORTについてさらっとおさらいをします。追尾タスクでは現在のフレームtで検出された物体と過去0~t-1フレームで追尾した物体のtracklet(短期間の軌跡)を照らし合わせ同じ個体にidを割り振るre-identificationが必要です。このような関連付けでは物体の外観特徴や動き情報を用いて非類似性を測るコスト行列を生成し、コストが最小になる組み合わせを求めます。下にDeepSORTとStrongSORTの概要図を示します。

Feature Bank

Feature BankはTrackletの外観特徴の事です。フレームtで新たに検出された物体の外観がどのtrackletと近いかを評価するために必要です。DeepSORTでは過去100フレームの外観特徴をCNNモデルでそのまま保持しています。この時のCNNモデルはre-identificationデータセットMARSで事前学習した単純な深層モデルです。

カルマンフィルタ

外観特徴だけでなく動き情報も重要です。単純な位置の近さではなく、t-1フレームにいた物体がtフレームでどこにいると考えられるかをカルマンフィルタで予測します。予測されたTrackletの座標と検出された物体との距離がコストとなります。この時のカルマンフィルタは線形カルマンフィルタであり、全ての物体に同じノイズを仮定しています。

マッチングカスケード

検出結果とtrackletの関連付けの際はハンガリアンアルゴリズムを用いて上記の位置情報と外観特徴のコスト行列を評価し、最適な組み合わせを求めます。DeepSORTはそれだけでなく、マッチングカスケードという直近で検出されたtrackletに対して優先的に関連付けを行うアルゴリズムを採用しています。

StrongSORT

それでは本題のStrongSORTです。最初に示した改良箇所を順に説明していきます。GIAOTrackerと似たようなところが多い印象があります。

BoT

StrongSORTはより強力な外観特徴抽出器としてBoTを採用しています。DeepSORTで用いられたシンプルなCNNとは違い、BoTはResNeSt50をバックボーンとしたモデルで、DukeMTMCreIDデータセットで事前学習させたものを採用しています。より個体同士の特徴を区別できるような特徴抽出器になっています。

EMA(Exponential Moving Average)

EMAはGIAOTrackerで提案されたFeature bankです。DeepSORTのFeature bankは100フレームもの特徴をそのまま保持しているため、非効率で毎フレームの検出ノイズに大きく影響を受けます。対してEMAは次の式のように過去の特徴を慣性項として保持し、特徴を更新していきます。fはフレームtで検出されtracklet iに割り当てられた物体の特徴、et-1フレームまでのtrackletの特徴です。これをαで重み付けることで効率的且つノイズを軽減しながら特徴を更新してきます。

NSA Karman

NSAカルマンもGIAOTrackerで提案されています。DeepSORTでは単純な線形カルマンフィルタでしたが、検出物体が全て同じ観測ノイズを持っていると考えるのは現実的ではありません。そこでNSAカルマンではノイズを検出の信頼度に応じて適用的に変化させています。複雑な動きをした物体では検出器が出力する物体の信頼度が低い事が考えられるため、カルマンフィルタでの補正を強めます。

ckが各物体の信頼度を表します。こうすることで様々な複雑な物体の動きに対応して位置推定を行う事ができます。

MC(matching with motion cost)

DeepSORTは位置情報をコストに持ちますが、実際にはその重みを0にして外観特徴のみをコストとして実験しています。そのようなDeepSORTと違いStrongSORTはλ=0.98として次の式のようにコスト行列を生成します。動き情報を活用し精度につなげる事ができるモデルです。Aaは外観特徴のコスト、Amは動き(位置)情報のコストです。

その他

StrongSORTではカメラの視点の変化に対応するためにECCという補正アルゴリズムを用いています。またコスト行列のマッチングの際にDeepSORTで採用していたマッチングカスケードを採用せず、単純な線形割り当て問題として解いています。直近の観測があるtrackletほど優先するのは追尾モデルが優秀な場合にはむしろ精度を制限してしまうためとのことです。マッチングに余計な条件はつけずに優秀な追尾モデルに全て任せるだけで精度が向上したとのことです。woCはabandoning mathcing cascadeを指します。

AFLink

AFLinkは本論文で最も重要な技術の1つです。ここまではオンライン追尾、つまり1フレーム毎検出し、trackletを結びつけていくリアルタイムな追尾について説明しました。ここからはオフライン処理です。最終フレームまで追尾を行ったものの、検出ミスやオクルージョンなどで追尾が途切れ、短期間の正確だが不完全であるようなtrackletが生成されています。そこでtracklet間を結びつけるグローバルリンクというオフライン処理が必要になります。AFLinkはその新たな手法です。

AFLinkは初の外観特徴を用いずグローバルリンクを行う機構として提案されています。例えばGIAOTrackerではGIModelというグローバルリンクが提案されていますが、trackletの各フレームの特徴量をResNetベースのCNNモデルで特徴抽出し、更にTransformer Encoderに入力して関連性を抽出するというかなり重いモデルになっています。このようなモデルは計算コストが高く、更に外観特徴に依存するとノイズに弱くなるという問題点も指摘されています。

対してAFLinkがtracklet Tで用いる情報は検出されたフレーム番号fとその時の位置(x,y)のみです。2つのtracklet Ti, Tjの直近30フレームの情報Ti=(fk,xk,yk) (k=1~30)を畳み込み層で圧縮・特徴抽出し、TiTjが同じ個体の軌跡を表すか否かの信頼度を出力します。まずTemporal Blockにより7フレーム間の時系列方向の圧縮を3つの特徴(f,x,y)それぞれで繰り返し行います。続いて3つの特徴を圧縮するFusion Blockを適用します。これを結合したものをAffineとReLUで信頼度に変換するClassifierに入力します。全体像は下図の通りです。注意すべきは2つのtrackletに対して別々にBlockを用意している点です。

これだけでは少し分かりづらいのでソースコードを基に図を示します。

Temporal Blockはあくまで各f,x,y毎独立に時間方向(7フレーム)のみを畳み込んでいます。対してFusion Blockでは時間方向に圧縮された3次元の特徴を圧縮しています。実験で用いたAFLinkのモデルは下図の通りです。

AFLinkはCNNモデルであるため、実験では事前にデータセットを用いて学習させています。StrongSORTに対して更にオフライン処理としてAFLinkを適用したモデルがStrongSORT+です。

GSI(Gaussian-Smoothed Interpolation)補間

もう1つの重要な技術にGSI補間があります。ここではオンライン追尾とオフライン追尾も終えた後の後処理を行います。後処理で重要なのは検出ミスの補間です。SDEでは検出器が物体を検出できない限り当然ながら追尾は行えません。そのようにして追尾が途切れてしまったTrajectory(全フレームの軌跡)は補間することで精度を上げられます。最も単純な補間として線形補間が広く用いられていますが、これは動き情報を利用しないため精度が限定的です。下図の青色が線形補間(Linear Interpolation)ですが、検出できた軌跡(Tracked)の間を不自然に補間しており、正解の軌跡(GT)を再現できていません。

対してGSIを適用した赤色では動きに沿った自然な補間ができています。GSIの核はガウス過程です。ガウス過程はある観測データa,bについてaからbを予測する際にp(b|a)=N(m(a),K(a))のようにaの関数で与えられる平均m・共分散Kを持つ多次元正規分布をモデル化します。今回の場合はフレーム番号tと位置情報(x,y,w,h)の間に条件付き多次元正規分布p(x|t),p(y|t),p(w|t),p(h|t)をそれぞれ仮定します。その上で検出ミスのフレームtにおいて(x,y,w,h)を推定します。論文ではptとして表現されています。Trajectory i毎にガウス過程を適用している点に注意してください。

\begin{align*}
  p_t=f^{(i)}(t)+\epsilon, \quad\mathrm{where}\;f^{(i)}\in GP(0,k(\cdot,\cdot))
\end{align*}

カーネル関数kにはRBFカーネルを用います。分母のλは軌跡の滑らかさを決定し、本論文では10と設定されています。
\begin{align*}
  k(x,x')=\exp\left(-\frac{{||x-x'||}^2}{2\lambda^2}\right),\quad \lambda=\tau*\log(\tau^3/l)
\end{align*}図ではフレーム番号と位置座標を正規分布でモデル化することで上手く間の検出ミスを補間できていることが分かります。
このようなAFLinkとGSI補間を加えたStrongSORTがStrongSORT++です。実験でその優位性を見ていきましょう。

実験

データセット

実験では人物追跡のベンチマークであるMOT17データセットとMOT20で比較をおこなっています。MOT17に対してMOT20は追尾対象が密集しているより困難なデータセットです。アブレーションではMOT17のTrainデータの各動画の前半を学習に、後半をValidに用いています。

モデルの設定

外観特徴抽出器であるBoTはDukeMTMCデータセットで事前学習を行います。検出器はCOCOデータセットで事前学習をしたYoloX-Xを用います。検出の重複を抑制するNMSの閾値は0.8、検出の信頼度の閾値は0.6です。

StrongSORT本体ではEMAの慣性項αを0.9、外観特徴のコストの重みは0.98です。AFLinkは30フレーム以内且つ75ピクセル以内のtracklet同士を関連づけます。出力される信頼度が0.95以上の場合に関連付けが考慮されます。GSIでは補間可能な最大の検出ミスを20フレームに設定しています。

評価指標

様々な視点で追尾の精度を評価しています。MOTAは追尾のFalse Positive、False Negative、ID Switch(IDs)に基づいて計算されるため、検出精度に重点を置いた指標です。IDsは追尾途中に物体が入れ替わる関連付けのミスです。IDF1は追尾の際のIDのマッチングに重点をおいた指標のため、例えば同じIDsの回数でも長く安定して追尾できている軌跡が高くなる指標となります。HOTAは検出精度(DetA)と追尾手法(AssA)を同時に評価できるバランスの良い評価指標です。

アブレーション

オンライン追尾を行うStrongSORTについて、ベースラインであるDeepSORTから順に機構を加えた時の精度比較を行っています。

外観特徴抽出器を改良(BoT)することでIDF1が大幅に改善されており,外観特徴の重要性が分かります。ECCの追加ではIDF1,MOTAが若干向上しており,カメラの補正により正確な動き情報を抽出できるようになっています。続いてNSAカルマンではHOTAは向上させましたがMOTAやIDF1は変化がありません。つまり物体の位置情報を推定する精度を向上させたことが分かります。trackletの特徴をEMAに変更した際は関連付けの精度を表すIDF1が上がっただけでなく,FPSが向上したため高速化をもたらしたことが分かります。動き情報を含めたコスト(Motion Cost)でもStrongSORTの精度向上が確認できます。最後にマッチングカスケードをやめ通常の線形割り当て問題をおこなったStrongSORTではIDF1が大きく改善されたことがわかり、カスケードが不要であることを示しました。

AFLinkとGSI

ここではAFLinkとGSIの優位性をStrongSORTや既存のSoTAモデルを用いて主張します。上のStrongSORTのアブレーションでは順にv1~v6までありましたが、ここではそのうちv1/v3/v6を採用し、既存手法にCenterTrack、TransTrack、FairMOTを採用し、6つのモデルそれぞれでAFLinkとGSIの処理を追加しています。

 AFLinkはいずれのモデルでも精度を向上させています。特に元の精度が低いモデルに対する寄与が大きく、CenterTrackのIDF1が3.7向上しています。GSIの場合AFLinkと異なりより強い追尾モデルに対して効果的に働いています。

GSIについては線形補間(LI)との比較を個別におこなっており、GSIが僅かな計算コストの増加で性能を改善させることを示しています。

以上のようにAFLinkとGSIはStrongSORTに限らず様々な高精度な追尾モデルの精度を向上させることが分かりました。

MOTChallenge

最後は多くのSoTAとの比較です。MOT17とMOT20で検証しています。SDEモデルでは検出段階の処理時間は基本的に無視されるためJDEとSDEの比較は難しく、FPSの比較は行っていません。

まずはMOT17です。StrongSORT++は全ての手法の中でHOTA/AssA/DetAで1位、MOYA/IDsで2位を達成し、2位の精度と大きく差をつけました。

MOT20はより混雑した状況を扱っています。その中でもStrongSORT++はHOTA/IDF1/AssAで同様に1位を達成しました。特にIDsが非常に少なくなっていることが分かります。 

これらの結果はデータごとのパラメータのチューニングを行わずに達成しているため、本手法の汎用性がわかると思います。

またベースラインはDeepSORT*は発表当時のDeepSORTから検出器やハイパーパラメータを改善させたモデルであり、これだけでも良い結果を出しているためSDEパラダイムの有効性を示していると念押しされています。

最後に適用結果を載せておきます。オクルージョンにも正しくIDを与えられていることが分かるとのことですが、MOT20では混雑度があまりに高くて分かりにくいですね。これだけの混雑度でも追尾できるのは圧巻です。

所感

AFLinkの動機として外観特徴に過度に依存するとノイズに弱くなるとありましたが、そのような状況では動き情報も大きくノイズが乗っているように思えます。それでも精度が良いのはNSA Karmanが後押ししているのでしょうか。フレーム番号と座標を畳み込むだけで外観情報が要らなくなるのはどのような条件の時かをもう少し調べたいです。

本体のStrongSORTですが、改良した技術はGIAOTrackerとかなり似ているところがありますね。

その割に比較されていませんが精度はどちらが優れているのでしょうか。本手法は外観情報を用いないグローバルリンクやガウス課程による追尾の補間などオンライン追尾の後の方が個人的に魅力に感じます。

まとめ

今回はDeepSORTの改良版StrongSORTを紹介しました。NSAカルマンやESA、ECCなどオンライン追尾の要素技術に加え、AFLinkやGSIを提案し精度をさらに向上させました。論文では、JDEパラダイムの手法や外観情報を全く用いないByteTrackなどの手法よりは実行速度が遅いこと、MOTAがやや劣るため閾値の決定をより厳密に行う必要があること、AFLinkが誤って関連付けされた軌跡に対して精度を悪化させてしまうことなど課題点がまだあるとしています。これからの改良が楽しみですね。

記事の内容等について改善箇所などございましたら、
お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。
どうぞよろしくお願いします。

お問い合わせする