フェイスキャッチテクノロジーの秘密 | HardReggaeCafe@Ameblo.jp

フェイスキャッチテクノロジーの秘密

最近エビちゃんのデジカメCMでもお馴染みの
フェイスキャッチテクノロジーですが、
こんな技術が手近に使えるようになっているのをご存知ですか?

顔認識オープンソースのOpenCVです。インテルが出している
画像関連のライブラリで正式名称は
The Open Computer Vision Library
といいます。
ということでここからダウンロード
http://sourceforge.net/projects/opencvlibrary/

./configure
make
make install

でインストール可能なのですが、自分のCoLinuxに
インストール出来ませんでした。Debianはいくつか
インストールしないといけないものがあるようです。
恐らくRedHat系ならすんなりいけるのではないかと・・・。
で、このライブラリはインストールしただけでは
どうにも使えないのでRuby,PerlなどのAPIを
使うのですが、PHP版も一応あるようです。

http://hirokawa.netflowers.jp/entry/4874/

で、レンタルサーバではこういったものを
インストールするわけに行かないので先日紹介した
ウエディングムービーメーカー(http://www.hardreggaecafe.com/weddingmovie/weddingmovie.html )では

FaceDetector
http://face.orzorz.org/
を利用することにしました。

ここのサイトで触ってもらえばわかりますが
画像をアップロードすると抜き出した画像をいくつか
表示するだけのシンプルなサイトです。
これをPEARのHTTP_Requestを使ってPOSTで画像を
送り込んで帰ってきたHTMLを加工して抽出しました。
以下その部分のソースです。
HTMLから加工するところはXMLパーサを使いました。

// FaceDetectorに画像をPOSTでリクエストする

$req =& new HTTP_Request("http://face.orzorz.org/ ");
$req->setMethod(HTTP_REQUEST_METHOD_POST);

$req->addFile("upload[file]", $orgfile);
if (!PEAR::isError($req->sendRequest())) {
$code = $req->getResponseCode();
if ($code = '302'){
$url = $req->getResponseHeader("location");
$req2 =& new HTTP_Request($url);
if (!PEAR::isError($req2->sendRequest())) {
$response = $req2->getResponseBody();
} else {
$response = "";
}
}
} else {
$response = "";
}

// XMLパースでHTMLを解析して認識画像を取り出す
$parser = xml_parser_create('UTF-8');

xml_parse_into_struct($parser, $response, $values, $index);

foreach ($values as $ar){
if (preg_match('/_[0-9].jpg/', $ar['attributes']['SRC']) > 0){
array_push($thumb, 'http://face.orzorz.org ' . $ar['attributes']['SRC']);
}
}


OpenCV作った人とそれを利用するAPI作った人々。
皆さん本当にすごいです。フェイスキャッチテクノロジーの
奥の深さですね。