blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2019.10.09 技術記事

コンピュータビジョンの最新論文調査 動画認識編

by tomoyuki.suzuki

#AI

はじめに

こんにちは,AIシステム部でコンピュータビジョンの研究開発をしている鈴木智之です.我々のチームでは、常に最新のコンピュータビジョンに関する論文調査を行い,部内で共有・議論しています.今回は動画認識編として鈴木 智之 ( @tomoyukun ) が調査を行い,CVPR 2019と今年10月末開催のICCV 2019に採択された動画認識に関する最新論文を紹介します.

過去の他タスク編については以下をご参照ください.

前提知識

動画認識は,行動分類や行動検出などに代表される,動画情報を入力に定義されるタスク全般のことをさします.近年では,画像認識同様,様々な動画認識のタスクにおいてCNNを用いたアプローチがメジャーです.CNNを用いた動画認識モデルは,目的タスクに応じて多少の差異はあるものの,特徴抽出部分やそれを構成する基本的なモジュールはタスク横断で汎用的に用いられることも多いです.行動分類や行動検出は,そういった動画認識モデルの汎用的な性能を測る上で最も重要視されるタスクで,これらのタスクで高い性能を達成したモデルは,動画認識の他タスクのモデルにもbackboneとして広く使用される傾向にあります.今回も,主に行動分類や行動検出を通して動画認識モデルの汎用的な有効性を主張する研究を紹介します.
動画は画像に対して時間方向の次元が追加されたデータですが,主に時間情報と空間情報の特性の違いが起因して,画像認識で有効な手法の単純な拡張が動画認識において十分とは限りません.特に,時間方向の特徴抽出方法については,入力からend-to-endでタスクに適した特徴表現を獲得するとされるCNNが登場した後も,盛んに議論が続けられるトピックの一つであり,動画認識における性能向上の肝となっていると言えます.今回紹介するCVPR 2019・ICCV 2019の研究では特に,学習方法の観点,さらには動画認識モデルの基本的な計算モジュールの観点から時間特徴抽出の改良に取り組み,動画認識モデルの性能向上を達成しているものが多いです.

タスク

動画認識に属する代表的な2タスクの概要と,関連するデータセットについて紹介します.

行動分類

各動画に1つ割り当てられた行動クラスを推定するタスクです.動画認識モデルの性能を評価する上で,最も重要視されます.

評価指標は動画単位のaccuracy (video accuracy) を見ることが最も多いです. 基本的に動画単位のラベルは,動画から決められた時間長で複数のclipをサンプリングし,各clipをモデルに入力することで得られる推定値の平均とされます.サンプリングは,決められた数のclipを一様もしくはランダムに抽出する方法,sliding windowで抽出する方法 (動画の長さによってclipの数が可変) などが用いられます.

関連する主なデータセットは以下です.基本的に,各動画に対応する行動クラスが与えられます.

  • Kinetics :膨大なデータ量と高いアノテーションの質から,現在最も信頼できるデータセットの一つ.複数種類が存在.
    • Kinetics-400 (2017):400クラス,306245動画.
    • Kinetics-600 (2018):Kinetics-400の拡張版.600クラス (内368クラスはKinetics-400と共有), 495547動画.
    • MiniKinetics (2018):Kinetics-400のsubset.200クラス (全てKinetics-400のsubsetと共有), 85000動画.
    • Tiny-Kinetics (2019):Kinetics-400のsubset.150クラス (全てKinetics-400のsubsetと共有), 約100000動画.
  • UCF101 (2012):Kinetics登場以前に最も用いられていたデータセットの一つ.101クラス, 13320動画.
  • HMDB51 (2011):51クラス, 6766動画.
  • SomethingSomething v1 (2017):174クラス, 108499動画.
UCF101のサンプルフレーム [19].

行動検出

動画内の行動クラスとその時空間的位置を推定するタスク (空間的位置は行動している人物の位置を意味します) です.行動検出には時空間的位置を推定するものと,時間的位置のみ推定するものが存在しますが,今回は紹介する論文の中で取り組まれている時空間行動検出タスクについて説明します(以降,行動検出は全て時空間行動検出をさします). 具体的には,フレーム単位の人物矩形もしくはaction tubeletと,それらに対応する行動クラスのスコアづけを行います.action tubeletとは,同一人物,同一行動クラスに属すると推定される,時間的に連続な人物矩形集合をさします (下図). 動画認識モデルの汎用的な性能を測る上では,既存の行動検出手法の特徴抽出部分を,提案する動画認識モデルに変更して比較評価する方法が多く用いられます.

action tubeletの概要図 [1].

評価指標にはframe mean average precision (frame mAP), video mean average precision (video mAP) が用いられます. frame mAPは,フレーム単位で推定される人物矩形とground truthの人物矩形のIntersection over Union (IoU) が閾値以上となっているものを正解とした時のaverage precisionをクラスごとに算出し,全クラスで平均したスコアです. video mAPはフレーム単位の人物矩形に代わり,action tubeletのIoUを元にaverage precisionの算出し,クラス方向の平均をとったものです.

