LoginSignup
1
0

More than 5 years have passed since last update.

ofxFaceTraker2をUbuntu1404で使う。

Last updated at Posted at 2017-08-02

目的

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 ..

Install Dlib on Ubuntu

サンプル"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;
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0