CV勉強会ECCV2022論文読み会の発表資料です。
ByteTrack vs MOTR〜オブジェクトトラッキングガチンコ対決〜2022/10/22 しろくま@neka-nat第57回 コンピュータビジョン勉強会
View Slide
自己紹介独立系ロボットエンジニアしろくま@neka-nathttps://twitter.com/neka_nathttps://github.com/neka-nat● フリーでロボティクス・画像処理関連のソフトウェア開発やってます!
自己紹介独立系ロボットエンジニアしろくま@neka-nathttps://twitter.com/neka_nathttps://github.com/neka-nat● フリーでロボティクス・画像処理関連のソフトウェア開発やってます!● 前職は某大手JTC社員● 好きなCV技術○ 点群処理○ 3次元再構成○ 高速化・ハードウェアアクセラレーション
自己紹介独立系ロボットエンジニアしろくま@neka-nathttps://twitter.com/neka_nathttps://github.com/neka-nat● フリーでロボティクス・画像処理関連のソフトウェア開発やってます!● 前職は某大手JTC社員● 好きなCV技術○ 点群処理○ 3次元再構成○ 高速化・ハードウェアアクセラレーション● Web関連のお仕事もやってます○ React/TypeScript/Rust/AWS/Terraform● お仕事に関してDMなどでお気軽にご相談ください!
Multi Object Tracking(MOT)とは?● 動画内に映る人や車を検出し、追跡する手法● フレーム間で同じ物体であるものに同じIDを割り振るようにするID1ID2ID3
Multi Object Tracking(MOT)とは?● 動画内に映る人や車を検出し、追跡する手法● フレーム間で同じ物体であるものに同じIDを割り振るようにするID1ID3ID2
Multi Object Tracking(MOT)とは?● 動画内に映る人や車を検出し、追跡する手法● フレーム間で同じ物体であるものに同じIDを割り振るようにするID3ID2ID4
Multi Object Tracking(MOT)とは?● 動画内に映る人や車を検出し、追跡する手法● フレーム間で同じ物体であるものに同じIDを割り振るようにするID1ID3ID2ID4
MOTの解き方~Tracking by Detection~● 検出結果とトラックレットの紐付け○ 検出結果:物体検出の結果○ トラックレット:追跡情報、IDを保持検出結果tフレーム トラックレットtフレーム
MOTの解き方~Tracking by Detection~検出結果tフレーム トラックレットtフレーム● 3つのフェーズに分ける○ 物体検出と特徴量計算○ 次フレームのトラックレット予測(カルマンフィルタ)○ 予測トラックレットと検出結果の紐付け(ハンガリアン)
MOTの解き方~Tracking by Detection~● 3つのフェーズに分ける○ 物体検出と特徴量計算○ 次フレームのトラックレット予測(カルマンフィルタ)○ 予測トラックレットと検出結果の紐付け(ハンガリアン)検出結果tフレーム トラックレットt+1フレーム予測
MOTの解き方~Tracking by Detection~● 3つのフェーズに分ける○ 物体検出と特徴量計算○ 次フレームのトラックレット予測(カルマンフィルタ)○ 予測トラックレットと検出結果の紐付け(ハンガリアン)検出結果t+1フレーム トラックレットt+1フレーム予測
ハンガリアンとは?● なんか呼び方がいろいろある○ ハンガリー法○ Munkres○ Linear Sum Assignment● 予測物体と検出物体の類似度行列を作成し、割当後の類似度の和が最大になるように割り当てる検出物体1検出物体2検出物体3検出物体4トラックレット10.7 0.6 0.2 0.3トラックレット20.7 0.3 0.2 0.1トラックレット30.3 0.2 0.6 0.9トラックレット1検出物体2トラックレット2検出物体1トラックレット3検出物体4新たに検出物体3をトラックレット4にする
Deep Learningの導入● SORT(2016)○ 物体検出の部分をFasterRCNNにした○ 類似度計算は検出結果とトラックレットの境界ボックスのIoUを使用○ 精度と速度は向上したが、オクルージョンに弱い● DeepSORT(2017)○ 類似度計算に境界ボックスの画像から求めたReID特徴量も使うようにした○ 紐付けの階層化■ ReIDで紐付け→紐付かなかったものをSORTで紐付け● FairMOT(2020)○ 境界ボックスとReID特徴量をOneモデルで推論できるようにした○ アンカーフリーなモデルを採用し、ReID特徴量の精度を向上
End-to-endへの挑戦● Transformerを用いたEnd-to-endな手法が登場○ DETRをベースにしたモデル○ DETRでは物体検出クエリを学習パラメタの一部としていた○ 物体検出クエリに前回フレームのトラッキング結果に紐付いたデコーダ出力(トラッククエリ)を加えることでフレーム間の情報を扱う
End-to-endへの挑戦● TransTrack(2020)○ 物体検出用とトラッキング用の2つのTransformerデコーダを使用○ 2つの出力を紐付ける用のネットワークを後段に用意● TrackFormer(2021)○ Transformerデコーダを1つにして物体検出と紐付けを一体化TransTrack TrackFormer
MOTガチンコ対決 in ECCV2022MOTR● End-to-end● DETRベースのトラッキングモデル● 前回トラッククエリを引き継いでいくことにより、隣接する時刻だけでない時間的モデリングを構築ByteTrack● Tracking by Detection● FairMOT作った人の最新論文● MOT20でSOTA(2022/10月)● 物体検出:YOLOX● 次フレーム予測:カルマンフィルタ● ReID計算:UniTrack● Tracking by Detectionの検出のしきい値による問題を克服
ByteTrack
ByteTrack● Tracking by Detectionの問題点○ 検出の信頼度のしきい値に結果が左右されてしまう○ しきい値が高いと検出すべきものを見逃してしまう○ しきい値が低いとトラックレットと間違った紐付けを行ってしまう
ByteTrack● Tracking by Detectionの問題点を解決したBYTEというアルゴリズムを導入○ 検出結果の信頼度が高いものと低いものを分けて両方うまく利用するトラックレット1トラックレット2トラックレット3トラックレット4検出結果1信頼度0.9検出結果2信頼度0.2検出結果3信頼度0.7検出結果5信頼度0.1検出結果4信頼度0.9
ByteTrack● Tracking by Detectionの問題点を解決したBYTEというアルゴリズムを導入○ 検出結果の信頼度が高いものと低いものを分けて両方うまく利用するトラックレット1トラックレット2トラックレット3トラックレット4検出結果1信頼度0.9検出結果2信頼度0.2検出結果3信頼度0.7検出結果5信頼度0.1まずは信頼度の高い検出結果を使って紐付け類似度計算にIoUとReIDを用いる検出結果4信頼度0.9TremainDremain
ByteTrack● Tracking by Detectionの問題点を解決したBYTEというアルゴリズムを導入○ 検出結果の信頼度が高いものと低いものを分けて両方うまく利用するトラックレット1トラックレット2トラックレット3トラックレット4検出結果1信頼度0.9検出結果2信頼度0.2検出結果3信頼度0.7検出結果5信頼度0.1検出結果4信頼度0.9次に紐付かなかったトラックレットと信頼度の低い検出結果を紐付けここではIoUのみを類似度計算に用いるTre-remainDremain
ByteTrack● Tracking by Detectionの問題点を解決したBYTEというアルゴリズムを導入○ 検出結果の信頼度が高いものと低いものを分けて両方うまく利用するトラックレット1トラックレット2トラックレット3トラックレット4検出結果1信頼度0.9検出結果2信頼度0.2検出結果3信頼度0.7検出結果5信頼度0.1検出結果4信頼度0.9まだ残っているトラックレットはロストと見なす信頼度が高くて紐付かなかった検出結果は新たなトラックレットとして登録するTre-remain新たなトラックレット
MOTR
MOTR● モデルはTrackFormerとかなり似た構成● MOTRではQuery Interaction Module(QIM)というネットワークが追加されているTrackFormer MOTR
MOTRのQIMについて● QIMの入力はTransformerデコーダの出力と前回のトラッククエリ物体検出クエリTransformerデコーダ出力
MOTRのQIMについて● それぞれのクエリに対して検出の信頼度を用いてフィルタリング○ 物体検出クエリに対しては信頼度が高いものを新たなオブジェクトとする○ トラッククエリに対しては信頼度が低いものを退出したオブジェクトとする
MOTRのQIMについて● フィルタされたトラッククエリをTemporal Aggrigation Network(TAN)に通し、フィルタされた物体検出クエリと結合● TANでは前回のトラッククエリと今回のデコーダ出力を結合してMuti Head AttentionとFFNに通す
全フレームでのLossの計算● TrackFormerなどでは各フレーム毎のLossで学習していた● Collective Average Loss(CAL)を計算○ 入力を動画として全フレームでのLossの平均をとる
実験と評価
MOTの主なデータセットと評価指標● 主なデータセット○ MOT17○ MOT20(より混雑したデータ)○ DanceTrack● 主な評価指標○ MOTA■ FP、見逃し、IDスイッチに対する評価の総合○ HOTA■ 高次追跡精度○ IDSW■ IDスイッチに対する評価○ IDF1■ ID毎のF1スコア
実験結果(MOT17)
実験結果(MOT17)● ByteTrackが全ての指標で勝利!
実験結果(DanceTrack)
実験結果(DanceTrack)● 5つの指標の中でMOTRが3勝!
MOTA-IDF1-FPSの比較(MOT17)MOTR
結果について● MOT17は歩行者がメインなので、検出性能の高さや見かけの類似性による紐付け精度が重要となる● DanceTrackでは人の動きが入るため、MOTRはモーションも含めた時間的変化をより学習できていると言える● 歩行者の検出というシーンでの使い方だとByteTrackが圧倒的高精度
デモ動画● MOTRの動画が見つからなかったのでByteTrackのみ
まとめ● 従来的なTracking by detectionの改良でSOTAを達成したByteTrackすごい!● とはいえ、Transformerの適用によってEnd-to-Endな手法の流れができてきている● 大きな動きがあっても特徴を掴めるという点においてEnd-to-endな手法の将来性を感じる● 参考)2022/10月時点での各データセットでのSOTA○ MOT17:BoT-SORT(2022)(ByteTrackは2位)○ MOT20:ByteTrack○ DanceTrack:OC-SORT(2022)(MOTRは2位)
参考資料● MOT全般○ Multiple Object Trackingの手法・ライブラリ紹介○ Multiple-object tracking (MOT) アルゴリズム研究の歴史1○ Multiple-object tracking (MOT) アルゴリズム研究の歴史2○ Multi-Object Trackingの精度評価指標● ByteTrack○ https://github.com/ifzhang/ByteTrack○ ByteTrack : 低い確度のBoundingBoxも考慮するトラッキングモデル○ 【論文ざっくり紹介】ByteTrack ~単純なアルゴリズムでSOTAを達成(2021年12月時点)~○ ByteTrackで対象のオブジェクトが障害物に隠れても正しいラベルでトラッキングするレシピ● SORT○ 現在のトラッキングモデルの基礎ともいえる SORT を解説!● DeepSORT○ 2017年に発表された DeepSORT を解説!○ DeepSort : 人物のトラッキングを行う機械学習モデル● Transformer○ https://www.slideshare.net/ArithmerInc/transformer-248613529○ 機械学習エンジニアのためのTransformers○ 牛久先生の動画○ AIcia Solid Projectさんの動画● DETR○ Transformerを使った初めての物体検出「DETR」- 第1回○ Transformerを使った初めての物体検出「DETR」 - 第2回○ 物体検出DETR (DEtection TRansformer) - Qiita● MOTR○ megvii-research/MOTR: [ECCV2022] MOTR: End-to-End Multiple-Object Tracking with TRansformer