2011-11-24 php勉強会 lt用資料
TRANSCRIPT
1
PHPでも顔認識してみようぜ!!
株式会社ソフトレット
山崎誠 (@letkun)
(株)ソフトレット 山崎誠 @letkun 2
•株式会社ソフトレットの紹介
�WEBアプリケーション(主にPHP)の開発
�スマホアプリの開発 (Android、iPhone、iPad)
softolet.comsoftolet.comsoftolet.comsoftolet.com
(株)ソフトレット 山崎誠 @letkun 3
今日はPHPから画像の顔認識を
試してやってみたいと思います!
(株)ソフトレット 山崎誠 @letkun 4
まず「OpenCV」とは
米 Intel 社で開発された画像処理・画像認識用のC言語ライブラリです。
(株)ソフトレット 山崎誠 @letkun 5
まず準備するもの
(株)ソフトレット 山崎誠 @letkun 6
PHPを動かすサーバー
(株)ソフトレット 山崎誠 @letkun 7
•今回サーバーはAmazonWebService のEC2-microインスタンスを利用しました。
•1時間あたり 0.027$
•1か月間起動していても、たったの1,566円 (78円換算)
今回のような「お試し」環境を作成する場合等に便利です。
(株)ソフトレット 山崎誠 @letkun 8
それ以外に、今回準備したもの
•Apache+ PHP 5.3
•OpenCVをビルドする為のライブラリzlib、libjpeg、libpng、jasper、及びそれぞれのdevel
•OpenCV 本体 (今回は 1.0,0)
•Facedetect (PHP用のExtension)
(株)ソフトレット 山崎誠 @letkun 9
php.ini に以下を追加して、Apacheを再起動すれば使えるようになります。
; Directory in which the loadable extensions (modules) reside.
; http://www.php.net/manual/en/ini.core.php#ini.extension-dir; extension_dir = "./"
extension_dir = "/usr/lib/php/modules/"
extension = face_detect.so
; Whether or not to enable the dl() function. The dl() function does NOT work; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.; http://www.php.net/manual/en/info.configuration.php#ini.enable-dl
enable_dl = Off
(株)ソフトレット 山崎誠 @letkun 10
ちなみに結構ネット上に
やり方転がってます。
(株)ソフトレット 山崎誠 @letkun 11
さっそく使ってみましょう
(株)ソフトレット 山崎誠 @letkun 12
以下のような画面を2つ作成しました。
画像アップロード用HTML
画像アップロード用HTML
顔認識して、結果を出力するPHP
顔認識して、結果を出力するPHP
画像をPOSTする
(株)ソフトレット 山崎誠 @letkun 13
// POSTされた画像の取出しif (is_uploaded_file($_FILES["image1"]["tmp_name"])) {
$upfile = "./upfile/".$_FILES["image1"]["name"];move_uploaded_file($_FILES['image1']['tmp_name'], $upfile);
} else
exit();
$file_path = $upfile; // upload画像を入力する$cascade = ‘./haarcascade_frontalface_alt.xml’; // 正面顔検出器
$faces = face_detect( $file_path, $cascade );
// 以降で $facesの内容を処理する// $faces は、連像配列で、検出した顔の数分 $f[‘x’]、 $f[‘y’]、
// $f[‘width’]、 $f[‘height’] を返します。
phpでのポイントは以下のface_detect()をCALLする部分のみです。 (簡単)
(株)ソフトレット 山崎誠 @letkun 14
それでは、実際に画像をPOSTしてみます
(株)ソフトレット 山崎誠 @letkun 15
①手島優さん。
いつもお世話になってます。m(__)m
(株)ソフトレット 山崎誠 @letkun 16
②2名の場合、麻里子様(AKB)
やっぱり、かわいい・・・
(株)ソフトレット 山崎誠 @letkun 17
③2名でいけるなら・・・AKB大勢(12名)
もう!最高ですね☆
(株)ソフトレット 山崎誠 @letkun 18
④アニメはどうなのか?
世紀末救世主伝説
(株)ソフトレット 山崎誠 @letkun 19
感想と考察
(株)ソフトレット 山崎誠 @letkun 20
•OpenCVは1.0.0 を使用したが、本来2.0以降を使用したかった。ビルド上の問題で断念。
•検出器(XML)の調整も必要だが、検出が今一甘い。
•サーバー側で検出するので、スマートフォンや携帯からでも組み合わせのシステムを作れるかも?
(株)ソフトレット 山崎誠 @letkun 21
ご清聴ありがとうございました。