🦔

論文読み : Track Anything: Segment Anything Meets Videos

2023/04/27に公開

こんにちは Fusic 機械学習チームの石橋です
ポルシェ沼にハマって、平日夜と土日祝しか乗らない(通勤で車は使っていない)のに年間走行距離が2万kmを超えて保険料がめっちゃ高くなってしまいました。

機械学習モデルの開発から運用までなんでもしています。もし、機械学習で困っていることがあれば、気軽にお問い合わせください。

https://arxiv.org/abs/2304.11968v1

概要

近年、Segment Anything Model (SAM)は、優れたセグメンテーション性能により急速に注目されている。しかし動画内で一貫したセグメンテーション(追跡)では精度が劣ることもわかった。そこでこの研究ではTrack Anything Model(TAM)を提案し、動画内で高い精度のトラッキングをできるようにした。

ビデオがあれば人間は何を追跡するかクリックする簡単な操作で、特定のオブジェクトを追跡できる

https://huggingface.co/spaces/watchtowerss/Track-Anything?duplicate=trueg

しかも、追加のトレーニング無しでトラッキングやセグメンテーションで高精度を叩き出す

https://github.com/gaomingqi/Track-Anything

とのこと。
すごいな。Whisperもそうだけど追加学習無しであらゆるドメインに対応できる汎化性能の高いモデルが出てきて使うだけというモデルが最近出てきてるなぁと

huggingfaceで出ているデモも触ってみたけどめっちゃ精度良かった

Introduction

Video Object Tracking (VOT)はcomputer visionにおける基礎的なタスクでである。
VOTと同様にVideo Object Segmentation (VOS)はビデオシーケンスにおいてターゲット(関心領域)を背景から分離することを目的としており、これはよりきめ細かいオブジェクトトラッキングの一種と見なすことができる

近年のSoTAでは手動でアノテーションされたbboxやセグメンテーションマスクで大規模モデルを学習させるという手法が取られている。

アノテーションは手間が掛かるので、その作業から解放される方法は関心が高い。

近年、SAMという画像のセグメンテーションモデルが提案されてた。
このモデルは、柔軟なプロンプトをサポートし、リアルタイムでマスクを計算するため、インタラクティブな利用が可能である。

SAMの特徴として以下のポイントが挙げられる

  • 強力なセグメンテーション能力
    • 11,000,000枚の画像、11億のマスクで訓練されたSAMは高いクオリティのマスクをゼロショットで作成することができる
  • 高いインタラクティビティ
    • SAMはポイント、ボックス、言語といったユーザーフレンドリーなプロンプトを入力に含めることができる。しかし、SAMを直接動画に使用すると、時間的な対応に欠けるため、印象的なパフォーマンスを得ることができない

一方で動画におけるトラッキングでの課題としてスケール変動、ターゲットの変形、モーションブラー、カメラの動き、類似オブジェクトなどの扱いが課題となる。
そこで、SAMの高いインタラクティビティを利用して、動画における高性能なトラッキング/セグメンテーションを実現できないかと考えている

この研究の貢献として

  1. SAMアプリケーションをビデオに応用したこと。フレームごとに個別にSAMを利用するのではなく、時間的対応関係の構築のプロセスにSAMを統合する。
  2. 少人数の作業で課題を解決するための効率的なアノテーション
  3. さまざまなシーンでの利用が可能で、多くの応用が期待できる

手法

論文より図を引用

Step.1 Initialization with SAM

SAMをつかって、弱いプロンプトからROI(region of interest)を作成する。
これが初期のターゲットオブジェクトとなる

Step.2 Tracking with XMem

初期化されたマスクが与えられると、XMemは次のフレームに対して半教師付きVOSを実行する。
XMemはシンプルなシナリオで満足のいく結果を出力できる高度なVOS手法であるため、ほとんどの場面でXMemの予測したマスクを出すことができるためこれを出力する

マスクの品質がそれほど良くない場合は、XMemの予測値と対応する中間パラメータ、すなわちプローブとアフィニティを保存して、ステップ3にスキップします

Step 3: Refinement with SAM

