TimeSformer:3DCNNを超えて動画像を捉えるTransformer
3つの要点
✔️ 動画像のための時空間Self-Attentionを4種考案した.
✔️ 3DCNNモデルと比較して,学習速度が速く,テスト効率が向上した.
✔️ 3DCNNモデルでは数秒の動画しか処理できなかったが,数分の長い動画に適用することも可能になった.
Is Space-Time Attention All You Need for Video Understanding?
written by Gedas Bertasius, Heng Wang, Lorenzo Torresani
(Submitted on 9 Feb 2021 (v1), last revised 9 Jun 2021 (this version, v4))
Comments: Accepted to ICML 2021
Subjects: Computer Vision and Pattern Recognition (cs.CV)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
自然言語処理分野の様々なタスクでSOTAを獲得し,自然言語処理界隈を席巻するTransformerは,画像認識や音声認識にも適用されています.本記事では,CVPR2021で発表された動画像認識分野におけるTransformerモデルであるTimeSformerを説明します.
Transformerモデルを動画像認識へ適用するモチベーションには以下の3つが挙げられる.
- これまで動画像認識分野では,3DResnetやI3DやSlowFastなどの3DCNNをベースとするモデルがベースラインとなっていました.しかし,これらは空間特徴だけでなく時間特徴において局所的な関係性しか考慮できないため,数秒間の動画像しか入力することができませんでした.そこで,Transformerモデルを動画像認識に適用することで大域的な関係性を捉えることが期待できます.
- 3DCNNは強い帰納バイアスによって小さなデータセットでも高性能を獲得できる一方で,データが十分に利用可能な環境ではモデルの表現力を過度に制限してしまう可能性があります.一方で,大きいデータセットでは,帰納バイアスによる制約が少ない方が,表現できる関数の種類が増え,さらなる精度の向上が見込めます.
- CNNよりもTransformerの方が高速な学習と推論が可能であることが分かっています.
以上のモチベーションにより,本論文では動画像認識分野へTransformerを適用するために,Self-Attentionを空間(画像)から時空間(動画像)へ拡張したTimeSformerを提案しています.
TimeSformer
Input
動画像(H×W×3×F)を各フレームにおいてP×PサイズでNパッチに分割します.そして,その線形変換と位置埋め込みの和を入力とします.
pはパッチ(1-N),tはフレーム(1-F)を表しています.また,位置埋め込みは学習可能パラメータです.
Self-Attention
クエリ・キー・バリューは入力に対して,それぞれレイヤー正規化と線形変換を行います.lは層,aはアテンションヘッドを表しています.
Scaled Dot Product Attentionにならって,クエリパッチ(p,t)に対するアテンション重みαは次式で表されます.SM()はSoftMaxを表しています.ただし,1回のAttentionの計算では空間か時間のどちらかを行います.つまり,空間情報に関してAttentionを取る時はp'=1,..,Nで計算し,時間情報に関してAttentionを取る時はt'=1,...,Fで計算します.これにより計算量を削減します.
Enbedding
各層のEnbeddingの獲得は従来のTransformerと同様です.まず,各Attentionの出力(αv)の和を取りsを獲得します.
次に,各Attention-headの出力(s)をconcatして線形変換したものと,残差接続のための前層の出力の和を取ります(z').最後に,z'をレイヤー正規化層とMLP層に通したものと,残差接続のためのz'の和を取ります.
Space-Time Self-Attention Models
式(5)のように,時空間を別々のものとして計算してしまうと,空間と時間を上手く考慮した処理ができません.特に,式(6)のように空間のみのAtentionだと,より時間情報が重要となるタスクでは精度が落ちてしまいます.
そこで本論文では,時空間Attentionのための効率的なアーキテクチャを提案しています.
ベースラインとなるのは,空間AttentionのみのSpace Attentionと時空間情報全てでAttentionを取るJoint Space-Time Attentionです.
Divided Space-Time Attentionでは時間Attention→空間Attentioという順で別々に行います.時間Attentionでは他フレームの同じ位置にあるパッチ同士でAttentionを取ります.そして,空間Attentionではフレームt内の全パッチとAttentionを取ります.時間Attentionを計算後,MLPには通さず,残差接続のみを適用し,空間Attentionへと通す.そして,空間Attentionの出力をMLPへ通して,残差接続を行う.Joint Space-Time Attentionでは,パッチ当たりの計算量がNF+1であるのに対し,Divided Space-Time Attentionではパッチ当たりN+F+2と,効率的な時空間分解を実現しています.
次に,Sparse Local Global AttentionとAxial Attentionについて説明します.Sparse Local Global Attentionは各パッチ(p, t)に対して,近傍のF×H/2×W/2パッチを考慮した局所的なAttentionを計算し,時間次元と空間次元の2パッチのストライドを用いてクリップ全体にわたるスパースで大域的なAttentionを計算する.これにより,局所-大域の分解とスパースパターンを使用した完全時空間Attentionの高速近似と見なすことができる.
Axial Attentionは,時間(T),幅(W),高さ(H)の3つの異なるステップでAttentionの計算を分解する.
実験
種々のSelf-Attentionの精度
下表は上記の5種のSelf-Attentionスキームについて,パラメータ数と各行動認識データセットにおける精度を示しています.K400データセットでは,空間情報のみのAttention(Space)でも高い精度であることが分かります.このデータセットでは,先行研究で,高精度を獲得するのに時間情報よりも空間情報が重要であることが分かっているためです.一方,SSv2データセットでは,高精度には時間情報も重要であることが分かります.この2つのデータセットでDivided Space-Timeが最高精度を獲得しました.以下の実験では,上位2個のDivided Space-TimeとJoint Space-Timeについて比較を行います.
Self-Attentionの計算コスト
下表(左)に解像度に伴う計算コスト,(右)にビデオ長に伴う計算コストを示します.Joint Space-Timeでは,解像度が448ピクセル,フレーム数が32になるとGPUメモリのオーバーフローを引き起こすため,事実上適用できません.一方,Divided space-Timeでは,Joint Space-Timeよりもパラメータ数が大きいにもかかわらず,計算効率が高く,より高い空間解像度,より長い動画を処理することができます.
3DCNNとの比較
近年のビデオ理解への主要なアプローチである3D畳み込みアーキテクチャと比較して,TimeSformerの特徴的な特性を理解することを目的とした実験を行います.本実験は2つの3次元CNNモデルに焦点を当て比較する。1つはビデオ分類の最先端であるSlowFastで,2つは画像ベースの事前学習が可能であるI3Dです.
表2から,TimeSformerが大きな学習容量(パラメータ数は121.4M)を持つものの,低い推論コスト(TFLOPsで0.59)であることが分かります.一方,SlowFastは34.6Mのパラメータを持つにもかかわらず,1.97TFLOPsと大きな推論コストとなっています.同様に,I3Dも28.0Mという少ないパラメータにもかかわらず,より大きな推論コスト(1.11 TFLOPs)を有しています.これはTimeSformerが大規模な学習を伴う設定により適していることを示唆しています.一方,最近の3DCNNは計算コストが大きいため,効率を維持しながらモデル容量をさらに増やすことは困難です.
ImageNetの事前学習の大きな利点の1つは,ビデオデータに対するTimeSformerの非常に効率的な学習を可能にすることです.逆に,最先端の3DCNNは画像データで事前学習しても,学習コストがかなり高くなります.表2ではTimeSformerのKinetics 400でのビデオ学習時間(Tesla V100 GPU時間)をSlowFastとI3Dのそれと比較しています.ImageNet-1Kで事前学習したResNet50からスタートしたSlowFastはKinetics-400で75.6%の精度に到達するために,3 840 Tesla V100 GPU時間を必要とします.I3Dを同様の設定でトレーニングした場合,73.4%の精度を得るために1 440 Tesla V100 GPU時間が必要です.一方,同じくImageNet-1Kで事前学習したTimeSformerは416 Tesla V100 GPU時間だけで,より高い75.8%の精度を達成します.さらに,SlowFastをTimeSformerとある程度似た計算予算(すなわち448GPU時間)で学習するよう制約すると,その精度は70.0%に低下します.同様に,I3Dを同様の計算予算(444GPU時間)で学習させると精度は71.0%に低下します.これは最新の3DCNNの一部が,(ImageNetプリトレーニングを用いた場合でも)良い性能を得るために非常に長い最適化スケジュールを必要とするという事実を浮き彫りにしています.
また,パラメータが多いため,TimeSformerを一から学習することは困難である.そこで,TimeSformerをビデオデータで学習する前に,ImageNetから学習した重みを用いて初期化する.一方,SlowFastは非常に高い学習コストがかかるものの,ゼロからビデオデータを学習することができます(表2参照).
また,ImageNetの事前学習を行わず,直接Kinetics-400でTimeSformerを学習することも試みました.さらに,より長い学習スケジュールとより多くのデータ補強を用いることで,ビデオレベルの精度は64.8%とかなり低いものの,ゼロからモデルを学習することが可能であることがわかりました.表3では,K400とSSv2におけるImageNet-1KとImageNet-21Kの事前学習の効果を検証しています.
(1)TimeSformerは8×224×224のビデオクリップで動作する我々のモデルのデフォルトバージョン
(2)TimeSformer-HRは16×448×448のビデオクリップで動作する高空間分解能バージョン
(3) TimeSformer-L は96×224×224フレーム、1/4のレートでサンプリングしたビデオクリップで動作する我々のモデルの長距離構成です.
表3より,K400ではImageNet21Kの事前学習が有効であり,ImageNet-1Kの事前学習と比較して一貫して高い精度をもたらすことがわかります.一方,SSv2においてはImageNet-1KとImageNet-21Kの事前学習は同程度の精度をもたらすことがわかります.これはSSv2が複雑な時空間推論を必要とするのに対し,K400は空間的なシーン情報に偏っているため,より大きな事前学習データセットで学習した特徴量の恩恵をより多く受けられることを意味します.
ビデオデータのスケールが性能に及ぼす影響を理解するために,TimeSformerをK400とSSv2の異なるサブセットで学習させました.{25%、50%、75%、100%}に対してTimeSformerを学習させました.図4の結果から,K400ではTimeSformerはすべての学習部分集合において他のモデルより優れていることがわかります.しかし,SSv2では異なる傾向が見られ,TimeSformerは75%もしくは100%のデータで訓練されたときのみ最も強いモデルとなります.これはK400と比較して,SSv2はより複雑な時間パターンを学習する必要があり,それらのパターンを効果的に学習するために,TimeSformerはより多くの例を必要とするという事実によって説明されるかもしれません.
トークン数による効果
TimeSformerのスケーラビリティは多くの3DCNNと比較して,より高い空間分解能とより長い映像で動作することができる.これらの側面がTransformerに供給されるトークンのシーケンスの長さに影響を与えることに注目する.具体的には,空間解像度を上げると,1フレームあたりのパッチの数(N)が多くなる.また,フレーム数を増やすと,入力トークンの数も増加する.この効果を調べるために,これら2つの軸に沿って別々にトークン数を増加させる実証研究を行いました.
その結果を図5に示しめします.空間解像度を上げると(ある時点まで)性能が向上することがわかります.同様に,入力クリップの長さを長くすると,一貫して精度が向上することがわかります.GPU メモリの制約により,96 フレームより長いクリップでテストすることはできません.しかし,96フレームのクリップを使用することは,一般的に8〜32フレームの入力の処理に限定される現在の畳み込みモデルとは大きく異なることを指摘したいと思います。
位置埋め込みの重要性
時空間位置埋め込みの重要性を調べるために,TimeSformerのいくつかのバージョンで
(1)位置埋め込みなし
(2)空間のみの位置埋め込み
(3)時空間位置埋め込み
の実験を行いました.
これらの結果を表4に示す.これらの結果から,時空間位置埋め込みを用いた我々のモデルは,Kinetics-400とSomething Something-V2の両方において,最高の精度を生み出すことがわかりました.興味深いことに,空間のみの位置埋め込みを用いた場合,Kinetics-400では良好な結果が得られますが,Something-Something-V2ではかなり悪い結果が得られることがわかります.これは,Kinetics-400がより空間的に偏っているのに対し,Something-Something-V2は複雑な時間的推論を必要とすることから,理にかなっていると言えるでしょう.
SOTAとの比較
表5では,K400の検証セットでの結果を示している.これらの実験では,ImageNet 21Kで事前学習したTimeSformerを使用する.精度指標に加えて,TFLOPsで示される推論コストも含める.ほとんどの以前の方法が推論中に10個の時間クリップと3個の空間クロップ(合計30個の時空間ビュー)を使うのに対し,TimeSformerは3個のビュー(3個の空間クロップ)のみで確かな精度を達成し,推論コストを削減することに注目する.長距離バリアントであるTimeSformer-Lは80.7%のトップ1精度を達成する.さらに,我々のデフォルトのTimeSformerは最近の最先端モデルの中で最も低い推論コストを持つ.しかし,それでも78.0%の精度を達成し,よりコストの高い多くのモデルを凌駕しています.また,Kinetics-400の2万本の検証動画に対して,実際の推論実行時間を測定しました(8台のTesla V100 GPUを使用).SlowFastが推論を完了するのに14.88時間かかるのに対し,TimeSformerは36分,TimeSformer-HRは1.06時間,TimeSformer-Lは2.6時間かかっています.このように,SlowFastとTimeSformer-LはTFLOPsの点では同等のコストであっても,実際には我々の全てのバージョンのTimeSformeの実行時間ははるかに低いものです.
表6では,Kinetics-600での結果も示しています.Kinetics-400と同様にTimeSformerはこのベンチマークで,すべての先行する方法より優れた性能を発揮することがわかります.
最後に,図6において,推論中に複数の時間クリップ(各々が1つの 空間クロップで)を使用することの効果を研究します.K∈{1, 3, 5, 10}個の時間クリップをテストに使用し,精度をプロットする.X3D,及びSlowFastに対して我々のモデルを比較する.X3DとSlowFastはその最高精度に近づくために複数(≥5)のクリップを必要とします.逆に,長距離バリアントであるTimeSformer-Lは,1つのクリップでKineticsビデオの約12秒に及ぶことができるため,最高の性能を達成するために複数のクリップを必要としません.
表7では,SSv2とDiving-48についてもモデルを検証している.SSv2ではImageNet-21Kの事前学習では精度が向上しないため(表3参照),今回はImageNet-1Kで事前学習したTimeSformerを使用します.また,この比較における他の全てのモデルに同じ事前学習を適用することができ,ImageNet-1Kで事前学習したResNetを使用することができます.我々の結果は,TimeSformerがこのデータセットで最良のモデルより低い精度を達成することを示唆します.しかし,我々のモデルが全く異なる設計を使用していることを考慮すると,これらの結果は,TimesSformerがSSv2のような時間的に重い困難なデータセットに対しても有望なアプローチであることを示唆していると考えられる.表7では,別の「時間的に重い」データセットであるDiving-48に対する我々の手法も示しています.Diving-48のラベルの以前のバージョンで最近発見された問題のため,ここでは再現されたSlowFast 16×8 R101モデルとのみ我々の方法を比較します.その結果,TimeSformer はSlowFastを大幅に上回る性能を持つことがわかりました.
長時間動画像モデリング
HowTo100Mを用いた長期的なビデオモデリングのタスクでTimeSformerを評価します.HowTo100Mは,料理,修理,芸術の作成など23K以上の異なるタスクを実行する人間を示す約1Mの教育用Webビデオを含む教育用ビデオデータセットである.これらの動画の平均時間は約7分であり,標準的な行動認識ベンチマークの動画の時間よりも桁違いに長いです.各HowTo100Mビデオには,ビデオで実演されたタスク(23Kクラスのうちの1つ)を示すラベルがあり,教師あり学習に利用することができる.このため,非常に長い時間範囲に渡って行われる活動を認識するモデルの能力を評価するのに適したベンチマークです.この評価では,少なくとも100のビデオ例を持つカテゴリのみを考慮します.これにより,1059のタスクカテゴリにまたがる120Kのビデオに対応するHowTo100Mのサブセットを得ることができます.このコレクションをランダムに85Kのトレーニングビデオと35Kのテストビデオに分割します.
表8はその結果を示しています.ベースラインとして,SlowFast R101の4つのバージョンを使用し,すべて1/32のフレームレートでサンプリングされたビデオクリップで動作するが,フレーム数は8,32,64,96と異なる.TimeSformerはImageNet-21Kで事前学習したViTからスタートし,同じ4つの構成を使用します.この比較における全てのモデルは,HowTo100Mで微調整を行う前にKinetics-400で事前学習を行っている.推論中,各手法において,ビデオの時間的範囲を完全にカバーするために必要な数の重複しない時間クリップをサンプリングします.例えば,一つのクリップが8.5秒に及ぶ場合,410秒のビデオをカバーするために48のテストクリップをサンプリングします.ビデオレベルの分類はクリップの予測値を平均化することによって行われます.表8の結果から,同じ1つのクリップをカバーする場合,TimeSformerは対応するSlowFastに8~11%という大きなマージンをもって勝っていることにまず気づきます.また,より長いレンジのTimeSformerがより良いことを観察する.すなわち,我々の最も長いレンジのバリエーションは最高のビデオレベルの分類精度を達成します.これらの結果は,我々のモデルが長時間のビデオモデリングを必要とするタスクに非常に適していることを示唆します.また,ImageNet 1KとImageNet21Kで事前学習したViTから直接TimeSformerを微調整する実験を行いました(Kinetics-400の学習は省略).ImageNet1Kで事前学習した場合,我々のモデルは8,32,64,96フレーム入力でそれぞれ52.8,58.4,59.2,59.4というトップ1の精度を達成したことを報告します.ImagNet21Kの事前学習を考慮した場合,TimeSformerは8, 32, 64, 96フレーム入力に対してそれぞれ56.0, 59.2, 60.2, 62.1 というトップ1の精度を達成しました.これらの結果は,本モデルが長距離の時間依存性を効果的に利用できることを示しています.これらの結果は,我々のモデルが使用する事前学習データセットに関係なく,長距離の時間依存性を効果的に利用できることを示すものです.
まとめ
本研究では,畳み込みベースのビデオネットワークの確立されたパラダイムと比較して,ビデオモデリングに対する根本的に異なるアプローチであるTimeSformerを紹介しました.時空間自己注視に基づく効果的でスケーラブルな映像アーキテクチャの設計が可能であることを示しました.本手法は(1)概念的に単純で(2)主要な行動認識ベンチマークにおいて最先端の結果を示し(3)学習・推論コストが低く(4)1分以上のクリップに適用できるため,長時間の映像モデリングが可能であることが示されました.将来的には,行動定位,ビデオキャプション,質問応答など,他の映像解析タスクにも本手法を拡張する予定です.
この記事に関するカテゴリー