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 kansai-2013 lt-slide

773 views

Published on

PHPカンファレンス関西2013 LTスライド
php-otamaの紹介

  • Be the first to comment

  • Be the first to like this

Php kansai-2013 lt-slide

  1. 1. OTAMAあるPHP拡張のお話PHPカンファレンス関西2013 / HIDEOHATTORI
  2. 2. 自己紹介, ,PHPがっつり使ったのはここ1年程度CとかPythonとかZshとかが好きアプリケーション開発とか運営とかしていますHideo Hattori@hhatto Github Bitbucket
  3. 3. 今日話すことCBIRって?php-otamaの紹介
  4. 4. OTAMAとはいわゆるひとつのCBIR(Content-basedimage retrieval)画像同士の類似度を出力できる画像をクエリに画像が検索できるhttps://github.com/nagadomi/otama
  5. 5. OTAMAPYとはotamaのPythonインターフェースPythonのC拡張でotamaライブラリをたたけるようにしたものhttps://github.com/hhatto/otamapy
  6. 6. 得意な亊CとかPython CとかPythonCとかPython CとかPythonCとかPython CとかPythonCとかPython CとかPython
  7. 7. ある日言われました「もう少しPHPにも興味持ってくださいよ」と。
  8. 8. 興味ないわけじゃないよ!!得意な亊(C/Python)×PHP=PHP拡張モジュールを書こう!!
  9. 9. PHP-OTAMAとはotamaのPHPインターフェースいわゆるPHP拡張モジュール
  10. 10. 使い方(類似度を求める)lena.jpg lena-affine.jpg
  11. 11. 使い方(類似度を求める)設定ファイル(otama.conf){driver: {name: vlad_nodb}}
  12. 12. 使い方(類似度を求める)Python実行結果from otama import Otamadb = Otama()db.open(./otama.conf)filename1 = images/lena.jpgfilename2 = images/lena-affine.jpgprint(db.similarity({file: filename1}, {file: filename2}))0.362881481647
  13. 13. 使い方(類似度を求める)PHP実行結果$db = new Otama();$db->open("./otama.conf");$filename1 = "images/lena.jpg";$filename2 = "images/lena-affine.jpg";var_dump($db->similarity($filename1, $filename2));double(0.36288148164749)
  14. 14. 使い方(類似画像を検索)設定ファイル(otama.conf){namespace: testnamespace,driver: {name: color,data_dir: ./data,color_weight: 0.2},database: {driver: sqlite3,name: ./data/otama.sqlite3}}
  15. 15. 使い方(類似画像を検索)Pythonimport osfrom glob import globfrom otama import Otamadb = Otama.open(test.conf)db.create_table()files = glob(images/*.jpg) + glob(images/*.png)kvs = {}for filename in files:kvs[db.insert(filename)] = filenamedb.pull()for result in db.search(5, lena.jpg):print("file=%s, sim=%f" % (kvs[result[id]], result[similarity]))
  16. 16. 使い方(類似画像を検索)実行結果file=image/lena.jpg, sim=1.000000file=image/lena-768x768.jpg, sim=0.968963file=image/lena-affine.jpg, sim=0.770081file=image/lena-rotate.jpg, sim=0.747762file=image/baboon.png, sim=0.303697
  17. 17. 使い方(類似画像を検索)PHPまだ使えません!!
  18. 18. 絶賛開発中Pull-Requestお待ちしてます!!php-otama
  19. 19. 参考資料PHP Extension を作ろう第1回 - まずは Hello World30分でわかる PHP Extensionの作り方を学べる記事をかいたよー \(^o^)/mongo-php-driverphp-memcached
  20. 20. ご清聴ありがとうございました!!m(_ _)m

×