関連する主なデータセットは以下です.基本的に,各動画の一部 or 全部のフレームにおける人物矩形とそれらに対応する行動クラスが与えられます.

  • AVA (2018):15分 × 437動画から作成されたデータセットで,アノテーションは1秒間隔で付与.60クラス,268005動画.
  • UCF101-24 (2013):UCF101のsubset.24クラス,3207動画.
  • J-HMDB (2013):HMDB51のsubset.21クラス,928動画.
  • UCF-Sports (2008):10クラス,150動画.

従来のアプローチ

動画に含まれる時空間情報のうち,空間特徴抽出は画像認識でその有効性が確認されている2D CNNの考え方を用いることができます.そのため,動画認識モデルでは時間方向の特徴抽出方法が議論になることが多く,今回はそこに焦点を当て従来のアプローチを紹介していきます.

optical flowの活用

動画における時間方向の関係を表す情報形式の1つとして,optical flowがあります. フレーム間のピクセルの空間方向移動ベクトルであるoptical flowは,単一フレームのピクセル輝度値から得られる「見え (appearance)」情報に対して,「動き (motion)」情報として動画認識においてCNN登場以前から広く使用されてきました.CNNを用いた動画認識手法においてもoptical flowの活用は非常にメジャーです.
2014年に提案され,近年でも多くの手法の元になっているものとして,Two-Stream Convolutional Networks (Two-Stream CNN) [2]があります.Two-Stream CNNは,単一フレーム (RGB) 画像を入力とするCNN (RGB-Stream) と時間方向にstackされたoptical flowを入力とするCNN (Flow-Stream) を学習し,各Streamからの出力をfusionする (例えば,平均をとる) 手法です.実際に,RGB-StreamからTwo-Streamにすることで大幅に性能を向上することができ,RGB / Flow-Streamが相補的な特徴を捉えていることが示唆されています. 他にも,Two-Stream CNNの派生としてRGBとoptical flowのfusion方法の最適化を模索する研究が行われており [9, 10],今回紹介する中にもそういった研究含まれています,
性能も高く,直感的にもわかりやすいoptical flowベースの手法ですが,デメリットの1つとしてoptical flowの高い計算コストがあります.そこで,CNNを用いて低計算コストで高精度に推定可能なoptical flowを活用し,全体としての計算コストを削減する試みもあります [17].また,optical flowの動画認識における有効性は,輝度変化への頑健性や動体の形状情報によるものであると実験から考察し,「動き」としての寄与を疑問視する研究もあります [16].こういった観点から,optical flowの動画認識への最適化という方針でより有効な動画特徴を模索する取り組みも存在します [11, 12].今回紹介する論文にも,これらのモチベーションが含まれているものが複数あります.

Two-Stream CNNの概要図 [2].

3D CNN

3D CNNは,2D CNNの2D畳み込み処理を時間方向に拡張した3D畳み込み処理 (下図) で時間方向の情報を考慮するモデルです.3D CNNの先駆け的手法として,2015年に提案されたC3D [3]があります.optical flowと異なり,タスクに適した時空間特徴をend-to-endで学習可能とされる3D CNNですが,C3Dの段階では,行動分類タスクにおいてTwo-Stream CNNに性能が劣っています (on UCF101).この結果を受けて,指摘された問題点は,2D CNNに対して大きく増加した3D CNNのパラメータを最適化するのに動画認識データセットのデータ量が十分ではなかったという点です (2D CNNの成功に大きく貢献したImageNetのサンプル数が100万を超えるのに対し,当時最もメジャーなデータセットであるUCF101の動画数は約13000).

3D畳み込みの概要図 [3].

これに対して,パラメータ数の削減のアプローチをとったのがP3D (Pseudo 3D CNN) [4] や(2+1)D CNN [5] (下図) です. P3Dや(2+1)D CNNは3D (x,y,t) の畳み込み演算を2D (x,y) -> 1D (t) の畳み込みで擬似的に表現することで,パラメータ数を削減し,結果的に精度を向上させました.

3D畳み込み (a) と(2+1)D畳み込み (b) [5].

データ量に関しても,30万以上の動画を有するKinetics-400が提案され,同データセット上の評価では3D CNNはTwo-Stream CNNを超える精度を記録しています [6].3D畳み込みカーネルの空間方向の重みをImageNet学習済みモデルの2D畳み込みカーネルの重みで初期化するInflationも提案され [6],動画認識におけるデータ量のボトルネックがさらに解消されました.

Attention

比較的最近提案されたアプローチとしては,自然言語処理などで有効性が確認されているAttention機構の応用があります.代表的なものは,Non-local Neural Networks [7] です.Non-local Neural Networksは,通常の2D / 3D CNNに対して以下のNon-local operationを中間的に導入をしたものです.

ここで,xは入力特徴マップ,yは出力特徴マップ,添字は座標のindexを表しています.gは座標単位で埋め込みを計算する線形結合で,入力特徴マップが3Dの場合は1×1×1畳み込み (2Dの場合は1×1畳み込み) として並列計算が可能です.fは座標iから見た座標jのAttentionを入力特徴マップにおける座標i, jの値を元に計算する関数です.出力特徴マップの座標iの値は,このAttentionによって各座標におけるgからの出力の重み付け和をC(x)によって正規化したものになります. Attentionの算出方法は複数提案されていますが,シンプルかつ高い効果が確認されているDot product (下式) が広く用いられています.

