Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DNN による動画認識

DNN による動画認識

ALBERT Inc.

June 03, 2021
Tweet

More Decks by ALBERT Inc.

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 © 2020 ALBERT Inc. 2 ⽔船 公輔 n ~2019

    ⼤阪⼤学 経済学修⼠ Ø 専⾨︓マーケティングサイエンス Ø 研究内容︓LDA (Latent Dirichlet Allocation) を⽤いたレビューテキストの解析 n 2019 (株)ALBERT に⼊社 n 2020~ リサーチャーに転向 Ø 動画認識の研究
  2. Outline © 2020 ALBERT Inc. 3 n 動画認識タスク Ø 動画認識で何ができる︖

    n 動画のハンドリング Ø 動画の前処理はどうすれば良いのか︖ Ø ニューラルネットにはどのような形式で与えるのか︖ n 研究動向 Ø 最近はどんな課題意識があるか︖
  3. 動画認識で何ができる︖ © 2020 ALBERT Inc. 5 今回は「⾏動認識」に焦点を当てる n 「⾏動」についての認識 Ø

    切り抜かれた(Trimmed)動画での、「どんな」⾏動があるかの認識︓Action Recognition Ø 切り抜かれない(Untrimmed)動画において、「いつ」「どんな」⾏動があるかの認識︓Action Localization, Action Segmentation n Tracking Ø 対象⼈物を追跡する n その他 Ø 動画を利⽤した深度推定 Ø Motion capture
  4. Action Recognitionとは n 基本的には画像分類の動画版 Ø つまり、他のタスクに共通する基礎的な研究が多い n 動画ならではの課題がある Ø 時間⽅向のモデリングが必要であったり

    Ø 画像認識と⽐べると、効率的なモデルを作る意識が強い © 2020 ALBERT Inc. 6 動画フレームを⼊⼒として、⾏動ラベルを出⼒するタスク Model クラス
  5. Action Localizationとは n ⼀般に動画は切り抜かれない状態のものが多いことを考えると、より実務的なタスク n 動画フレーム全体をニューラルネットに処理させると計算量が⼤きすぎるため、学習済モデルを使⽤した表現を ⼊⼒とする研究が多い © 2020 ALBERT

    Inc. 7 [1] Yuanjun Xiong, Introduction to Human Activity Understanding in Videos, CVPR 2020 Tutorial, https://bryanyzhu.github.io/videomodeling.github.io/slide/talk1_activity_understanding_slide.pdf 動画フレームを⼊⼒とし、action labels + start & end timestampsを出⼒する
  6. 動画認識の応⽤ © 2020 ALBERT Inc. 8 n スポーツやゲームの実況⽣成 n 動画コンテンツの検索エンジン

    n 監視カメラの認識 Ø 犯罪⾃動検知 Ø ⼯場内での危険動作検知 Ø 居眠り運転の検知
  7. 動画をニューラルネットで扱うには n 時間⽅向をモデル化する為、3D畳み込みが使⽤できる n ただし計算コストが⼤きいため、近年は使⽤されていない © 2020 ALBERT Inc. 11

    チャネルの次元は簡単のため無視している フレーム数が次元に加わり、3D畳み込みを使⽤できる 画像 (縦, 横) 動画像 (縦, 横, フレーム数) ✴ 2D Conv ✴ 3D Conv
  8. 動画像の前処理について n 上で⽰しているように、300枚の動画を扱えるか︖ Ø 難しい(メモリ的に⾟いし、冗⻑すぎる) n サンプリングにより解決。ただし、様々なサンプリング⽅法がある Ø ここでは代表的なサンプリング⽅法であるDense SamplingとUniform

    Samplingについて紹介 © 2020 ALBERT Inc. 12 動画を扱うには、時間⽅向のサンプリングが必要 Naïve: 30FPS、10秒の動画=300枚 Sampling: 30FPS、10秒の動画、 1秒につき1枚=10枚 サンプリング
  9. 動画像の前処理︓Dense Sampling n 密にサンプリング=細かい動き情報が⾒れる n ただし動画全体を扱うことはできないため、クリップ(動画の⼀区間)を複数使⽤し、最終的に出⼒の 平均値をラベルスコアとして扱う © 2020 ALBERT

    Inc. 13 [2] Korbar et al, SCSampler: Sampling salient clips from video for efficient action recognition, ICCV 2019 動画の⼀部を密にサンプリング。動画全体で推論するときは複数クリップを作る Clip 1 Clip N
  10. 動画像の前処理︓Uniform Sampling n Dense Samplingは動画の⼀部しか⾒ていないため、推論時に10クリップ分samplingして評価することが多い Ø 10個分のNNの計算を⾏うわけなので計算負荷が⼤きい(精度は⾼いが) n Uniform Samplingはセグメントから1フレームずつサンプリングすることで動画全体を⾒れる

    Ø ただし、サンプリングがスパースなので精度が落ちる(1クリップしか使わないので速度は速い) © 2020 ALBERT Inc. 14 [3] Wang et al, Temporal segment networks: Towards good practices for deep action recognition, ECCV 2016 動画全体を複数のセグメントに分割し、それぞれから1フレームずつサンプリン グする⽅法を提案 Segment 1 Segment 3 Segment 2
  11. Optical Flowの利⽤ © 2020 ALBERT Inc. 15 [4] J. Carreira

    and A. Zisserman. Quo vadis, action recognition? a new model and the kinetics dataset. In Proc. CVPR, 2017 [5] Piergiovanni et al, Representation flow for action recognition, CVPR 2019 Optical Flowを使⽤することで精度向上ができる n Optical Flowとは、連続する画像間の物体の動きをベクトルで表したもの(左図) n 右図のように画像とは別にOptical Flow⽤の3D Convを⽤意するTwo-Streamな⽅法で精度を上げられる [4] Ø 短時間の動き特徴を持っている n ただし、最近はこの⽅法が最適ではないという指摘もある [5]
  12. 動画のデコード n 画像認識と⽐較して数⼗倍の容量を読み込むので、I/Oを効率化する必要がある * Ø ⼯夫すれば数倍は学習を⾼速化できる Ø I/Oだけでなく前処理時点でのテンソル操作の効率化も⼤事 ** n

    動画のデコードライブラリ Ø pyav Ø OpenCV Ø 最近はGPUサポートについたdecordというライブラリが出ていて⾼速 n ⼀⽅、ffmpegなどでフレーム分割した⽅が基本的には速い *** Ø PillowやOpenCVといった、画像認識で使っていたものがそのまま使える Ø ただし、ストレージが⼤量に必要なので注意(数倍に膨らむはず、ものによってはTBは必要) © 2020 ALBERT Inc. 16 • GPUの性能だけでなく、CPUも⼤事です。動画分析を⾏うマシンを選ぶ際は気をつけましょう。(弊社の環境 https://blog.albert2005.co.jp/2020/12/09/dgx-a100/ ) ** 例えばPyTorchでnumpy配列に対してtorch.tensorをするとコピーを作るので⾮常に遅くなります。torch.from_numpy()を使いましょう。 *** ちなみに3分くらいのmp4ファイルを複数読み込むとメモリエラーになります。 動画のデコードは基本的に時間がかかる->学習が遅い要因に
  13. 有名なデータセット © 2020 ALBERT Inc. 19 n UCF101 Ø 13000動画、101個のラベルを分類。

    Ø 動画版CIFAR10/100。 n Kinetics Ø 30万動画、400のラベルを分類(600, 700ラベルのタスクも存在) Ø UCFはサンプルサイズが⼩さいため、⼤きいモデルを学習できないという問題を解決(動 画版ImageNet)
  14. 背景・物体バイアスの少ないタスク © 2020 ALBERT Inc. 20 [6] Kay et al,

    The Kinetics Human Action Video Dataset, 2017 [7] Epstein et al, Oops! Predicting Unintentional Action in Video, CVPR 2020 [8] Girdhar and Ramanan, CATER: A diagnostic dataset for Compositional Actions and TEmporal Reasoning, ICLR 2020 ⼈間には簡単だけど機械にとっては難しいタスクが新たに提案されつつある 1動画に1⾏動ラベルを付与する分類(下図はPlaying violin)[6] しかし、⼀枚⾒れば⼗分であまり動画である必要がない 動画中の⾏動が「意図的」なものかを識別 (下図はこけているので「⾮意図的」)[7] ⾦の球体は最後どこにあるかを識別[8] 背景や物体に対するバイアスを取り除いたタスクに焦点が当てられつつある 従来 (UCF, Kinetics) 近年
  15. 効率的なネットワーク︓P3D, R(2+1)D, S3D n P3D [9], R(2+1)D [10], S3D [11]

    といったモデルが提案されている。 n 計算速度削減のためのベンチマークとしてよく使われる(ちょっと古いから最近は微妙だが) © 2020 ALBERT Inc. 22 [9] Qiu et al, Learning Spatio-Temporal Representation with Pseudo-3D Residual Networks, ICCV 2017 [10] Tran et al, “A closer look at spatiotemporal convolutions for action recognition”, CVPR 2018 [11] Xie et al, Rethinking spatiotemporal feature learning: Speed-accuracy trade-offs in video classification, ECCV 2018 3×3×3 Convは計算量が多いため、空間⽅向と時間⽅向に分けてたたみこむ
  16. 時空間モデリング: Non-local n 動画には時間・空間⽅向のモデリングが必要 n 3D CNNだけだと受容野が狭い or 層を深くしても良いが最適化が難しいという問題をカバーしている ©

    2020 ALBERT Inc. 24 [13] Wang et al, Non-local Neural Networks, CVPR 2018 時空間でSelf-Attentionを⾏い、遠い位置・時間情報を取り⼊れている yi = 1 C(x) X j f(xi, xj)g(xj) zi = Wzyi + xi <latexit sha1_base64="4++kxJBHXH6tcDJNYy5GoUZDkHc=">AAADEnichVHPaxNBFH67altTbVN7EbwMhpaUljBbhaoglOTiMf2RptAty+x0kkw7+4PdSTBZ8g94Fjx4UhAR8R/wJr148NpD/4TSYwtePPiyWbBJUd8w8958731vvplxQyVjTempYd64eWticup2bvrO3ZnZ/Ny9nThoR1zUeKCCaNdlsVDSFzUttRK7YSSY5ypRd48qg3y9I6JYBv627oZi32NNXzYkZxohJ//FdgN1EHc9dKTrSLL4nNiNiPHE6ie2x3SLM0UqxatlL5dI347bnnNIGqMJR66QUeBwqVkcR4ht565iveGxdadHxtQsj3V38gVaoqmR64GVBQXIrBrkP4INBxAAhzZ4IMAHjbECBjGOPbCAQojYPiSIRRjJNC+gDznktrFKYAVD9AjXJu72MtTH/aBnnLI5nqJwRsgksEBP6Cd6Qb/Tz/SM/vprryTtMdDSRe8OuSJ0Zl/d3/r5X5aHXkPrD+ufmjU04EmqVaL2MEUGt+BDfqf35mLr2eZCskjf03PU/46e0mO8gd+55B82xOZbyOEHWOPPfT3YWS1Zj0qrG48L6+XsK6bgATyEIr73GqzDC6hCDbgxbzw1ykbFfG1+Nb+Zx8NS08g48zBi5o/faNTKYw==</latexit>
  17. 3D Convは動き情報を捉えているのか︖ n Temporal Generatorは、最初のフレームから⾃動⽣成した動画を⼊⼒とする実験 n Oracleは精度の⾼くなるフレームを⼊⼒とする実験(現実には精度の⾼いフレームは神のみぞ知るので、ズル) n 最初のフレームから⾃動⽣成した動画でも精度が出るし、Oracle Selectorだと、全フレーム(Original

    Video)を上回る Ø つまり、3D Convは重要そうなフレームを取ってきているだけで「動き」は理解していない説 © 2020 ALBERT Inc. 25 [14] Huang et al, What Makes a Video a Video: Analyzing Temporal Information in Video Understanding Models and Datasets, CVPR 2018 3D Convは重要なフレームのselectorとして働いているだけという⾒⽅がある
  18. Optical Flowの代⽤︓Compressed Video Action Recognition n Optical Flowを⽤いると、確かに精度は上がる Ø しかし、そもそもOptical

    Flowの作成に時間がかかるため、代⽤したいモチベーションがある n RGBフレームを全て使うのは⾮効率 n 参照画像であるIフレームと、前のフレームを参照として符号化したPフレームを⽤いて計算を⾏う n Optical Flowと同様、Pフレームにも動きの情報があるとしている © 2020 ALBERT Inc. 26 [15] Wu et al, Compressed Video Action Recognition, CVPR 2018 ビデオの圧縮情報を⽤いて計算量を緩和
  19. まとめ © 2020 ALBERT Inc. 28 n 動画特有の前処理には気をつける必要はあるが、基本的には静⽌画像の解析と同じ n 背景/物体バイアスに依存しないようなデータセット/タスクが提案されつつある

    n 多様な課題意識があり、年々新しいモデルが提案されている Ø 特に計算量の削減、「動き」の認識が重要視されている印象
  20. 参考⽂献 © 2020 ALBERT Inc. 29 [1] Yuanjun Xiong, Introduction

    to Human Activity Understanding in Videos, CVPR 2020 Tutorial, https://bryanyzhu.github.io/videomodeling.github.io/slide/talk1_activity_understanding_slide.pdf [2] Korbar et al, SCSampler: Sampling salient clips from video for efficient action recognition, ICCV 2019 [3] Wang et al, Temporal segment networks: Towards good practices for deep action recognition, ECCV 2016 [4] J. Carreira and A. Zisserman. Quo vadis, action recognition? a new model and the kinetics dataset. In Proc. CVPR, 2017 [5] Piergiovanni et al, Representation flow for action recognition, CVPR 2019 [6] Kay et al, The Kinetics Human Action Video Dataset, 2017 [7] Epstein et al, Oops! Predicting Unintentional Action in Video, CVPR 2020 [8] Girdhar and Ramanan, CATER: A diagnostic dataset for Compositional Actions and TEmporal Reasoning, ICLR 2020 [9] Qiu et al, Learning Spatio-Temporal Representation with Pseudo-3D Residual Networks, ICCV 2017 [10] Tran et al, “A closer look at spatiotemporal convolutions for action recognition”, CVPR 2018 [11] Xie et al, Rethinking spatiotemporal feature learning: Speed-accuracy trade-offs in video classification, ECCV 2018 [12] Lin et al, TSM: Temporal shift module for efficient video understanding, ICCV 2019 [13] Wang et al, Non-local Neural Networks, CVPR 2018 [14] Huang et al, What Makes a Video a Video: Analyzing Temporal Information in Video Understanding Models and Datasets, CVPR 2018 [15] Wu et al, Compressed Video Action Recognition, CVPR 2018