3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

撮影済みの動画で顔認識【FaceTracker】

Posted at

openFrameworksのアドオンであるofxFaceTrackerにあるサンプルコードを使って、撮影済みの動画ファイル(.mov)を読み込んで顔を追跡します。

サンプルコードは
ofxFaceTracker/example-non-realtime
にあるものを使用します。

そのまま使えるかなと思って
プロジェクトのbin/dataに読み込みたいファイルvideo.movを置いて実行してみたのですが
途中で追跡できなくなるし追跡できないと動画がフリーズするしで上手くいきませんでした。

サンプルコードを少し書き換えたら上手くいったのでシェアします。

書き換えるのはofApp.cppです。

####① ofApp::setup( )
video.play( ) を追加

ofApp.cpp
void ofApp::setup() {
    video.load("video.mov");
    video.play();
	tracker.setup();
    tracker.setRescale(.25);
    tracker.setIterations(100);
    tracker.setClamp(10);
    tracker.setTolerance(.5);
    tracker.setAttempts(4);
}

↑もしかしたら追加しなくても動くかも?

####② ofApp::update( )

video.nextFrame( ) をコメントアウト

ofApp.cpp
void ofApp::update() {
	video.update();
	if(video.isFrameNew()) {
		tracker.update(toCv(video));
        trackedFrames.push_back(tracker.getImageMesh());
        vector<float> curGesture;
        for(int i = 0; i < gestureCount; i++) {
            curGesture.push_back(tracker.getGesture(gestureIds[i]));
        }
        trackedGestures.push_back(curGesture);
        //video.nextFrame();       
    }    
}

これで検出できなかったときに動画がフリーズすることはないと思います(たぶん)。

FaceTrackerの導入やサンプルコードを使ったプロジェクトの作り方とかはこちらの記事(FaceTrackerを試してみた)を参考にしてください。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?