ここで,θ,φは線型結合で,gと同様入力特徴マップが3Dの場合は1×1×1畳み込みとして計算されます. 実際にはNon-local operationの後段に畳み込み処理を施し,残差構造を持たせたNon-local block (下図) が使用されます.これは,後段の畳み込み処理の重みを0で初期化することで,任意の事前学習済みモデルに対して学習初期におけるその挙動を妨げることなくNon-local operationを導入するためです.

Non-local blockの概要図 [5].

Non-local operationは,座標単位の線型結合・同一の関数fによる任意の座標ペアからのAttention算出・Attentionを用いた重み付け和という時空間的な局所性に捉われない処理で構成されることから,より大域的な特徴抽出に優れていると主張されています.2D CNNに対して時空間的なNon-local blockを導入することで3D CNNを上回る (on Kinetics) 結果も記録されており,時間方向の特徴抽出方法としての有効性も実験的に示されています [5]. 局所性を考慮した特徴抽出として用いられる3D畳み込みや隣接フレームからピクセルの動きとして抽出されるoptical flowなどの時間情報の考慮方法とは独立な意味合いをもつ印象が強く,3D CNNやTwo-Stream CNNなどに追加で使用することで一貫して性能を向上させる傾向にあります.

3D CNN + optical flow

3D畳み込み処理とoptical flowの組み合わせが行われる場合もあります.特に,3D CNNをTwo-Streamにする実験は頻繁に行われており,2D CNNの場合と同様,Two-StreamにすることでRGB-Streamのみの場合から大幅に精度が向上します.さらに,データセットによっては (UCF101,HMDB51など),Flow-Streamの方が精度が高い場合もあります [6]. このような結果から,パラメータ数の観点でのモデル改良やデータ量のボトルネックの軽減が進められた後も,3D CNNはoptical flowが捉えているような動画認識に有効な特徴を抽出しきれていない可能性が示唆されます. 3D CNNが「動き」を捉えていることを疑問視する研究 [8] も存在し,CNNを用いた動画認識モデルの最適性に関してはいまだに議論の余地が多くあると言えます. 今回紹介する論文は,こういった3D CNNの課題感から新たな学習方法やアーキテクチャの提案をしている研究も複数含んでいます.

論文紹介

動画認識に関する最新論文を1つずつ紹介していきます. 特に断りがない限り,図は紹介論文から引用しています.

Representation Flow for Action Recognition (CVPR 2019)

AJ Piergiovanni and Michael S. Ryoo, “Representation Flow for Action Recognition”, the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2019. [Paper] [Project page] [Code]

要約

optical flowの計算方法から着想を得た,動き特徴を抽出するための新しい計算モジュール,Representation flow layerを提案しました.CNNに組み込んでend-to-endに学習が可能で,各行動分類データセットにおいて大幅に精度を改善しました.

提案内容

Representation flow layer
Representation flow layerはTV-L1 optical flowの計算方法を元に定義されます.TV-L1 optical flowは,「時間的に隣接した画像間の対応点の輝度値は等しい」というoptical flow拘束と,「optical flowは空間方向に滑らかに変化する」という制約を元に定義されたエネルギー関数を最小化することで得られます.エネルギー関数はiterativeな計算を用いて最小化できることが知られており[15],このiterativeな計算は微分可能なので,CNNに組み込むことができます.これを新たな動き特徴を抽出する層と捉えたものがRepresentation flow layerです. Representation flow layerの計算方法とその概念図を以下に示します.基本的にTV-L1 optical flowのiterativeな計算と同一の処理です.

(左) Representation flow layerの計算方法.(右) Representation flow layerの概要図.

上記計算のうち,空間方向の微分計算はSobel filerの畳み込みとして表されます.

また,ダイバージェンスは以下のように計算されます.

学習時に,TV-L1 optical flow最適化のハイパーパラメータである θ,λ,γ やSobel filerの重み,さらにはダイバージェンス計算の重みの勾配計算が可能で,学習パラメータとすることができます.これらを学習パラメータに含め,end-to-endに学習することで,目的タスクに最適化された動き特徴を抽出できると主張しています.
また,Representation flow layerはRGB画像に対してのみではなく,CNNの中間層に組み込むことで,特徴マップに対しても動き特徴を計算します.これは,optical flow拘束が特徴マップ上においても成立する,すなわち「時間的に隣接した特徴マップ間の対応点の値は等しい」という仮定から,意味のある動き特徴が抽出できるという考えです.
論文中では,RGB画像,もしくは特徴マップに対してRepresentation flow layerによって抽出される動き特徴をRepresentation flowと呼称しています.

