【顔領域検出】Openfaceの使い方

今回は顔検出のオープンソースであるOpenfaceをインストールしたので実際に動かしてみます。

参考:https://github.com/TadasBaltrusaitis/OpenFace/wiki

その中で少しつまづいたりしたので、ここに残すことに決めました。

実行した時の手順

さっそく実行。

$ build/bin/FaceLandmarkImg -f ../face_120000.jpg

すると、下記のようなエラーメッセージが、、。

ERROR: Could not load the landmark detector<
            Reading the intensity CEN patch experts from: build/bin/model/patch_experts/cen_patches_0.25_of.dat....Could not find CEN patch experts, for instructions of how to download them, see https://github.com/TadasBaltrusaitis/OpenFace/wiki/Model-download

build/bin/model/patch_expertsのディレクトリの下にモデルがダウンロードされていないと表示されました。

丁寧にURLも示してくれていたので、そのサイトに飛ぶ。

そのURL先で下記のように示されており、dropboxにファイルが置かれていたので、このURLからファイルをダウンロード。

To download the C++ and matlab models go to –
https://www.dropbox.com/sh/o8g1530jle17spa/AADRntSHl_jLInmrmSwsX-Qsa?dl=0

以下、ダウンロード結果。

$ ls
 cen_patches_0.25_general.mat
  cen_patches_0.25_menpo.mat
  cen_patches_0.25_of.dat
  cen_patches_0.25_of.mat
  cen_patches_0.35_general.mat
  cen_patches_0.35_menpo.mat
  cen_patches_0.35_of.dat
 cen_patches_0.35_of.mat
  cen_patches_0.50_general.mat
  cen_patches_0.50_menpo.mat
  cen_patches_0.50_of.dat
  cen_patches_0.50_of.mat
  cen_patches_1.00_general.mat
  cen_patches_1.00_menpo.mat
  cen_patches_1.00_of.dat
  cen_patches_1.00_of.mat
           

しかし、これらのファイルを適切な場所に配置しなければなりません。

上のサイトではdatファイルはOpenFace/lib/local/LandmarkDetector/model/patch_expertsの下に、matファイルはOpenFace/matlab_version/models/cenの下に置くように指示されています。

しかしそれで実行するとなぜか最初と同じようなエラーが出ます。

$ mv *.dat ../OpenFace/lib/local/LandmarkDetector/model/patch_experts
$ mv *.mat ../OpenFace/matlab_version/models/cen

→実行しても先ほどのようなエラーが出る。

Reading the intensity CEN patch experts from: build/bin/model/patch_experts/cen_patches_0.25_of.dat....Could not find CEN patch experts

エラーメッセージをよく見ると、datファイルは

Openface/build/bin/model/patch_expertsの下に置かなければならないようです。

というわけで再配置。

$ mv lib/local/LandmarkDetector/model/patch_experts/*.dat build/bin/model/patch_experts

→実行成功しました。

実行結果は下記のようにOpenFace/processedの下に配置されます。

私の場合は以下のような2つの画像に対して実行しましたが、認識に失敗した場合はcsvファイルは作成されません。認識に成功した場合は計5つのファイルが確認できるはずです。

~/OpenFace/processed$ ls
 face_120000.hog
  face_120000.jpg
  face_120000_aligned
  face_120000_of_details.txt
  sample.hog
  sample.jpg
  sample_aligned
  sample_of_details.txt
  sample.csv
            

実行結果

フリー素材によるOpenfaceの実行結果を下に示します。

フリー素材:https://www.pakutaso.com/

最後に

上の結果のように少々傾いた顔に対しても有効であることが分かりました。

まだ数多くは試してはいませんが、画角をオーバーするほどアップされた顔や、目を閉じた顔には認識されにくい傾向があるように見受けられます。

また、はっきりした正面を向いた顔でも垂直になっていないとうまく反応してくれないようです。

しかし、正面を向いており、まっすぐに映っている顔であれば、画素が荒かったり、遠くに移っている小さな顔に対してもしっかり反応してくれます。

集合写真に対しても複数人の顔を一度に認識してくれました。

他にもいろいろなパターンを考えて試してみようと思います。

皆さんもぜひ参考にしてください。

最後まで、ありがとうございました。

タグクラウド :
openface

関連記事