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
フリルの商品を色で検索できるようにした話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
shoby
March 22, 2016
Technology
4.4k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
フリルの商品を色で検索できるようにした話
Fashion Tech meetup #2 の発表資料です。
http://fashion-tech.connpass.com/event/28335
shoby
March 22, 2016
More Decks by shoby
See All by shoby
フリルのCMを支える分析 (メディアバイイング編)
shoby
0
490
FirebaseとBigQueryによるアプリのKPI分析(CMの効果検証編)
shoby
2
2.7k
ユーザーに受け入れられ、問題を起こしづらい大規模リニューアルの進め方
shoby
60
14k
ReactiveCocoaで作る快適な登録フォーム
shoby
0
370
Search fashion items by colors
shoby
0
220
iOS 7をサポート対象外にして開発を健全化する
shoby
3
4.1k
Apple Watch Tips
shoby
0
4.3k
WWDC 2015で 発表された新機能と サービスへの活かし方
shoby
2
7.5k
アプリにおける人力ぽちぽちテストの効率化
shoby
3
3.5k
Other Decks in Technology
See All in Technology
Lightning近況報告
kozy4324
0
200
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
140
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
250
アンオフィシャルな、オフィシャルからのお願い
wyamazak_devrel
0
140
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
100
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
0
290
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
10
2k
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
0
140
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
16
5.5k
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
270
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
540
Chainlitで作るお手軽チャットUI
ynt0485
0
280
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
From π to Pie charts
rasagy
0
210
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
340
The untapped power of vector embeddings
frankvandijk
2
1.8k
The Language of Interfaces
destraynor
162
27k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
170
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
エンジニアに許された特別な時間の終わり
watany
107
250k
Transcript
ϑϦϧͷΛ ৭ͰݕࡧͰ͖ΔΑ͏ʹͨ͠ גࣜձࣾ'BCMJD Ҫࡔজଠ ⛄
ࣗݾհ
Ҫࡔজଠ w 'BCMJD JOD w ϢʔβʔϑΝʔετνʔϜ w J043VCZPO3BJMTը૾ॲཧ w ৭ݕࡧ"QQMF8BUDIରԠ4XJGUҠߦ
!TIPCZTIPCZ
֓ཁ
֓ཁ w ৭ݕࡧͱʁ w ͳ࣮ͥͨ͠ͷ͔ w ࣮ w ΧϥʔύϨοτͷ࡞ w
ը૾ॲཧʹΑΔ৭ݕग़ w ݁Ռ
৭ݕࡧͱʁ
৭ݕࡧͱʁ w ৭ͰΛߜΓࠐΊΔ w ྫɿϫϯϐʔεʷϗϫΠτ w ྫɿίʔτʷϒϥϯ w ৭ࣗಈͰݕग़ w
ग़ऀใೖྗͷඞཁͳ͠ w ը૾͔Βը૾ॲཧͰݕग़
ͳ࣮ͥͨ͠ͷ͔
ͳ࣮ͥͨ͠ͷ͔ w ৭Λج४ʹΛങ͏ͱ͍͏Ϣʔβʔ͕ଟ͍͘Δ w Ξϯέʔτ w ΠϯλϏϡʔ w ݕࡧΩʔϫʔυ w
ϑϦϧΛϑΝογϣϯʹಛԽ͍ͤͨ͞ w ঁੑ͚ϑϦϚΞϓϦˠϑΝογϣϯϑϦϚΞϓϦ w ϑΝογϣϯʹಛԽͨ͠ݕࡧػೳ
࣮ ΧϥʔύϨοτͷ࡞
3(#Λͦͷ··͏ͱ ৭
ΧϥʔύϨοτΛ࡞Δͱ ৭ ☺
ͳͥ৭ʁ
ͳͥ৭ʁ w ਓؒͷ৭ೝࣝʹؔ͢Δݚڀ<> w جຊͱͳΔ৭͋ΒΏΔݴޠʹଘࡏ͠ɺීวత w ϨουɺΠΤϩʔɺάϦʔϯɺϒϧʔɺΦϨϯδɺύʔ ϓϧɺϐϯΫɺϒϥϯɺάϨʔɺϒϥοΫɺϗϫΠ τ w
ϢʔβʔͷݕࡧΫΤϦ w ৭໊ΛؚΉݕࡧΫΤϦΛଟ͍ॱʹྻڍ w جຊͷ৭ʹ౷߹ʢྫɿΩϟϝϧˠϒϥϯʣ w ౷߹͢Δͱҧײͷ͋Δϕʔδϡͨ͠ <>#FSMJO#BOE,BZ1 l#BTJD$PMPS5FSNT5IFJS6OJWFSTBMJUZBOE&WPMVUJPOz
࣮ ը૾ॲཧʹΑΔ৭ݕग़
ը૾ॲཧʹΑΔ৭ݕग़ w ϗϫΠτόϥϯεͷௐ w എܠͷআ w ࠷ස৭ͷݕग़ w 3(#ͱΧϥʔύϨοτͷϚονϯά
ϗϫΠτόϥϯεͷௐ
ϗϫΠτόϥϯεͷௐ w ܬޫ౮ͰࡱӨ͞Εͨը૾ͷ৭Λิਖ਼ w ܬޫ౮ͷ͕ଟ͘ɺը૾͕͕͔Δ w ϑϦϧͷࣨࡱӨ͕ଟ͍ w 3FUJOFY<> w
ਓؒͷࢹ֮ಛੑΛϞσϧԽͨ͠ख๏ w Ճ͞Εͨը૾৭ຯ͕มԽ͠ͳ͍ <>&-BOEBOE+.D$BOO l-JHIUOFTTBOE3FUJOFYUIFPSZ z
require 'RMagick' image = ImageList.new('image.jpg') red_extrema = image.channel_extrema(Magick::RedChannel) green_extrema =
image.channel_extrema(Magick::GreenChannel) blue_extrema = image.channel_extrema(Magick::BlueChannel) red_max = red_extrema.last.to_f green_max = green_extrema.last.to_f blue_max = blue_extrema.last.to_f white_balanced_image = image white_balanced_image = white_balanced_image.convolve_channel(1, [green_max / red_max], Magick::RedChannel) white_balanced_image = white_balanced_image.convolve_channel(1, [green_max / blue_max], Magick::BlueChannel) 3.BHJDLʹΑΔ3FUJOFY
#FGPSF "GUFS άϦʔϯ ϗϫΠτ
എܠͷআ
എܠͷআ w എܠ͕ͷ৭ͱͯ͠ఆ͞ΕΔͷΛࢭ w എܠ෦ΛϚθϯλʹͨ͠ϚεΫը૾Λ࡞͢Δ w എܠϚεΫͷ࡞ॲཧ w Τοδݕग़ w
࢛۱͔ΒϚθϯλΛྲྀ͠ࠐΉ w Ϛθϯλ෦ΛഎܠϚεΫͱ͢Δ
ݩը૾ Τοδݕग़ Ϛθϯλͷྲྀ͠ࠐΈ എܠϚεΫ
࠷ස৭ͷݕग़
࠷ස৭ͷݕग़ w ը૾ͷதԝ෦͔Β࠷ස৭Λݕग़ w ϑϦϧͰը૾தԝʹ͕͍ࣸͬͯΔ͜ͱ͕ଟ͍ w தԝ෦എܠͷӨڹΛड͚ͮΒ͍ w ࠷ස৭ͷݕग़ॲཧ w
தԝΛΓൈ͘ w ৭ʹݮ৭ w എܠϚεΫΛ߹ w ώετάϥϜΛऔͬͯ࠷ස৭Λग़͢
ݩը૾ தԝΛΓൈ͘ ˍ৭ʹݮ৭ എܠϚεΫΛ߹ ώετάϥϜ ͔Β࠷ස৭ "#
3(#ͱ ΧϥʔύϨοτͷϚονϯά
3(#ͱΧϥʔύϨοτͷϚονϯά w ݕग़ͨ͠ΧϥʔίʔυΛ৭ʹׂΓͯΔ w ʢ ʣˠ w
3(#ͱ৭໊ͷରԠ͚ௐࠪ<>Λར༻ w 3(#ͷ ৭ͷ৭໊͕͔Δ w )4-ʹมޙɺ֤৭໊ͷ)4-ͷൣғΛར༻ͨ͠ w Ϛονϯάॲཧ w 3(#Λ)4-ʹม w )4-͔Β࠷͍ۙΧϥʔύϨοτΛબͿ IUUQCMPHYLDEDPNDPMPSTVSWFZSFTVMUT
ʮ͏·͍ͬͨͧ͘ʂʯ
ࣾͷϢʔβʔʮ͓͔͍͠ʯ
Ұൠతͳ৭ϑΝογϣϯͷ৭
৭ͷೝࣝ ϑΝογϣϯࣝͷ༗ແͰ มԽ͢Δ
Կ৭ʹݟ͑Δʁ άϦʔϯʁ %$#
ςΟϑΝχʔzϒϧʔz
ϑΝογϣϯʹৄ͍͠ਓʹ Կݟͤͯௐ
݁Ռ
৭ͷݕग़ਫ਼
ݕग़ਫ਼ w ϝδϟʔͳΧςΰϦͰΛࢹνΣοΫ w ฏۉͰͱΊ w ग़͕ଟ͍৭·ͣ·ͣ w ϒϥοΫɿ w
Ϩουɿ w ϐϯΫɿ w ϗϫΠτɿ w ग़͕গͳ͍৭ϊΠζͷׂ߹͕ଟ͘ͳΔ
తͷʹ ͨͲΓண͖͘͢ͳ͔ͬͨ
ݕࡧͷ w ৭ͰݕࡧΛͨ͠ϢʔβʔΩʔϫʔυ͚ͩͰ ݕࡧͨ͠Ϣʔβʔʹൺɺݕࡧ݁ՌͰΛ ։ׂ͘߹͕΄Ͳߴ͍ w ˠ w తͷʹͨͲΓண͖͘͢ͳ͍ͬͯΔ
·ͱΊ
·ͱΊ w ৭ͰΛߜΓࠐΊΔ৭ݕࡧΛ࣮ͨ͠ w ϢʔβʔͷߪೖߦಈΛௐࠪ͠ɺ৽͍͠ϑϦϧ ͷϑΝογϣϯಛԽػೳͱ࣮ͯ͠ w ΧϥʔύϨοτ৭ೝͷݚڀΛϕʔεʹϢʔ βʔͷݕࡧΫΤϦΛ౷߹ͯ͠৭ʹͨ͠ w
৭ิਖ਼ɺഎܠը૾ͷআΛߦ͍ɺը૾ͷதԝ ෦͔Β3(#৭Λݕग़͠ɺ৭ʹϚοϐϯά w ৭ݕࡧʹΑΓɺΩʔϫʔυΑΓతͷ ʹͨͲΓண͖͘͢ͳͬͨ
͓ΘΓ ⛄