目的
DLIB版ofxFaceTraker、ofxFaceTraker2をUbuntu1404で使う方法まとめ。
ofxFaceTrakerをofxFaceTraker2に置き換えることで、トラッキング性能向上が期待できる。
Github ofxFaceTraker2:
https://github.com/HalfdanJ/ofxFaceTracker2
環境
Ubuntu-1404 x64
openFrameworks-0.9.8
OpenCV-3.2
GCC-4.9
openFrameworks、ofxFaceTrakerのインストール
[ofxFaceTrakerをUbuntu1404で使う。]を参照のこと。(http://qiita.com/nnn112358/items/602276937880ce3c1983)
ofxFaceTracker2,他ライブラリをインストールする。
cd of_dev/addons/
git clone https://github.com/HalfdanJ/ofxFaceTracker2.git
git clone https://github.com/dzlonline/ofxBiquadFilter.git
学習器をダウンロードする
学習器(shape_predictor_68_face_landmarks.dat)をダウンロード・解凍する
cd of_dev/addons/
download-model.sh
dlibのインストール
dlibをUbuntuにインストールする。
wget http://dlib.net/files/dlib-19.4.tar.bz2
tar xvf dlib-19.4.tar.bz2
cd dlib-19.4/
mkdir build
cd build
cmake ..
cmake --build . --config Release
sudo make install
sudo ldconfig
cd ..
サンプル"example-simple"をコンパイルする
cd of_dev/addons/ofxFaceTracker2/example-simple/
cp ../../../apps/myApps/emptyExample/Makefile .
cp ../../../apps/myApps/emptyExample/config.make .
cp ../../../apps/myApps/emptyExample/emptyExample.qbs .
mkdir bin/data/ -p
cp ../model/shape_predictor_68_face_landmarks ./bin/data/
config.makeの編集
config.makeにdlibを記載する。
PROJECT_LDFLAGS=-Wl,-rpath=./libs PROJECT_LDFLAGS+= -ldlib
その他のフォルダも同じようにMakefile、config.make、emptyExample.qbs、学習器(shape_predictor_68_face_landmarks)をコピーする。
コンパイル・実行
コンパイル・実行は以下のコマンドで行う。
make
make RunRelease
ofxFaceTraker2に、ofxFaceTrackerのgetImageMesh()関数がない
ofxFaceTracker2のgetImageMesh()関数は、ofxFaceTracker2Instanceクラスの中に実装されている。
ofxFaceTracker2Instance instance = tracker.getInstances()[0]; vector<ofVec2f> instance.getLandmarks().getImagePoints();
ofxFaceTracker2Instance instance = tracker.getInstances()[0]; vector<ofVec2f> instance.getLandmarks().getImageMesh();
How to use getImageMesh() from ofxFaceTracker2Landmarks #9
ofxFaceTraker2に、ofxFaceTrackerのgetFound()関数がない
これは実装されていないので、ローカルで編集する。
of_dev/addons/ofxFaceTracker2/src/ofxFaceTracker2.h
class ofxFaceTracker2 : public ofThread {
public:
bool getFound() const;
of_dev/addons/ofxFaceTracker2/src/ofxFaceTracker2.cpp
bool ofxFaceTracker2::getFound() const {
return !failed;
}