UbuntuでのOpenfaceの実行方法

はじめに

今回はOpenfaceのインストールにおいて私が実際に行った手順を記録しておこうと思います。

かなりのコマンド数がありましたが最終的に問題なくインストールし、使用できるようになったので参考程度にどうぞ。

下のURL先のgithub内のコマンドを順に実行しただけですが、途中でエラーでつまづいたりしたのでそれらの対処法も含めて書き残しておきます。

github.com|OpenFace 2.2.0: a facial behavior analysis toolkit

なお、これから示す内容はUbuntu20.04下の環境での実行になります。

実行方法

以下に示すコマンドは上から順に途切れることなく実行しましたので、途中で回線が切れたりファイルの中身をいじったりしないように注意してください。

私はホームディレクトリ(:~/)を基準にしてインストールしています。

今回は、この基準のディレクトリより上で作業することはないので、各自インストールしたいディレクトリを決め、それを基準にコマンドを実行して下さい。

大まかに下のように分かれます。

それでは手順に移ります。

Dependency installation

ここではOpenfaceを使用するためのcmake, OpenCV 4.0.0, OpenBLAS, dlib, C++17等のコンパイラを用意。

Get newest GCC, done using

$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install g++-8
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
$ sudo apt-get -y update

ログがだらだらと流れますが、ここまでは書いてある通りにコマンドを撃てば順調に進んだ。

Cmake

$ sudo apt-get install cmake

上のコマンドを実行するとYの入力を求められるので標準入力で打ち込んで実行。

このように実行者に許可を求めるためコマンド入力を要求されることがこの先もあるので、迂闊に目を離さないように注意。

$ sudo apt-get --purge remove cmake-qt-gui -y

上のコマンドを実行すると

「パッケージ ‘cmake-qt-gui’ はインストールされていないため削除もされません」

というようなログが表示されて不安になりますが、これでOK。

このようにremoveを使ってもともとあるファイルを削除して新しいファイルのインストールやアップデート時に支障が出ないようにするための作業。

はじめてインストールする場合は実行する必要はないが一応。

$ sudo apt-get --purge remove cmake -y
$ mkdir -p cmake_tmp
$ cd cmake_tmp
:~/cmake_tmp$ wget https://cmake.org/files/v3.10/cmake-3.10.1.tar.gz

ここまで言うとおりにコマンドを実行してきたが、下のコマンドで初めてのエラー吐き出されたので少し焦る。

tk@tk-VirtualBox:~/cmake_tmp$ tar -xzvf cmake-3.10.1.tar.gz -qq
tar: 無効なオプション -- 'q'
より詳しい情報は 'tar --help' または 'tar --usage' で.

どこを調べてもtarコマンドの「-qq」なんてオプションの説明が見あたらないので、指示に背くことになってしまうがとりあえずこのオプションを外し、下のように実行。

:~/cmake_tmp$ tar -xzvf cmake-3.10.1.tar.gz

とりあえず問題なさそうなので、このまま作業を継続。

:~/cmake_tmp$ cd cmake-3.10.1/
:~/cmake_tmp/cmake-3.10.1$ ./bootstrap
:~/cmake_tmp/cmake-3.10.1$ make -j4
:~/cmake_tmp/cmake-3.10.1$ sudo make install
:~/cmake_tmp/cmake-3.10.1$ cd ../..
$ sudo rm -rf cmake_tmp

Get OpenBLAS

$ sudo apt-get install libopenblas-dev

ここでも実行の許可を求められるので指示にしたがって入力。

以下、同様の作業を「Yを入力」と示しておく。

Download and compile OpenCV 4.1.0

$ sudo apt-get install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

Yを入力。

$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-de

Yを入力。

$ wget https://github.com/opencv/opencv/archive/4.1.0.zip
$ sudo unzip 4.1.0.zip
$ cd opencv-4.1.0

下のコマンドを実行したときに問題発生。

:~/opencv-4.1.0$ mkdir build

