1.RepNet:人工知能で動画内の反復行動を数える(2/2)
・RepNetは反復行動動画を合成し、更に軸をずらしてカメラの動きを摸倣した合成データで学習した
・特定の反復行動にとらわれず多くの異なる領域で反復動作を数える事ができるモデルとして機能
・RepNetを使用して、反復行動の速度に変化がないか監視する事も可能。初見の行動にも対応可能
2.RepNetとは?
以下、ai.googleblog.comより「RepNet: Counting Repetitions in Videos」の意訳です。元記事は2020年6月22日、Debidatta Dwibediさんによる投稿です。
アイキャッチ画像のクレジットはPhoto by Ryan Tasto on Unsplash
学習用データ
このモデルをトレーニングする1つの方法は、反復的な行動を捕捉し、それらに反復回数のラベルを付けた大規模な動画のデータセットを構築する事です。
これを実現するための課題は2つあります。まず、膨大な動画を調べて、反復行動が含まれる動画を特定する必要があります。その後、各対象動画には、アクションが繰り返された回数を注釈として付与する必要があります。
注釈作業者は、特定の工程では全ての動画を確認する必要なくスキップできます。(たとえば、動画がジャンピングジャックを含むものと分類する工程)しかし、実行されたジャンピングジャックの回数をカウントするためには、最終的にビデオ全体を確認する必要があります。
私達は反復行動が全く含まれていない可能性のあるビデオを使用して、反復行動のあるビデオを生成する合成データ生成のプロセスを導入することで、この課題を克服しています。これは、ビデオの一部をランダムに選択して任意の回数繰り返し、前後を元のビデオと接続する事で実現されます。
任意の動画から繰り返しのある動画を生成する私達の合成データ生成フローチャート
このプロセスは、自然な反復行動に見えるビデオを生成しますが、ディープラーニングの学習用データとするにはまだ単純すぎます。
ディープラーニングは、動画内の繰り返し動作を認識する事を学習するのではなく、動画内の人工物に着目する事でこれに対処するズルを学ぶ事が出来るためです。
これに対処するために、私達がカメラモーション拡張(camera motion augmentation)と呼ぶ極端なデータの水増しを実行します。
この手法では、スムーズに動き回る現実世界のカメラを模倣して、ビデオの進行に合わせて動画内の水平軸や垂直軸を変更します。
左:ランダムなビデオから生成された合成繰り返しビデオの例
右:カメラの動きを加えて強化されたビデオの例
これはモデルにとっては困難ですが、現実世界の繰り返しビデオへの一般化能力が向上します。(どちらもKineticsデータセットから)
評価
合成した反復動画でモデルをトレーニングすることはできますが、結果として得たモデルは、実際の反復動画に一般化できなければなりません。実際の動画でトレーニング済みモデルのパフォーマンスを評価するために、Kineticsデータセットから約9000本の動画のデータセットを収集しました。
これらの動画は多くの反復行動が含まれ、Youtube動画の多様性から生じる多様な撮影シーンを捕捉できています。
これらのビデオには、ビデオで繰り返されるアクションの定義とその数を注釈として付けています。この分野でのさらなる研究を促進するために、Countixデータセットとして、この注釈をリリースします。
訳注、Countixデータセットは下記のような構成になっています
1)YouTube video ID
2)Kineticsのaction class(battle rope training)
3)Kineticsのclipがスタートする秒(1)
4)Kineticsのclipが終了する秒(11)
5)反復行動がスタートする秒(4.327619)
6)反復行動が終了する秒(10.982858)
7)反復行動の回数(9)
用途
特定の反復行動にとらわれないカウントモデルには、多くの有用な用途があります。RepNetは、多くの異なる専門領域で繰り返し動作を数える事ができる単一モデルとして機能します。
RepNetは、タマネギのスライス(左:Kineticsデータセットのビデオ)、地球の日周期(中央:ひまわり8号のリアルタイム衛星データ)、運動中のチーター(右:imgur.comの動画)など、様々な領域で繰り返される行動を数える事ができます。
RepNetは、学習時にそのようなビデオを見たことがなくても、心エコー図の動画から心拍数を推定するためにも使用できます。
左:予測心拍数45bpm
右:予測心拍数75bpm
本当の心拍数はそれぞれ46-50bpmおよび78-79bpmです。
様々な測定機器で撮影した心拍動画からRepNetが予測した心拍数は、測定機器で実際に測定された心拍数に非常に近いものです。(youtube動画からの引用)
RepNetを使用して、反復行動の速度に変化がないか監視する事もできます。以下では、このような速度の変化が、品質やプロセス管理の場面においてどのように活用できるかを示します。
この動画では、トレーニング中にこのような動画を見た事がないにもかかわらず、RepNetがレーザー顕微鏡で観察された細胞振動の加速を観察出来ている事がわかります。(Natureの記事より引用)
左:「mountain climber」運動をしている人
右:主成分分析を使用したRepNetのembeddingsの一次元投影。エクササイズ中に人が速度を変える瞬間を捉えています。(Kineticsデータセットのビデオより引用)
リリース
コミュニティが反復行動を数える問題に取り組むためのデータセットであるCountix注釈データセットもリリースしています。RepNetを実行するためのColabノートブックもリリースします。これを使用すると、ビデオに対してRepNetを実行したり、ウェブカメラを使用して動画内の周期的な動きを検出したり、ビデオ内の繰り返し動作を自動的に数える事ができます。
謝辞
本研究は、Yusuf Aytar, Jonathan Tompson, Pierre Sermanet, 及びAndrew Zissermanとの共同研究です。TSMの視覚的な説明をデザインしてくれたTom Smallに心から感謝します。著者は、このプロジェクトに協力してくれた Anelia Angelova, Relja Arandjelović, Sourish Chaudhuri, Aishwarya Gomatam, Meghana Thotakuri及びVincent Vanhouckeに感謝します。
3.RepNet:人工知能で動画内の反復行動を数える(2/2)関連リンク
1)ai.googleblog.com
RepNet: Counting Repetitions in Videos
2)openaccess.thecvf.com
Counting Out Time: Class Agnostic Video Repetition Counting in the Wild(PDF)
3)colab.research.google.com
repnet_colab.ipynb
4)storage.googleapis.com
countix.tar.gz
コメント