修行の場

知人が言っていました。これは修行だと。

好みのシーン構成の動画を探すツールの開発計画まで

目的

好みのシーン構成の動画を探すプログラムを作ろうと思っているので、そのために必要な情報をまとめます。ここでいうシーンは場所というよりも主に動画内の複数の人のインタラクションの種類により分類されるものをいいます。

 

動画中のそれぞれのシーンの長さを特徴量として、

好み/好みでないバイナリ分類をする分類器をSVMで組もうと思います。

 

データセット

アクション分類の中では、DeepMindが提供しているKinetics-600が最も規模が大きそうです。600アクション50万ビデオみたいです。アクション分類の中でもビデオクリップ数、クラス数の数で他に多そうなのはUCF101らしいです。このデータセットはビデオクリップとそのクリップ内で行われているActionのペアの集合です。それぞれのアクションのクリップの長さは下の図のようになっているようです。また、データセットの大きさのひょうも載せておきます。

UCF101で学習されたモデルを特徴抽出機として使ったり、Kinetics-600やUCF101で作られたものをFineTuneするのが良いでしょう。

f:id:sam_yusuke:20181217100323p:plain

f:id:sam_yusuke:20181217100338p:plain

2018年末時点で使えるもの

ベースとなるコード候補として今回使うのは3D Resnetを使った手法にします。

https://github.com/vra/action-recognition-using-3d-resnet

この手法は、3D Resnetという手法を使っていて、この手法を使って、

16フレームごとにビデオを分類する機能があり、

その機能の特徴抽出部分を使って、SVMで独自の分類ロジックを作っているようです。

データ量が少なくても良さそうですし、ソースコードも拝借しやすそうなので、

これベースで開発してみることにします。3D Resnetによる動画分類はKineticsデータセットで学習されているようです。

 

他にも下記のような手法があります。

https://github.com/jeffreyhuang1/two-stream-action-recognition

サーベイ

https://github.com/jinwchoi/awesome-action-recognition

OpenPoseの出力での実験

https://github.com/stuarteiffert/RNN-for-Human-Activity-Recognition-using-2D-Pose-Input

EndToEndでの実験

https://github.com/guillaume-chevalier/LSTM-Human-Activity-Recognition

などもあり、一通り眼を通しておくと参考になるでしょう。

 

ビデオアノテーションツール

いいものが見当たらないです。

もう少し調査するか、見つからなければ諦めて自分で作るか

https://github.com/topics/video-annotation?l=python

https://github.com/dsgou/annotator