はじめに
今回は顔検出のオープンソースであるOpenfaceをインストールしたので実際に動かしてみます。
参考:https://github.com/TadasBaltrusaitis/OpenFace/wiki
その中で少しつまづいたりしたので、ここに残すことに決めました。
手順
さっそく実行。
tk@tk-VirtualBox:~/OpenFace$ 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にファイルが置かれていたので、これをダウンロード。
To download the C++ and matlab models go to – https://www.dropbox.com/sh/o8g1530jle17spa/AADRntSHl_jLInmrmSwsX-Qsa?dl=0
以下、ダウンロード結果。
tk@tk-VirtualBox:~/ダウンロード$ 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の下に置くように指示されています。
しかしそれで実行するとなぜか最初と同じようなエラーが出ます。
tk@tk-VirtualBox:~/ダウンロード$ mv *.dat ../OpenFace/lib/local/LandmarkDetector/model/patch_experts
tk@tk-VirtualBox:~/ダウンロード$ 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の下に置かなければならないようです。
というわけで再配置。
tk@tk-VirtualBox:~/OpenFace$ mv lib/local/LandmarkDetector/model/patch_experts/*.dat build/bin/model/patch_experts
→実行成功しました。
実行結果は下記のようにOpenFace/processedの下に配置されます。
私の場合は以下のような2つの画像に対して実行しましたが、認識に失敗した場合はcsvファイルは作成されません。認識に成功した場合は計5つのファイルが確認できるはずです。
tk@tk-VirtualBox:~/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/
考察
上の結果のように少々傾いた顔に対しても有効であることが分かりました。
まだ数多くは試してはいませんが、画角をオーバーするほどアップされた顔や、目を閉じた顔には認識されにくい傾向があるように見受けられます。
また、はっきりした正面を向いた顔でも垂直になっていないとうまく反応してくれないようです。
しかし、正面を向いており、まっすぐに映っている顔であれば、画素が荒かったり、遠くに移っている小さな顔に対してもしっかり反応してくれます。
集合写真に対しても複数人の顔を一度に認識してくれました。
他にもいろいろなパターンを考えて試してみようと思います。
皆さんもぜひ参考にしてください。
最後まで、ありがとうございました。
コメント