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
画像内の “写ってはいけないもの” を 弾きたい / I want to play the ...
Search
koki otaka
May 15, 2026
Technology
53
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
画像内の “写ってはいけないもの” を 弾きたい / I want to play the "things that shouldn't be in the picture"
PHPカンファレンス⼩⽥原 2026登壇資料
https://phpcon-odawara.jp/ja/2026
koki otaka
May 15, 2026
More Decks by koki otaka
See All by koki otaka
管理機能の技術選定: 5年後、現場は耐えたか? / Technology selection for management functions
minisera
0
1.2k
CSとエンジニアをつなぐ新戦略: Embedded CRE 導入事例 / Embedded CRE Case Study
minisera
0
170
管理画面とユーザー機能の調和を取り戻す!~クエリパフォーマンス改善の成功物語~ / Restore harmony between administrative and user functions!
minisera
1
1.1k
Other Decks in Technology
See All in Technology
自律型AIエージェントは何を破壊するのか
kojira
0
140
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
23k
Claude Code×Terraform IaC テンプレート駆動開発
itouhi
1
470
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
3
590
チームで進めるAI駆動アジャイル×ウォーターフォール
kumaiu
0
140
地球に⽣きるAI —GeoAIと「中間領域」— / AI Living on Earth — GeoAI and the “Intermediate Layer” —
ykiyota
0
190
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.9k
Rancherの紹介&Update情報(RancherJP Online Meetup #09)
yoshiyuki_kono
0
150
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
190
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
120
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
530
2026 TECHFRESH 畢業分享會 - AI-Native 重塑軟體工程與虛擬講師
line_developers_tw
PRO
0
620
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
340
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
The Cult of Friendly URLs
andyhume
79
6.9k
How to build a perfect <img>
jonoalderson
1
5.6k
GraphQLとの向き合い方2022年版
quramy
50
15k
Utilizing Notion as your number one productivity tool
mfonobong
4
320
Done Done
chrislema
186
16k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
160
How to Ace a Technical Interview
jacobian
281
24k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
Transcript
画像内の “写ってはいけないもの” を 弾きたい PHPカンファレンス⼩⽥原 2026 @minisera
4 SmartBank, Inc. αʔόʔαΠυΤϯδχΞ ΈʹͤΒ / minisera @oh_minisera @minisera ʲࠓͷʳ
ը૾όϦσʔγϣϯͰࢼߦࡨޡͨ͠
導⼊ 画像アップロード、よくありますよね ファイル形式 JPEG, PNG など 対応形式 ファイルサイズ 5MB以下かどうか サイズの上限
縦横サイズ 画像の解像度が 基準を満たすか バリデーションたち:
導⼊ 画像の「中⾝」、⾒てますか? ͋ΔҰ͕݅ى͖Δ·Ͱݟ͓ͯΒͣ…
導⼊ 実際に起きた問題: ユーザーに決済情報を添付いただく際に クレジットカード番号が写った画像がアップロード
導⼊ “写ってはいけないもの” 弾きたい
OCRの試み OCRでクレカ番号を読み取る 画像 OCR テキスト パターン 検出
OCRの試み ͳΜ͔͍͚ͦ͏ʂ
OCRの試み 現実は⽢くなかった 斜め撮り ⽂字化け 影‧ブレ 認識不能 OCR結果: 4S2B 0I2 34S6
?890 正解: 4528 0123 4567 8901 ࢀߟը૾ ΛషΔ
OCRの試み ผͷ࡞ઓΛߟ͑Δ OCRɺୀ "
発想の転換 ⽂字ではなく「モノ」で判断する Before 「番号を読み取る」 After 「カードっぽいのが 写っているか判定」
発想の転換 AWS Rekognition DetectLabels Λ͏ ࢀߟ: https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/labels-detect-labels-i Response: { "Labels":
[ { "Name": “Credit Card”, "Confidence": 95.2364013671875, "Instances": [ { "BoundingBox": { "Width": 0.26779675483703613, "Height": 0.8562285900115967, "Left": 0.3604024350643158, "Top": 0.09245597571134567, }
ൃͷస ศརʂউͬͨʂ
チューニングの旅 検出漏れが多々 # 縦向きカード 89.1% 閾値 90% スルー 影ありカード 87.0%
閾値 90% スルー Response: { "Labels": [ { "Name": “Credit Card”, "Confidence": 95.2364013671875
チューニングの旅 ⼀律の閾値ではなく「複合条件」 ⾼信頼度パターン CreditCard 80%以上 補助条件なし そのまま検出 BBox検出パターン CreditCard 68%以上
カードの⾯積が 画像の⼤部分である スクショパターン CreditCard 56%以上 εΫγϣ૬ͷ ϥϕϧが共存
νϡʔχϯάͷཱྀ ͜ΕͰʂ ΊͰͨ͠ΊͰͨ͠
伏線回収 …まだ漏れるケースがあった カードデザインのないバーチャルカードのスクショ • ただの数字の羅列 • 物体認識では⾒つけられない OCRͷదੑ͋ΔͷͰ…?
OCR、再登場 「補完レイヤー」として復活
最終構成 ମೝࣝ + OCR の⼆層構造 ⼊⼒画像 層1 ମೝࣝ クレジットカードっぽいものか検証 層2
OCR OCR + ΫϨΧ൪߸͔Ͳ͏͔検証 どちらかで検出
νϡʔχϯάͷཱྀ ͜ΕͰ”ຊʹ”ʂ ※本当です
⼀度捨てた技術も 組み合わせれば武器になる
まとめ 3つの学び 問題の捉え⽅を変える 「番号を読む」→「カードが写っているか」。問いを変えるとシンプルな解に辿り着く 銀の弾丸はない ⼀度ボツにした技術も補完レイヤーとして活きる。組み合わせも考える ӡ༻͠ͳ͕Β磨く ͲΜͳΠϯϓοτ͕དྷΔ͔༧ଌ͕͍࣌͠ɺӡ༻͠ͳ͕Βݕग़ਫ਼ΛߴΊ͍ͯ͘
まとめ ͝ਗ਼ௌありがとうございました! クレカ番号の判定の詳細は是⾮ブログを! https://blog.smartbank.co.jp/entry/2026/01/08/100000 画像内の“写ってはいけないもの”を弾きたい @minisera
None