SlideShare una empresa de Scribd logo
1 de 45
PHP で OpenCV した
2013/6/24
@kogarasi_cross
PHP で OpenCV したかった
2013/6/24
@kogarasi_cross
自己紹介
• TwitterID : kogarasi_cross
• 職種 : ゲームプログラマー
• クライアントからサーバー・インフラまでを
やったりやらなかったり
目標
サーバー上で画像識別
画像認識の題材は
機動戦士ガンダム 戦場の絆
でっかいアレ
• Youtube にリプレイ動画がアップされる
• 動画をサーバー上へ保存
• 動画から必要なサムネイルを抽出
• OpenCV でごにょごにょする
• Youtube にリプレイ動画がアップされる
• 動画をサーバー上へ保存
• 動画から必要なサムネイルを抽出
• OpenCV でごにょごにょする
• Youtube にリプレイ動画がアップされる
• 動画をサーバー上へ保存
• 動画から必要なサムネイルを抽出
• OpenCV でごにょごにょする
• Youtube にリプレイ動画がアップされる
• 動画をサーバー上へ保存
• 動画から必要なサムネイルを抽出
• OpenCV でごにょごにょする
• Youtube にリプレイ動画がアップされる
• 動画をサーバー上へ保存
• 動画から必要なサムネイルを抽出
• OpenCV でごにょごにょする
リプレイ動画
Youtube から動画を取得
• ぐぐると色々方法が出てくる
• ↑ 結構適当なのが多い
• 時々仕様が変わっててんやわんやした
• ‘http://www.youtube.com/get_video_info?
video_id=xxxx’
• xxxx に動画の ID を投げる
• 一般的な key=value&..... の形式で帰ってくる
• その中の url_encoded_fmt_stream_map パラ
メータを利用
• 動画のフォーマットごと( PC 向け / モバイ
ル向け・ mp4/flv など)にカンマ区切り・・
・・
• フォーマットごとの情報はまた
key=value&...
• そのなかの url パラメータが動画の URL
• ただし sig パラメータを一緒に渡す必要があ
る( signature として)
• 後はご自由にローカルへ
• サムネイル抽出には定番(?)の ffmpeg で
• PHP から利用するための ffmpeg-php っての
がある
• だけど、コマンドライン直叩きで(!)
抽出されたサムネイル
ここからが重要
どうやってサムネイルから
必要な情報を取得するか
文字認識 API
• @yando に教えてもらいました
• NTT Docomo が提供している API
• 画像データを投げつけることで文字情報を取
得できる
• 日本語を認識可能
文字認識 API
結果
• 辞書ベースなので造語 (MS 名 ) の抽出は難
しい
• 前は正常に認識されていた語句が API の
VerUP 時に判断されなくなった
• ユーザー辞書として正規表現を受け付けるよ
うになった(けど一部の文字を投げるとエラ
ー・・・
これは困った ....
と言ったところで
やっと本題
ここから
OpenCV していきます!
していきます!
今回は
テンプレートマッチング
テンプレートマッチング
PHP からどうやって
OpenCV を使うか・・・
頼りはいつもの github
mgdm/OpenCV-for-PHP
OpenCV-for-PHP
• いわゆるバインディングのライブラリ
• 動作環境は PHP5.3 and OpenCV 2.x
• PHP モジュール
これでいける!
と思ったのもつかの間
あれ?
minMaxLoc が無い!
ど、、どうしよう
...(´Д ` )
C/C++/Java/Python
Python....?
結局 Python で書きました ...
出来上がったのがこちら
http://kogarasi.com/kizuna_fi
nder
PHP で OpenCV したかった
( 終 )
2013/6/24
@kogarasi_cross

Más contenido relacionado

Destacado

AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介Akio Katayama
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた徹 上野山
 
局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出MPRG_Chubu_University
 
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪崇之 清水
 
OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門uranishi
 

Destacado (7)

AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介
 
OpenCVの基礎
OpenCVの基礎OpenCVの基礎
OpenCVの基礎
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出
 
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
 
OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門OpenCVを用いた画像処理入門
OpenCVを用いた画像処理入門
 
OpenCV 3.0 on iOS
OpenCV 3.0 on iOSOpenCV 3.0 on iOS
OpenCV 3.0 on iOS
 

Similar a PHPでOpenCVしてみた

Windows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイトWindows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイトnormalian
 
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話webアプリケーションフレームワークの話
webアプリケーションフレームワークの話Yoshihiro Ura
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemoytanno
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編kimulla
 
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系祐司 伊藤
 

Similar a PHPでOpenCVしてみた (8)

Windows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイトWindows Azure Media Serviceで作成する割と普通な動画サイト
Windows Azure Media Serviceで作成する割と普通な動画サイト
 
Word bench7月号
Word bench7月号Word bench7月号
Word bench7月号
 
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
 
animation1.0
animation1.0animation1.0
animation1.0
 
YouTube APIの紹介
YouTube APIの紹介YouTube APIの紹介
YouTube APIの紹介
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
 
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系
 

PHPでOpenCVしてみた