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
100
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
570
RustとPython
hhatto
4
2.6k
PyCon APAC 2013 LT
hhatto
0
86
Other Decks in Programming
See All in Programming
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
OSもどきOS
arkw
0
590
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
180
さぁV100、メモリをお食べ・・・
nilpe
0
150
Contextとはなにか
chiroruxx
1
370
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
120
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
13
6.2k
ふつうのFeature Flag実践入門
irof
8
4.2k
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
210
AI 輔助遺留系統現代化的經驗分享
jame2408
1
970
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
13k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
230
A Modern Web Designer's Workflow
chriscoyier
698
190k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
450
Abbi's Birthday
coloredviolet
3
8.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
55k
The Pragmatic Product Professional
lauravandoore
37
7.3k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Statistics for Hackers
jakevdp
799
230k
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