Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tracking Any Pointの紹介
Search
Shigeki Kobayashi
December 20, 2024
0
1
Tracking Any Pointの紹介
社内勉強会で使用した資料です。
Tracking Any Pointというタスクとその手法についてまとめました。
Shigeki Kobayashi
December 20, 2024
Tweet
Share
More Decks by Shigeki Kobayashi
See All by Shigeki Kobayashi
最近のVisual Odometryと Depth Estimation
sgk
1
310
Matching 2D Images in 3D: Metric Relative Pose from Metric Correspondences
sgk
1
330
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Building Your Own Lightsaber
phodgson
103
6.1k
Into the Great Unknown - MozCon
thekraken
33
1.5k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.2k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
It's Worth the Effort
3n
183
28k
Transcript
AI 2024.12.19 小林 茂樹 GO株式会社 Tracking Any Pointの紹介
AI 2 ▪ 動画内の指定した点を長期間 (複数フレーム間) で追跡するタスク ▪ 2006年にこのタスクにはじめて取り組まれる ▪ 2022年に深層学習を用いて再着手され、TAP-VidによってこのタスクがTracking
Any Pointと名付けられる Tracking Any Point (TAP) とは 画像は以下のサイトから引用 https://co-tracker.github.io/ 入力 • 動画 • 追跡したい点 (クエリポイント) 出力 • 追跡対象点の各フレームにおける以下の情報 ◦ 位置 (x, y) ◦ 視認可能かどうか ◦ 信頼度 (一部モデルのみ) TAP-Vid: A Benchmark for Tracking Any Point in a Video (NIPS’22)
AI 3 Optical Flowとは何が違う? ▪ 追跡対象の点が視認できなくなっても追跡し続ける ▪ フレームの外に出た点 ▪ 隠蔽された点
画像は以下のサイトから引用 https://co-tracker.github.io/ https://cotracker3.github.io/ 隠蔽 フレーム外
AI 4 TAPの応用例 物体追跡 NetTrack 物体把持 RoboTAP カメラ姿勢推定 LeapVO 動画編集
TAPTR
AI 5 Tap-Vid 実データと合成データの 評価データセットを提案 TAPの主要な研究 PIPs 深層学習を用いてParticle Videoに再着手 PointOdyssey
多様な長時間の動画で構成された 合成データセットを提案 TAPIR 1x1conv + depthwise convで反復更新 全フレームに対して初期位置を粗く推定 不確実性も推定 CoTracker 追跡点の関係性を考慮 CoTracker3 擬似ラベルを付与して 実データを利用 omni motion 動画毎に擬似的な3D表現を 最適化して点を追跡 Particle Video ドロネー三角形分割で 追跡点間にエッジを追加し 輝度誤差で最適化 2006 2022 2023 2024
AI 6 Tap-Vid 実データと合成データの 評価データセットを提案 TAPの主要な研究 PIPs 深層学習を用いてParticle Videoに再着手 PointOdyssey
多様な長時間の動画で構成された 合成データセットを提案 TAPIR 1x1conv + depthwise convで反復更新 全フレームに対して初期位置を粗く推定 不確実性も推定 CoTracker 追跡点の関係性を考慮 CoTracker3 擬似ラベルを付与して 実データを利用 omni motion 動画毎に擬似的な3D表現を 最適化して点を追跡 Particle Video ドロネー三角形分割で 追跡点間にエッジを追加し 輝度誤差で最適化 2006 2022 2023 2024 本資料ではこれらの概要を紹介して TAPの研究の流れを追っていきます
AI 7 PIPs (ECCV’22 Oral) ▪ 2006年に行われたParticle Videoに深層学習を用いて再着手 ▪ Particle
Videoとは異なり各追跡点が視認可能かも推定する ▪ Optical Flowで有名なRAFTをベースにしている ▪ TAPの派生研究はPIPsをベースに改良 ➡ PIPsだけ多めに説明します
AI 8 PIPs: 全体像
AI 9 PIPs: 特徴抽出 1. 各フレームからCNNで特徴抽出 2. 特徴マップからクエリポイント周辺をcropし追跡点の局所特徴 (トラック特徴) Fとする
3. 全フレームの追跡点の位置Xとトラック特徴Fを最初のフレームの値で初期化 クエリポイント この図ではクエリ ポイントが1つを 想定
AI 10 PIPs: 相関特徴 1. トラック特徴Fと特徴マップの内積を計算して特徴の相関を表すscore mapを算出 2. score mapから追跡点付近をcropして相関特徴Cを取得
a. 相関のピークを見つけやすくするためマルチスケールでcropする
AI 11 PIPs: MLP Mixer 1. 以下をconcatしてMLP Mixerに入力 a. それぞれのフレームの追跡点とクエリポイントとの差分
b. 位置符号化によるaの埋め込みベクトル c. トラック特徴 F d. 相関特徴 C 2. 出力は追跡点の位置とトラック特徴の更新量 3. MLP Mixerを用いたのはCNNだと精度が出ずTransformerだと重すぎたから
AI 12 PIPs: 反復更新 1. MLP Mixerで更新されたXとFを用いて相関特徴の算出 ➡ MLP Mixerの処理をK回繰り返す
a. 位置・score mapに対して(1), (3) 式のlossを計算 2. 反復更新が終わったら全結合層を用いてトラック特徴から視認性のlossを計算 (2) supervised score mapを直接superviseすることで 位置Xの予測結果に依存せずにFを学習可能 GTの追跡点の位置との相関がピーク になるようにFを更新
AI 13 PIPs: 重要な点 各フレーム (時刻) の追跡点を同時に処理して 時系列情報 (追跡点の軌跡) を利用
➡ 再度視認された追跡点を元に隠蔽されている 区間でも軌跡を推定 • 視認できる点はscore mapのどこかしらが反応 • 視認できない点 (隠蔽されている or フレーム外の点) は score mapがどこも反応しない ➡ 隠蔽されてから再度視認できるようになった点をキャッチできる 推論時は入力の実データに対して内積のscore mapが 誤差を修正するように繰り返し更新される ➡ 学習に用いた合成データに過適合しないようになる
AI 14 TAP-Vid (NIPS’22) 合成データと実データの評価データセットをそれぞれ2つずつ提案 ▪ クリックした点をoptical flowで追跡するアノテーションツールを作成 ▪ 疎なフレームに対してアノテーションすれば、その間のフレームに対しての追跡はoptical
flowが行う ▪ アノテーションが完了後、他のアノテータ全員の了承が出るまで修正を繰り返す ▪ これを平均4~5人で行う ▪ 10秒の動画をアノテーションする時間は平均3.3時間 ▪ 評価指標は以下の3つとした ▪ 視認可能かどうかの分類性能 ▪ 追跡点の誤差が一定の閾値以下か ▪ 評価時のデータは全て同じ解像度とする ▪ TP / (TP + FP + FN) ▪ 正例は位置誤差が閾値以下 & 視認可能と判定
AI 15 PointOdyssey (ICCV’23) TAP向け合成データセットを提案 ▪ 従来のデータセットと異なり長時間の動画を使用 ➡ 長距離の追跡を学習できる ▪
モーションキャプチャデータを用いることで人・動物の動きを現実的にした ▪ データの多様性の確保 ▪ 42の人の形状、7つの動物、1,000以上のオブジェクト/背景テクスチャ、50の環境マップ ▪ さまざまな素材、テクスチャ、およびライティングでシーンをランダム化 ▪ 動的な霧や煙の効果をレンダリングし部分的な隠蔽を再現 ▪ BlenderのCyclesエンジンを使用して2600 GPU時間でレンダリング • アノテーションされている 点の数が多い • 動画全体で点の軌跡が アノテーションされている • 動画が長時間
AI 16 TAPIR (ICCV’23) ▪ MLP-Mixerを1×1 conv + depthwise conv
に置き換え ▪ channel-mixingが1x1 conv、token-mixingがdepthwise convに相当 ▪ 任意のフレーム数を入力可能 ▪ GPU・TPUでの計算がより効率的 ▪ クエリポイントの特徴と全フレームの特徴の相関から初期位置を決定 ▪ backboneで特徴マップを抽出 ➡ クエリポイント周辺をcrop ➡ cropした特徴と全フレームの特徴マップの内積を計算 ➡ 最もスコアが高い位置を各フレームでの追跡点の初期位置とする ▪ 不確実性も推定 ▪ GTと予測の位置がある閾値より離れている場合に不確実性が 高いとする ▪ lossを追跡点の位置・視認性・不確実性の組み合わせとした 位置 視認性 不確実性
AI 17 CoTracker, CoTracker3 (ECCV’24, arxiv) ▪ CoTracker ▪ MLP-MixerをTransformerに置き換え
▪ 追跡点間でのattentionにより追跡点同士の関係性を考慮 ▪ 追跡点の情報を少数のトークン (プロキシートラック) に集約することにより計算量を削減 ▪ 全追跡点からプロキシートラックへattentionは行うが逆方向へのattentionは行わない ▪ 補助的なクエリポイントを追加することで性能向上を確認 ▪ CoTracker3 ▪ 合成画像とともに擬似ラベルを付与した実画像でも学習 ▪ 合成画像で学習させた既存モデルをアンサンブルして教師モデルとして使用 ▪ 学習に用いる実画像データの増加でどこまで性能向上するか確認 追跡点数 フレーム数 プロクシー トラック数
AI 18 他にも多くの研究が行われている タイトル 学会 リンク Dense Optical Tracking: Connecting
the Dots CVPR2024 https://16lemoing.github.io/dot/ FlowTrack CVPR2024 paper Dino-Tracker ECCV2024 https://dino-tracker.github.io/ Track Everything Everywhere Fast and Robustly ECCV2024 https://cvlab-kaist.github.io/locotrac k/ LocoTrack ECCV2024 https://cvlab-kaist.github.io/loc otrack/ Self-Supervised Any-Point Tracking by Contrastive Random Walks ECCV2024 https://www.ayshrv.com/gmrw TAPTR: Track Any Point TRansformers ECCV2024 https://taptr.github.io/ TAPTRv2 NeurIPS2024 https://taptr.github.io/
AI 19 まとめ ▪ 動画内の点を長期間に渡って追跡するTracking Any Pointというタスクを紹介 ▪ 視認できなくなった点も追跡し続ける (隠蔽される、フレーム外に出る)
▪ タスクの確立とともにTAPにより適したデータセットが提案される ▪ クエリポイントの特徴と動画内の各フレームの特徴の内積を用いて点を追跡 ▪ 反復更新することで合成データと実データのドメインシフトに対応 ▪ 反復更新をするモデルはMLP-Mixer, conv, Transformerなど色々