mkdir: ディレクトリ `build’ を作成できません: 許可がありません

というエラーが出たので、sudoコマンドを付与することによって管理者権限で実行する。このようなエラーがこの先も出現するので、同様にsudoを実行することで対応した。

:~/opencv-4.1.0$ sudo mkdir build

無事に関門を通過。

:~/opencv-4.1.0$ cd build

下のコマンドでまたしてもエラーが発生する。

:~/opencv-4.1.0/build$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_TIFF=ON -D WITH_TBB=ON ..

CMake Error: : System Error: Permission denied

このような実行許可が与えられないことによるエラーには同じくsudoで対応する。

:~/opencv-4.1.0/build$ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_TIFF=ON -D WITH_TBB=ON ..

実行が成功。

:~/opencv-4.1.0/build$ make -j2

Scanning dependencies of target libtiff CMake Error: Cannot open file for write: /home/tk/opencv-4.1.0/build/3rdparty/libtiff/CMakeFiles/libtiff.dir/depend.make.tmp

CMake Error: : System Error: Permission denied

長いエラーが出たが、一番最後にPermission deniedの文字が出たのでsudoを先頭に付ける。

:~/opencv-4.1.0/build$ sudo make -j2

実行が成功。

私は1時間くらい時間がかかったので、終わらなさそうであればしばらく別作業して気長に待つ。

:~/opencv-4.1.0/build$ sudo make install

Download and compile dlib

ここでdlibのインストールを行う。

:~/opencv-4.1.0/build$ wget http://dlib.net/files/dlib-19.13.tar.bz2;
--2020-06-28 23:40:46-- http://dlib.net/files/dlib-19.13.tar.bz2
lib.net (dlib.net) をDNSに問いあわせています... 107.180.26.78, 2001:260:306:c::6bb4:1a4e
dlib.net (dlib.net)|107.180.26.78|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 11032425 (11M) [application/x-tar]
dlib-19.13.tar.bz2: 許可がありません

また許可を求められたのでsudoで実行。

:~/opencv-4.1.0/build$ sudo wget http://dlib.net/files/dlib-19.13.tar.bz2;

成功。

:~/opencv-4.1.0/build$ tar xf dlib-19.13.tar.bz2;
  tar: dlib-19.13/CMakeLists.txt: open 不能:

上のコマンドで「ファイルのオープンが不能」と示された。何が原因か見当もつかなかったが、とりあえずいつも通りsudoで実行してみる。

:~/opencv-4.1.0/build$ sudo tar xf dlib-19.13.tar.bz2;
[sudo] tk のパスワード:

どうやら成功したようです。

とりあえずsudoでこの先も解決できそう。

:~/opencv-4.1.0/build$ cd dlib-19.13;
:~/opencv-4.1.0/build/dlib-19.13$ mkdir build;

ここでも

mkdir: ディレクトリ `build’ を作成できません: 許可がありません

と出たのでsudoで実行。

:~/opencv-4.1.0/build/dlib-19.13$ sudo mkdir build;

難なくクリア。

:~/opencv-4.1.0/build/dlib-19.13$ cd build;
:~/opencv-4.1.0/build/dlib-19.13/build$ cmake ..;

CMake Error: : System Error: Permission denied

これもsudoで実行。

:~/opencv-4.1.0/build/dlib-19.13/build$ sudo cmake ..;
:~/opencv-4.1.0/build/dlib-19.13/build$ cmake --build . --config Release;

ここでも

CMake Error: : System Error: Permission denied

が発生。

すごくPermission deniedで引っかかるけどcmakeコマンドに何か制約がかかっているのか?けどすべてのコマンドでsudo無しでは実行できないというわけでもないし、今回は許可が求められるたびにsudoで実行する方針に。

:~/opencv-4.1.0/build/dlib-19.13/build$ sudo cmake --build . --config Release;
:~/opencv-4.1.0/build/dlib-19.13/build$ sudo make install;
:~/opencv-4.1.0/build/dlib-19.13/build$ sudo ldconfig;

一番の山場を超えた気がします。

ここで次のGet Boostのフェーズを行うため:~/opencv-4.1.0/buildに戻ります。

:~/opencv-4.1.0/build/dlib-19.13/build$ cd../..

Get Boost (optional)

sudo apt-get install libboost-all-dev

Yを選択。

Actual openface installation


ここでようやくOpenfaceをインストールしていきます。

tk@tk-VirtualBox: git clone https://github.com/TadasBaltrusaitis/OpenFace.git

10分くらいかかったのでしばらく待機。

$ cd OpenFace
:~/OpenFace$ mkdir build
:~/OpenFace$ cd build
:~/OpenFace/build$ cmake -D CMAKE_CXX_COMPILER=g++-8 -D CMAKE_C_COMPILER=gcc-8 -D CMAKE_BUILD_TYPE=RELEASE ..
:~/OpenFace/build$ make

これで全ての過程が終了し、いよいよOpenface実行への入口へたどり着けました。

最後に

実際にOpenfaceを実行し、出力結果を残した記事もあるので以下の関連記事も是非覗いてみてください。

タグクラウド :
linux
ubuntu
openface

関連記事