Flow-of-Flow
Representation flow layerの時間的受容野は隣接フレーム間に限られます.時間的受容野を広げる方法の1つとして,Representation flow layerのcascadeがあげられます. しかし,一般にoptical flow mapにおいては (特に非線形な動きをしている場合),optical flow拘束,すなわち「時間的に隣接したoptical flow mapの対応点の値 (動き) は等しい」という仮定が成り立つとは限りません.したがって,optical flow mapに対してさらにoptical flowを計算しても,(動画認識において) 有用な意味を持たず,Represetation flowにおいてもこれは例外ではないと予想されます. そこで,Represetation flow layerの間に畳み込み層を挟み,end-to-endに学習する方法 (Flow-of-Flow) を取っています.こうすることで,畳み込み層が,次のRepresentation flow layerによって意味のある特徴が抽出されるような (例えば,optical flow拘束を満たすような) 変換を行い,上記の問題が解消され,より広い時間長の考慮が可能になると主張しています.

Flow-of-Flowの概要図.

実験結果

Representation flow layerをCNNのどこに組み込むか,また何を学習パラメータとすべきかを検証する意図で,Tiny-KineticsとHMDB51で実験を行なっています.
下に示す結果から,RGB入力の直後にRepresentation flow layerを入れる場合は,通常のoptical flowを入力するCNN (図中 Flow CNN) と近い精度となりますが,より深い層に組み込むことで精度が向上していることがわかります.Block4以降で精度が下がっていることに関しては,特徴マップの抽象度が高くなることで,隣接フレーム間で類似したものとなり,有用な動き特徴が抽出しにくいためと考察しています.
また,学習パラメータに関しては.θ,λ,γとダイバージェンスの重みを学習する場合が最も良い精度を記録しています.

(左) Representation flow layerの組み込み位置の検証結果.(左) Representation Flow Layerの学習パラメータ選択の検証結果.(評価指標はaccuracy,backboneは全て2D ResNet-34.)

次に,Representation flow layerとRGB情報のfusion方法について,以下の3種類について検証を行なっています. 結果から,著者らは,適切な深さでRepresentation flowを抽出すればRGB情報とのfusionの効果は薄いと主張し,以降の実験ではfusionを行わない方法を取っています.

(左) Representation flow layerとRGB情報のfusion方法.(a) fusionしない (None) (b) 最終的な出力の平均をとる (Late) (c) 中間特徴の要素和,要素積,結合 (Add / Multiply / Concat).(右) Representation flow layerとRGB情報のfusion方法の検証結果.(評価指標はaccuracy.backboneは全て2D ResNet-34.)

Flow-of-Flowの効果についての検証結果を以下に示します.畳み込み層を挟まずにRepresentation flow layerを2回重ねる (図中 Flow-of-Flow) と予想通り精度が低下するのに対して,畳み込み層を挟むと (図中 Flow-Conv-Flow) 大幅に向上しています.精度向上の要因の一つとして,時間的な受容野の拡大が挙げられています.一方で,3回以上重ねると精度が低下し,この原因を上述の特徴マップの抽象化と考察してます.

Flow-of-Flowの検証結果.(評価指標はaccuracy.backboneは全て2D ResNet-34.)

3D CNNや (2+1)D CNNに対して組み込んだ場合の結果を以下に示します.すでに時間方向の特徴を抽出しているこれらのCNNに適用した場合も,2D CNNの場合と同様にRepresentation flow layerの効果は大きく,Two-Streamにした場合よりも高い精度を記録しています.ここから,Representation flow layerは3D,(2+1)D畳み込み処理では捉えられないような動き特徴を抽出できていると考察しています.

3D CNNや (2+1)D CNNへのRepresentation flow layerの適用結果.(評価指標はaccuracy.backboneは全て2D ResNet-18.)

Kinetics-400,HMDB51における従来手法とのaccuracy,Run-timeの比較を以下に示します. 低い計算コストで,従来手法を上回る精度を記録しています.Representation flow layerはoptical flowと比較して,ダウンサンプリングされた特徴マップ上で計算されること,精度をあげるために行われるmulti scale warping処理がないこと,最適化のiterarion数が少ないことにより,計算コストを大幅に抑えることができています.

従来手法との比較結果.(Run-time計測のbackboneは全てResNet-34.評価指標はaccuracy.それぞれのbackboneは異なり,提案手法のbackboneはResNet-50.)

MARS: Motion-Augmented RGB Stream for Action Recognition (CVPR 2019)

Nieves Crasto, Philippe Weinzaepfel, Karteek Alahari and Cordelia Schmid, “MARS: Motion-Augmented RGB Stream for Action Recognition”, the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2019. [Paper]

要約

学習時にFlow-Streamを教師モデルとしてRGB-Streamに知識蒸留を行うことで,テスト時にはRGB入力のみでTwo-Streamに近い性能を達成しています.optical flowの計算が不要であるため,全体としての推論時間と精度のトレードオフを大幅に改善しました.

提案内容

メインとなるロスに加えて,Flow-Streamの中間出力を模倣する (知識蒸留) ようにRGB-Streamを学習することで,RGB入力のみからFlow-Streamによって獲得されているような動き特徴も抽出するよう促します.計算コストの高いoptical flow計算が必要なのは学習時のみであるため,推論時の処理はTwo-Streamと比較して高速となります.学習手順の異なる2つのパターン (MERS:Motion Emulating RGB Stream,MARS:Motion-Augmented RGB Stream) が提案されており.いずれの場合もまずFlow-Streamのみをメインとなるロス (行動分類の場合はCross Entropy) で学習し,その重みはRGB-Stream学習時は固定されます.

