Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PHPでOpenCVしてみた

6,450 views

Published on

Published in: Technology
  • Be the first to comment

PHPでOpenCVしてみた

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

×