SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
PHPでも顔認識してみようぜ!!




    株式会社ソフトレット
     山崎誠 (@letkun)
                     1
• 株式会社ソフトレットの紹介



   WEBアプリケーション(主にPHP)の開発

   スマホアプリの開発 (Android、iPhone、iPad)




          softolet.com



          (株)ソフトレット 山崎誠 @letkun      2
今日はPHPから画像の顔認識を
試してやってみたいと思います!




   (株)ソフトレット 山崎誠 @letkun   3
まず「OpenCV」とは




  米 Intel 社で開発された画像処理・画像認識用の
            C言語ライブラリです。




         (株)ソフトレット 山崎誠 @letkun   4
まず準備するもの




(株)ソフトレット 山崎誠 @letkun   5
PHPを動かすサーバー




 (株)ソフトレット 山崎誠 @letkun   6
• 今回サーバーはAmazonWebService の
  EC2-microインスタンスを利用しました。

• 1時間あたり 0.027$
• 1か月間起動していても、たったの1,566円          (78円換算)




今回のような「お試し」環境を作成する場合等に便利です。



          (株)ソフトレット 山崎誠 @letkun             7
それ以外に、今回準備したもの

• Apache+ PHP 5.3
• OpenCVをビルドする為のライブラリ
    zlib、libjpeg、libpng、jasper、及び
    それぞれのdevel

• OpenCV 本体 (今回は 1.0,0)

• Facedetect (PHP用のExtension)




             (株)ソフトレット 山崎誠 @letkun   8
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                                     9
ちなみに結構ネット上に
 やり方転がってます。




 (株)ソフトレット 山崎誠 @letkun   10
さっそく使ってみましょう




  (株)ソフトレット 山崎誠 @letkun   11
以下のような画面を2つ作成しました。




  画像アップロード用                      顔認識して、結果を
                                 顔認識して、結果を
  画像アップロード用                       出力するPHP
     HTML
     HTML                         出力するPHP
                画像をPOSTする




         (株)ソフトレット 山崎誠 @letkun               12
phpでのポイントは以下のface_detect()を
  CALLする部分のみです。 (簡単)

 // 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’] を返します。




                     (株)ソフトレット 山崎誠 @letkun                             13
それでは、実際に画像をPOSTしてみます




      (株)ソフトレット 山崎誠 @letkun   14
①手島優さん。

いつもお世話になってます。m(__)m




   (株)ソフトレット 山崎誠 @letkun   15
②2名の場合、麻里子様(AKB)

 やっぱり、かわいい・・・




  (株)ソフトレット 山崎誠 @letkun   16
③2名でいけるなら・・・AKB大勢(12名)

     もう!最高ですね☆




     (株)ソフトレット 山崎誠 @letkun   17
④アニメはどうなのか?

 世紀末救世主伝説




(株)ソフトレット 山崎誠 @letkun   18
感想と考察




(株)ソフトレット 山崎誠 @letkun   19
• OpenCVは1.0.0 を使用したが、本来2.0以降を使用し
  たかった。
  ビルド上の問題で断念。

• 検出器(XML)の調整も必要だが、検出が今一甘い。

• サーバー側で検出するので、スマートフォンや
  携帯からでも組み合わせのシステムを作れるかも?




          (株)ソフトレット 山崎誠 @letkun   20
ご清聴ありがとうございました。




   (株)ソフトレット 山崎誠 @letkun   21

Más contenido relacionado

Ähnlich wie 2011-11-24 PHP勉強会 LT用資料

ウェブから情報をあつめる
ウェブから情報をあつめるウェブから情報をあつめる
ウェブから情報をあつめるShuhei Iitsuka
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストYoichiro Sakurai
 
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Tomohito Adachi
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-Masashi Shinbara
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -Tomoya Kabe
 
System4 comment
System4 commentSystem4 comment
System4 commentJun Chiba
 
20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdf
20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdf20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdf
20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdfkoukimiurah
 
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)Arata Fujimura
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarSotaro Karasawa
 
System4 comment h
System4 comment hSystem4 comment h
System4 comment hJun Chiba
 
Windows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみたWindows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみたy-uti
 
HerokuからSalesforceを使ってみた
HerokuからSalesforceを使ってみたHerokuからSalesforceを使ってみた
HerokuからSalesforceを使ってみたmasaoki_ohashi
 
facebookアプリ開発あれこれ
facebookアプリ開発あれこれfacebookアプリ開発あれこれ
facebookアプリ開発あれこれpinmarch_t Tada
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCIToshiyuki Hirata
 

Ähnlich wie 2011-11-24 PHP勉強会 LT用資料 (20)

ウェブから情報をあつめる
ウェブから情報をあつめるウェブから情報をあつめる
ウェブから情報をあつめる
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
 
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
 
RPAって何、どんなことできるの
RPAって何、どんなことできるのRPAって何、どんなことできるの
RPAって何、どんなことできるの
 
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyieldPHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
 
System1
System1System1
System1
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -
 
System4 comment
System4 commentSystem4 comment
System4 comment
 
20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdf
20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdf20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdf
20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る.pdf
 
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
 
Silex入門
Silex入門Silex入門
Silex入門
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
 
System4 comment h
System4 comment hSystem4 comment h
System4 comment h
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
Windows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみたWindows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみた
 
HerokuからSalesforceを使ってみた
HerokuからSalesforceを使ってみたHerokuからSalesforceを使ってみた
HerokuからSalesforceを使ってみた
 
facebookアプリ開発あれこれ
facebookアプリ開発あれこれfacebookアプリ開発あれこれ
facebookアプリ開発あれこれ
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
 

2011-11-24 PHP勉強会 LT用資料