MERSは以下の2段階で学習されます.

  • Step1:RGB-Stream (MERS) とFlow-Streamそれぞれの最終層入力前の中間特徴のMean Squared Error (知識蒸留のロス) を最小化するように学習します.
  • Step2: MERSの最終層以外の重みを固定して,教師ラベルとのCross Entropyを最小化します.
MERS学習の概要図.

MARSは,知識蒸留とCross Entropyの最小化を段階的に行うMERSに対し,教師ラベルとの知識蒸留のロスとCross Entropyの重み付け和をend-to-endで最小化します.Flow-Streamへの模倣をしつつ,RGB入力からの推定に最適化された特徴抽出を行わせることを意図しています.

MARS学習の概要図.

実験結果

各行動分類データセットにおける,結果を下図に示します. MERSに注目すると,どのデータセットでもFlow-Streamと近い精度を記録しています.また,Flow-Streamとのアンサンブルと (MERS + Flow) 比較して,RGB-Streamとのアンサンブル (MERS + RGB) の方が精度向上が大きいことがわかります.これらから,MERSはRGB入力であるのにも関わらず,Flow-Streamの特徴抽出をうまく模倣できていることを主張しています.MARSについては,どのデータセットにおいてもRGB / Flow-Streamよりも高い精度を記録しており,Two-Streamに近い精度を達成しています.全体としてはMARSの方が高精度であり,Flow-Streamの特徴抽出の模倣とメインのロスの最小化を同時にend-to-endで行うことの有効性が確認できます.

行動分類の結果 (評価指標はaccuracy.backboneは全て3D ResNeXt-101.).

各手法のMiniKineticsにおける精度と推論時間を下図に示します. 提案手法であるMARS, MERSは推論時にoptical flowの計算が不要であるため,TV-L1 optical flowを用いたTwo-Streamに匹敵する精度を記録しつつ,推論時間は高速です.

各手法の精度と推論時間.(backboneは全て3D ResNeXt-101.)

Kinetics-400において,MARSによってRGB-Streamから精度向上 / 低下した上位3クラスとそれらに対する各Streamの精度を下図に示します.精度の向上が大きかったクラスはFlow-Streamで高い精度を記録していたクラスであり,クラスによってはFlow-Streamを上回っています.また,精度が低下したサンプルはFlow-Streamで精度が低かったクラスですが,Flow-Streamと比較するとMARSは高い精度を記録しています.これらから,MARSはRGB / Flow-Streamの中間的な特徴,もしくは双方を組み合わせることによる相乗効果で各Single-Stream以上に有効な特徴を抽出していると主張しています.

RGB-Streamに対してMARSによって精度向上した上位3クラス (Top3) と精度低下した上位3クラス (Bottom3).(backboneは全て3D ResNeXt-101.)

Kinetics-400,UCF101,HMDB51,SomethingSomething v1における従来手法との比較を下図に示します.Kinetics-400では,事前学習なしにも関わらず,既存手法に匹敵する精度を記録しました.UCF101,HMDB51,SomethingSomething v1においても,RGB入力,RGB + Flow入力いずれの条件でも最高精度を達成しました.

(右) Kinetics400における従来手法との比較結果,(左) UCF101,HMDB51,SomethingSomething v1における従来手法との比較結果.(評価指標はaccuracy.それぞれのbackboneは異なり,提案手法のbackboneは3D ResNeXt-101.)

Learning Spatio-Temporal Representation with Local and Global Diffusion (CVPR 2019)

Zhaofan Qiu, Ting Yao, Chong-Wah Ngo, Xinmei Tian and Tao Mei, “Learning Spatio-Temporal Representation with Local and Global Diffusion”, the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2019. [Paper]

要約

通常の2D / 3D 畳み込み処理による特徴抽出を行うLocal pathに加え,入力動画全体の特徴を集約するGlobal pathを含む,Local Global Diffusion (LGD) blockを提案.行動分類,行動検出タスクの様々なデータセットで,一貫した精度向上を記録しました.

提案内容

Local Global Diffusion (LGD) block
一般に,CNNで時空間的にlong-rangeな依存関係を考慮したい場合は,畳み込みやpoolingなどの局所的な処理を多層にして,受容野を広げます.これに対し,著者らは,受容野内でも時空間的に遠い領域の影響は相対的に小さくなると主張しています.提案するLGD blockに含まれるGlobal pathは入力動画全体の特徴を集約する役割をもち,効率的にlong-rangeな依存関係の考慮を行います.

下図にLGD blockの概要図を示します.LGD blockを構成するLocal pathとGlobal pathは,それぞれLocal representation (C × T × H × W),Global representation (C × 1 × 1 × 1) を出力します (Cはチャネル数,T, H, Wはそれぞれ特徴マップの時間方向,高さ方向,幅方向の次元数).また,これらは相互にpathを有しています.

LGD blockの概要図.

上図に対応させて各pathからの出力を式で表すと以下のようになります.