VOSで一貫性のあるマスクを予測し続けることは難しい。
実際、最先端のVOSモデルの多くは、推論中に時間の経過とともに、どんどん粗くセグメント化される傾向にある。

そこで、XMemの品質評価が満足できない場合に、SAMを利用してXMemが予測したマスクを改良する。

具体的には、プローブとアフィニティーをSAMのポイントプロンプトとして投影し、ステップ2で予測されたマスクをSAMのマスクプロンプトとして使用する。
そして、これらのプロンプトにより、SAMは洗練されたセグメンテーションマスクを生成することができる。

Step 4: Correction with human participation

しかし、特に長時間の動画を処理する場合、非常に困難なシナリオで物体を正確に識別することがまだ困難である。そこで、推論中に人間による補正を加えることで、ごくわずかな人間の努力で性能の質的飛躍をもたらすことを提案した。

ユーザーは、強制的にTAMプロセスを停止して、現在のフレームのマスクを修正することができる。

Experiments

スコアを見てみると、突出して高いわけでは無いですね

しかしここのパートでは「特に、困難で複雑なシナリオに対して、TAMが高いパフォーマンスを発揮することがわかりました」と記載があるのでスコアだけでは見えない良さがあるということでしょうか?

4.2 Qualitative Results

TAMは

  • 多オブジェクト分離
  • ターゲットの変形
  • スケール変化
  • カメラの動き

をうまく処理することができ、クリック初期化と1ラウンド推論だけで優れた追跡とセグメンテーション能力を発揮することがわかる

4.3 Failed Cases

失敗したケースは2つのパターンがあるという

  1. 長期間の映像では、図(a)に示すように、マスクが縮んだり、洗練が足りなかったりする。

本来は、SAMの洗練能力によってステップ3で解決することを目指すのですが、現実的なアプリケーションではその効果は期待値よりも低くなってしまっているとのこと

これは複数のプロンプトに基づくSAMの絞り込み能力を、今後さらに向上させることができることを示している一方で、TAMにおける人間の参加・対話は、このような困難を解決するためのアプローチとなり得るが、対話が多すぎると効率も悪くなることを示す。

  1. 物体構造が複雑な場合

例えば、seq(b)の自転車の車輪は、groundtruthのマスクでは多くの空洞が含まれている。
このことから、きめ細かな初期化マスクを得ることは非常に困難であることがわかった。

粗い初期化マスクは、後続のフレームに影響を及ぼし、予測精度を低下させる可能性がある。これはまた、SAMが複雑で精密な構造にまだ苦戦していることを示す例だろう

読んでみて

きっかけはデモを触ってすげーと思って読み始めた論文でした。
セグメンテーションや、物体検知系はあまりちゃんと触ったことがなかったのでかなり勉強になりました。

なんとなく思ったのは2つで

  1. 人間の操作を組み込んだものは最近強いなぁ
  2. 汎化性能が高いモデルが最近は出てきてるなぁ

というところ

人間の操作を組み込んだものは最近強いなぁ

ChatGPTにも事前学習後に強化学習のフェーズがあって人間からのフィードバックを取り入れることでより自然な対話を実現していると聞いた

https://openai.com/research/instruction-following

TAMも事前学習やデータセットだけではうまくいかないところに対して人間の操作が入るという点では共通しているなと感じた

そういう意味では近年の機械学習分野は

  • 大規模モデルを大規模データセットで学習
  • 人間のフィードバックでチューニング

という構成が台頭してきているのかも

汎化性能が高いモデルが最近は出てきてるなぁ

ちょっと前の話になりますが、Whisperという音声認識モデルが話題になりましたね

https://openai.com/research/whisper

これは、多言語対応してるし、チューニングなしであらゆる環境に適応できるという汎化性能のめっちゃ高いものでした。

今回のTAMも使う分にはおそらく追加学習は不要な場合がほとんどでしょう。
機械学習モデルの汎化性能が十分に高くなってくると、データ集めて学習させるというよりは、汎化性能の高いモデルをモジュールやパッケージの感覚で使うようになっていくんでしょうかね?

っていう感想でした

Fusic 技術ブログ

Discussion