Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHP Kansai 2013 LT
Search
Hideo Hattori
June 01, 2013
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHP Kansai 2013 LT
php-otama
Hideo Hattori
June 01, 2013
More Decks by Hideo Hattori
See All by Hideo Hattori
gocloc
hhatto
0
580
RustとPython
hhatto
4
2.7k
PyCon APAC 2013 LT
hhatto
0
88
Other Decks in Programming
See All in Programming
FastAPI の並行処理モデルを完全に理解する
hoto17296
8
2.9k
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
250
Dockerfile CMD for Node.js
grazie1999
0
120
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
400
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
220
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
110
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
1
1.9k
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
370
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
1
370
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
200
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
2
1k
Featured
See All Featured
How to make the Groovebox
asonas
2
2.3k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
RailsConf 2023
tenderlove
30
1.5k
KATA
mclloyd
PRO
35
15k
Odyssey Design
rkendrick25
PRO
2
770
Into the Great Unknown - MozCon
thekraken
41
2.7k
Typedesign – Prime Four
hannesfritz
42
3.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Design in an AI World
tapps
1
290
The SEO identity crisis: Don't let AI make you average
varn
0
540
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Transcript
OTAMA あるPHP拡張のお話 PHPカンファレンス関西2013 / HIDEO HATTORI
自己紹介 , , PHPがっつり使ったのはここ1年程度 CとかPythonとかZshとかが好き アプリケーション開発とか運営とかし ています Hideo Hattori @hhatto
Github Bitbucket
今日話すこと CBIRって? php-otamaの紹介
OTAMAとは いわゆるひとつのCBIR(Content-based image retrieval) 画像同士の類似度を出力できる 画像をクエリに画像が検索できる https://github.com/nagadomi/otama
OTAMAPYとは otamaのPythonインターフェース PythonのC拡張でotamaライブラリをた たけるようにしたもの https://github.com/hhatto/otamapy
得意な亊 CとかPython CとかPython CとかPython CとかPython CとかPython CとかPython CとかPython CとかPython
ある日言われました 「もう少しPHPにも興味持ってください よ」と。
興味ないわけじゃないよ!! 得意な亊(C/Python) × PHP = PHP拡張モジュールを書こう!!
PHP-OTAMAとは otamaのPHPインターフェース いわゆるPHP拡張モジュール
使い方(類似度を求める) lena.jpg lena-affine.jpg
使い方(類似度を求める) 設定ファイル(otama.conf) {'driver': {'name': 'vlad_nodb'}}
使い方(類似度を求める) Python 実行結果 from otama import Otama db = Otama()
db.open('./otama.conf') filename1 = 'images/lena.jpg' filename2 = 'images/lena-affine.jpg' print(db.similarity({'file': filename1}, {'file': filename2})) 0.362881481647
使い方(類似度を求める) 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)
使い方(類似画像を検索) 設定ファイル(otama.conf) { 'namespace': 'testnamespace', 'driver': {'name': 'color', 'data_dir': './data',
'color_weight': 0.2}, 'database': {'driver': 'sqlite3', 'name': './data/otama.sqlite3'} }
使い方(類似画像を検索) Python import os from glob import glob from otama
import Otama db = Otama.open('test.conf') db.create_table() files = glob('images/*.jpg') + glob('images/*.png') kvs = {} for filename in files: kvs[db.insert(filename)] = filename db.pull() for result in db.search(5, 'lena.jpg'): print("file=%s, sim=%f" % (kvs[result['id']], result['similarity']))
使い方(類似画像を検索) 実行結果 file=image/lena.jpg, sim=1.000000 file=image/lena-768x768.jpg, sim=0.968963 file=image/lena-affine.jpg, sim=0.770081 file=image/lena-rotate.jpg, sim=0.747762
file=image/baboon.png, sim=0.303697
使い方(類似画像を検索) PHP まだ使えません!!
絶賛開発中 Pull-Requestお待ちしてます!! php-otama
参考資料 PHP Extension を作ろう第1回 - まず は Hello World 30分でわかる
PHP Extensionの作り方 を学べる記事をかいたよー \(^o^)/ mongo-php-driver php-memcached
ご清聴ありがとうございまし た!! m(_ _)m