Upsamplingは,Global representationの値を各時空間座標にコピーして,Local representationと同じ次元に揃える処理です.Local Transformationは,通常の2D / 3D 畳み込み処理が用いられます.Weighted connectionsは,線形結合を表し,その重みは学習対象となります.また,Function of sumは,要素和を表します.最終的にはLGD blockを複数連結したモデルを構築します.最初のLGD blockに入力するLocal representationは入力clipにLocal Transformationを一度施したもの,Global representationはそれに対してGlobal Average Pooling (GAP) をしたものとします.

LGD-2DとLGD-3D
論文中では,Local Transformationに2D畳み込みを用いる場合はLGD-2D,3D畳み込みを用いる場合はLGD-3Dと呼称しています.LGD-2Dは,Local Transformationとして,weight-shareな2D畳み込みがフレームごとに行われます.また,long-termな情報を効率よく考慮するために,動画全体をT個のsegmentに分割し,各segmentから1フレームを選出することで,入力を作成しています.対して,LGD-3Dは連続した複数フレームを入力とし,Local Transformationとして3D畳み込みが行われます.実験では,計算コスト削減のためP3Dが用いられています.

LGD-2DとLGD-3Dの概要図.

実験結果

提案するLGD blockの最適性を検証するために,Kinetics-600においてLGD blockのvariantsと比較しています.

  • block_v1: 前blockのGlobal representationからのpathをなくした構造で,この場合のGlobal representationは以下のように表されます.
  • block_v2: Local representation計算時に要素和ではなく要素積をとる構造で,SE block [13] と近い処理となります.Local representationは以下のように表されます.

結果は以下になります.LGD blockのaccuracyが最も高いことから,LGD blockの有効性とその構造の最適性が主張されています.ベースラインとなる手法に対しても精度向上が確認できます.

LGD blockの最適性に関する検証結果.(評価指標はaccuracy.TSN baseline, P3D baselineはLGD-3D, LGD-2DそれぞれにおいてLGD-blockを導入する前のベースモデルでbackboneはResNet-50.)

次に,Kinetics-400,Kinetics-600における従来手法との比較結果を以下に示します.RGB,Flow,Two-streamのいずれの場合でも,LGD 3Dが最も高い精度を記録しています.Kinetics-600では,より深いbackbone (ResNet-152) を用いたモデルよりも高い精度を記録しています.

従来手法との比較結果.(左) Kinetics-400,(右) Kinetics-600.(評価指標はaccuracy.)

J-HMDBとUCF101-24における行動検出でもLGD blockの評価を行っています.人物候補領域はResNet-101ベースのFaster R-CNNによって検出し,それを用いてLGD-3DのLocal prepresentation上でRoI poolingされた特徴量から,各行動クラスのスコアを算出しています.結果は以下であり,従来手法を大きく上回る結果となりました.

J-HMDB,UCF101における従来手法との比較結果.(評価指標はvideo mAP.)

Dance with Flow: Two-in-One Stream Action Detection (CVPR 2019)

Jiaojiao Zhao and Cees G. M. Snoek, “Dance with Flow: Two-in-One Stream Action Detection”, the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2019. [Paper] [Code]

要約

optical flowを入力とするbranchからの出力を元に,RGB-Streamの複数の中間特徴をscale,shiftする,Two-in-one Stream CNNを提案.空間的なlocalizationに強く,特に行動検出タスクにおいて,精度向上を達成しました.

提案内容

Two-in-one Stream CNN (Two-in-one) の概要を下図に示します.RGB-Streamの決められた層の特徴マップに対して,optical flowを入力にMotion condition (MC) layerとMotion modulation (MM) layerを通じて計算されたβ,γを用いて,scaleとshiftを行います.MC layer,MM layerは下図に示すようにcascadeされており,MC layerはネットワーク全体で重みを共有,MM layerはRGB-Streamにおいて導入する位置によって異なる重みを持ちます.β,γは対応するRGB-Streamの特徴マップと同一次元であり,それぞれ特徴マップとの要素積,要素和が計算され,次のRGB-Streamの層に入力されます.
Two-in-oneは,Single-Streamに対して,2倍近くになるTwo-Streamと比較すると計算コストの増加は少なくすみます.また,RGB-StreamとFlow-Streamを別々に学習するTwo-Streamに対して,RGB画像とoptical flowを同一のネットワークに入力して,end-to-endに学習している点が異なります.実験の中ではTwo-in-oneに対して,さらにFlow-Streamを加えたTwo-in-one two streamも用いています.

Two-in-one Stream CNN (Two-in-one) の概要図.

実験結果

UCF101-24における行動検出,UCF101における行動分類の結果を下図に示します.行動検出においてはTwo-Streamに対して,低計算コストで高い精度を達成,行動分類においても各Single-Streamよりも高い精度を記録しており,Two-in-one two streamにするとTwo-Streamを超える精度となります.特に,行動検出において効果を発揮した要因としては,optical flowを元に特徴マップをscale,shiftするのは動体領域の情報をRGB-Streamに加える効果があり,空間的なlocalizationに強くなるためであると考察しています.

(左) UCF101-24における行動検出,(右) UCF101における行動分類の結果.(sec / frameにはoptical flowの計算時間は含まれていない.backboneはVGG-16.)

