Your SlideShare is downloading. ×
  • Like
  • Save
Php kansai-2013 lt-slide
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Php kansai-2013 lt-slide

  • 486 views
Published

PHPカンファレンス関西2013 LTスライド …

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
486
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. OTAMAあるPHP拡張のお話PHPカンファレンス関西2013 / HIDEOHATTORI
  • 2. 自己紹介, ,PHPがっつり使ったのはここ1年程度CとかPythonとかZshとかが好きアプリケーション開発とか運営とかしていますHideo Hattori@hhatto Github Bitbucket
  • 3. 今日話すことCBIRって?php-otamaの紹介
  • 4. OTAMAとはいわゆるひとつのCBIR(Content-basedimage retrieval)画像同士の類似度を出力できる画像をクエリに画像が検索できるhttps://github.com/nagadomi/otama
  • 5. OTAMAPYとはotamaのPythonインターフェースPythonのC拡張でotamaライブラリをたたけるようにしたものhttps://github.com/hhatto/otamapy
  • 6. 得意な亊CとかPython CとかPythonCとかPython CとかPythonCとかPython CとかPythonCとかPython CとかPython
  • 7. ある日言われました「もう少しPHPにも興味持ってくださいよ」と。
  • 8. 興味ないわけじゃないよ!!得意な亊(C/Python)×PHP=PHP拡張モジュールを書こう!!
  • 9. PHP-OTAMAとはotamaのPHPインターフェースいわゆるPHP拡張モジュール
  • 10. 使い方(類似度を求める)lena.jpg lena-affine.jpg
  • 11. 使い方(類似度を求める)設定ファイル(otama.conf){driver: {name: vlad_nodb}}
  • 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. 使い方(類似度を求める)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. 使い方(類似画像を検索)設定ファイル(otama.conf){namespace: testnamespace,driver: {name: color,data_dir: ./data,color_weight: 0.2},database: {driver: sqlite3,name: ./data/otama.sqlite3}}
  • 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. 使い方(類似画像を検索)実行結果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. 使い方(類似画像を検索)PHPまだ使えません!!
  • 18. 絶賛開発中Pull-Requestお待ちしてます!!php-otama
  • 19. 参考資料PHP Extension を作ろう第1回 - まずは Hello World30分でわかる PHP Extensionの作り方を学べる記事をかいたよー \(^o^)/mongo-php-driverphp-memcached
  • 20. ご清聴ありがとうございました!!m(_ _)m