2020年3月3日火曜日

OpenFaceを入れてみた(Windows編)


うちは歴史的にKinect使ってモーションとか顔とかの認識をしてきたので、知識がそこで止まってしまっていたのですが、今さらOpenPoseとかOpenFaceとかCV系(画像認識系)のガチンコの方々が作られたライブラリを試すことになり、、、、いや、すごいですよ!!OpenFace!!!

公式ページはこちらっ!
OpenFaceというキーワードで調べると、
の2つが引っかかります。雰囲気的に後者のほうがCMUのラボのライブラリっぽい感じでで由緒正しいような気がしたのですが、違いました。前者のほうが現在も更新しているライブラリです。作者の方もIEEEで学会発表しているアカデミックな方で、今はMicrosoftのSenior Scientistのようです。

インストール方法
公式サイトに行くと、WIKIにいけって書いてあるのでそこへ移動します。
Windowsの場合、バイナリがあるのでそれをダウンロードして展開しましょう。単なるZIPファイルですので展開したら使えます。

モデルファイルのダウンロード
展開したら使えますと書きましたが、正確に言うと顔認識するためのモデルファイルが必要です。モデルファイルは、展開したファイルの中で
  • download_models.ps1
というPowerShell Scriptファイルを実行することで入手します。コマンドプロンプトではなく、PowerShellのコマンドプロンプトを開いて実行(上記ファイル名を入力するだけ)してください。

アプリ構成
Pythonとかのライブラリを想像していたのですが、そういうものはなく(私の勘違いでなければ)、顔画像解析のアプリケーションを提供していてそれを使ってねという感じですね。アプリは、
  • GUIアプリ系
  • コマンドラインアプリ系
と2系統に分かれている感じで、コマンドライン系のアプリは、他のプログラムから呼び出したりする時に使うのでしょう。

OpenFaceの使い方
OpenFaceOffline.exeというのがGUIアプリの記録ツールのようです。GUI系のアプリを動かすとリアルタイムに認識するんですが、想像以上に軽量ですごいです!Kinectとかで同じことをしようと思ったらマシンパワーがすごく必要で手元にあるノートPC(超ハイスペックです)でも重くてだめだったんですが、、、CV系の研究者の技術の高さには感心します。
扱うデータとしては、
  • 動画ファイル
  • イメージファイル
  • ウェブカメラ
からの入力を受け付けるようです。イメージファイルについては、ディレクトリ指定すると複数枚を一括して処理するようです。解析結果は、Processedディレクトリに保存されています。何が記録されるのかは、GUI画面のメニューで指定することができます。

なお、ソースコードを眺めると、Socket経由で呼び出すPythonのサンプルプログラムみたいなのが書いてました。そういう連携方法もあるんですね。後でチェックです。ただ、個人的には自分のGUIアプリ内でリアルタイムの処理を書きたいので、そうなるとソースコードを解読するしかないか、、、

とにかく、OpenFaceは凄いです。お試しあれ!


0 件のコメント:

コメントを投稿