MM layerの位置による精度の変化を下図に示します.入力に近い層に単一のMM layerを入れる方法が最も良い結果となっています.MM layerは主に動体領域の抽出の役割をしているという観点から,特徴マップの空間方向の抽象化が進行する前の浅い層で効果を発揮しているのではないかと考えられます.

MM Layerの位置 (横軸) ごとのUCF101-24における行動検出精度 (縦軸) .(a) 単一のMM layerの場合 (b) 複数のMM layerの場合.(backboneはVGG-16.)

MC / MM layerの出力とshift,scaleされた特徴マップの可視化例を下図に示します.MC / MM layerからの出力は,RGBのみでは抽出できていなかった動体領域に大きく反応していることがわかります.

MC / MM layerの出力とshift,scale前後の特徴マップの可視化例.2行目以降は,各列が特徴マップにおける同一のチャネルに対応.

各行動検出データセットにおける従来手法との比較を下図に示します.特にIoU閾値が厳しい条件において,Two-in-one,Two-in-one two streamが高い精度を記録しており,MC / MM layerを導入することにより,空間的なlocalizationの性能が向上していることがわかります.

各行動検出データセットにおける従来手法との比較結果.(提案手法と同一のbackboneで,Two-Streamとなっている手法は,Single-frameでは表中のSinghらの手法,Multi-frameでは表中のKalogeitonらの手法.評価指標はvideo mAPで2行目は検出矩形のIoU閾値.提案手法のbackboneはVGG-16.)

SlowFast Networks for Video Recognition (ICCV 2019 Oral)

Christoph Feichtenhofer, Haoqi Fan, Jitendra Malik and Kaiming He, “SlowFast Networks for Video Recognition”, the International Conference on Computer Vision (ICCV), 2019. [Paper (arXiv)]

要約

低い時間的解像度で空間的な意味特徴の抽出を担うSlow pathwayと,高い時間的解像度で動き特徴の抽出を担うFast pathwayからなるSlowFast Networksを提案.計算コストと精度のトレードオフを大幅に改善しました.

提案内容

動画認識で重要な特徴を,空間的な意味情報 (例えば,写っている物体クラスやそれらの大まかな配置,シーン情報など) とそれらの動き情報に分割できると考え,前者の時間的な変化は遅いが,後者を捉えるには高い時間的解像度が必要と仮定.そこで,各々の特徴抽出を異なる時間解像度入力のネットワーク (Slow pathway,Fast pathway) に担わせるSlowFast Networksを構築しました.
SlowFast Networksの概要図と,3D ResNetをベースにした場合の各pathwayの構造を以下に示します.Slow pathwayは入力の時間解像度は低く,res4,res5以外のblockは空間方向の2D畳み込みとなっています.これは,時間的な解像度が低いときフレーム間の物体の移動量が大きいため,空間方向の受容野が十分に拡大されない浅い層では時間方向の関係性を見ても効果は薄いと考えれるためです. Fast pathwayはSlow pathwayと比較して時間的解像度は高いですが,チャネル数や空間方向の情報が削減 (実験参照) されているため,計算コスト(FLOP数)はSlowFast Networks全体の15 ~ 20%に抑えられます.また,決められたblockの直後にpathway間の結合(lateral connection)を持たせており,この結合は実験通してFast pathwayからSlow pathwayのみの単一方向と決めています.具体的な結合方法についてはablation study(実験参照)を行なっています.

(左) SlowFast Networksの概要図と,(右) 3D ResNetをベースにした場合の各pathwayの構造.

実験結果

従来手法との比較を以下に示します.optical flowの使用や事前学習をせずに従来手法よりも高い精度を記録していること,Slow pathwayに対してFast pathwayを加えることで,計算コストと精度のトレードオフが大幅に改善していることがわかります.

(左) Kinetics-400における従来手法との比較結果 (評価指標はaccuracy.SlowFastの右に示される表記は順に,(Slow pathwayの入力フレーム数) × (Slow pathwayの時間方向のstride数), SlowFast Networksのbackbone.backboneはそれぞれ異なる.) (右) Kinetics-400における,計算コストと精度のトレードオフ.

Slow pathway,Fast pathway間のlateral connection方法に関して,以下の3種類を比較検証しています.

  • (i) Time-to-channel (TtoC):Fast pathwayの特徴マップを時間方向に分割,それらをchannel方向に結合する形でreshapeし,特徴マップのサイズをSlow pathwayの特徴マップに合わせる方法.最終的に,Slow pathwayの特徴マップとsum or concat.
  • (ii) Time-strided sampling (T-sample):Fast pathwayの特徴マップを時間方向にsamplingし,Slow pathwayの特徴マップと時間方向の次元数を合わせる方法.最終的に,Slow pathwayの特徴マップとconcat.
  • (iii) Time-strided convolution (T-conv):Fast pathwayの特徴マップにstrideありの3D畳み込みを行うことで,Slow pathwayの特徴マップと時間方向の次元数を合わせる方法.最終的に,Slow pathwayの特徴マップとconcat.

結果を以下の (a) に示します.単純な最終出力のconcatのみでは精度向上が0.9%に止まるのに対し,latetal connectionを入れると改善幅が大きくなります.特に,Time-strided convolutionを用いる場合が最も良い結果を記録しています.

Fast pathwayのchannel数に関する検証結果を以下 (b) に示します.βが1/8程度までの範囲では,channel数の増加による精度の向上が見られますが,それ以上は向上幅が小さい,もしくは精度が悪化する傾向にあります.Slow pathwayに対してFast pathwayのchannel数が相対的に少なくても十分であることが判断できます.

Slow pathwayの軽量化方法に関する検証結果を以下 (c) に示します.空間的解像度の削減,グレースケール化,時間差分画像,いずれの軽量化を施したFast pathwayを用いてもSlow pathwayのみのベースラインと比較して精度向上が確認できます.特にグレースケール化は,計算コストと精度の双方において最も良い結果となりました.

(a) lateral connection方法の検証結果.SlowFastの内,表記がないものは各pathwayの最終出力のconcat.(b) Fast pathwayのchannel数に関する検証結果.βはSlow pathwayに対するFast pathwayのchannel数の割合を示す.(c) Slow pathwayの軽量化方法に関する検証結果.(評価指標はaccuracy,backboneは全て3D ResNet-50.)

行動検出のbackboneとしてのSlowFast Networksの性能をAVA datasetにおいて検証しています.人物候補領域はDetectron [14] のFaster R-CNNをAVAでfine-tuningしたモデルによって検出,それを元にSlowFast Networksの特徴マップ上でRoI alignベースのpoolingを行い,各人物矩形の行動クラス推定を行なっています.結果は下図のようになり,optical flowを使用せずに従来手法を上回るmAPを記録しています.

AVA datasetにおける行動検出の従来手法との比較結果.(評価指標はframe mAP,提案手法のbackboneは3D ResNet-101.)

さらに,下図にSlow pathwayのみとSlowFast Networksの場合におけるAVAの各クラスの精度を示します.全体としてFast pathwayを使用することによる精度の向上は大きく,“hand clap”,“swin”,“run / jog"をはじめとする動き情報が大きな手がかりとなると予想されるクラスの改善が特に大きいことがわかりました.

AVA datasetにおける行動検出のクラスごとの精度.(評価指標はframe mAP,提案手法のbackboneは3D ResNet-101.).

おわりに

今回は動画認識分野におけるコンピュータビジョンの最新論文をご紹介しました.単一画像に対してよりリッチな情報である動画を用いてコンピュータビジョンのタスクを解く試みは,可能性に満ちており以前から注目され続けていますが,計算コストと精度の両面においてデファクトスタンダードとなる動画認識モデルの確立は長らくされていなかったように思います.一方で、今回紹介した論文の中には,動画情報の特性と先行研究の課題感から従来の動画認識モデルに大きな変更を加えて性能改善を行ったものもあり,こういった最近の研究の流れが動画認識分野を一気に前進させる可能性にも期待できます.DeNA CVチームでは引き続き調査を継続し,最新のコンピュータビジョン技術を価値あるサービスに繋げていきます.

参考文献

  • [1] Kalogeiton et. al, “Action tubelet detector for spatio-temporal action localization”, ICCV 2017.
  • [2] Simonyan et. al, “Two-stream convolutional networks for action recognition in videos”, NIPS 2014.
  • [3] Tran et. al, “Learning spatiotemporal features with 3D convolutional networks”, ICCV 2015.
  • [4] Qiu et. al, “Learning spatio-temporal representation with pseudo-3d residual networks”, ICCV 2017.
  • [5] Tran et al, “A closer look at spatiotemporal convolutions for action recognition”, CVPR 2018.
  • [6] Carreira et. al, “Quo vadis, action recognition? a new model and the kinetics dataset”, CVPR 2017.
  • [7] Wang et. al, “Non-local neural networks”, CVPR 2018.
  • [8] Huang et. al, “What Makes a Video a Video: Analyzing Temporal Information in Video Understanding Models and Datasets”, CVPR 2018.
  • [9] Feichtenhofer et. al, “Convolutional two-stream network fusion for video action recognition”, CVPR 2016
  • [10] Feichtenhofer et al, “Spatiotemporal residual networks for video action recognition” NIPS 2016
  • [11] Lee et. al, “Motion feature network: Fixed motion filter for action recognition”, ECCV 2018.
  • [12] Y.-H. Ng et. al, “Actionflownet: Learning motion representation for action recognition”, WACV 2018.
  • [13] Hu et. al, “Squeeze-and-excitation networks”, CVPR 2018.
  • [14] Girshick et. al, Detectron. https://github.com/facebookresearch/detectron, 2018.
  • [15] Zach et. al, “A duality based approach for realtime tv-l1 optical flow”, DAGM Conference on Pattern Recognition 2017.
  • [16] Sevilla-Lara et. al, “On the integration of optical flow and action recognition”, GCPR 2018.
  • [17] Ilg et. al, “Flownet 2.0: Evolution of optical flow estimation with deep networks”, CVPR 2017.
  • [18] Kay et. al, “The kinetics human action video dataset”, arXiv 2017.
  • [19] Soomo et. al, “UCF101: A Dataset of 101 Human Actions Classes From Videos in The Wild”, CRCV-TR-12-01 2012.

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。