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
Vision Frameworkを使ってクレジットカードを スキャンする話
Search
hexarf
September 12, 2022
Programming
3.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vision Frameworkを使ってクレジットカードを スキャンする話
hexarf
September 12, 2022
More Decks by hexarf
See All by hexarf
Taxi App GO Fast development
hexarf
0
99
Taxi App GO Fast Dev for iOS
hexarf
0
180
localization-saas-for-ios
hexarf
2
1k
Other Decks in Programming
See All in Programming
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
190
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
130
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
110
プロポーザルを書いてもらう
pvcresin
0
590
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
120
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
460
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
660
AIの中の人になってみる
htkym
0
140
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
110
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
320
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
250
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
A Tale of Four Properties
chriscoyier
163
24k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
510
The Pragmatic Product Professional
lauravandoore
37
7.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
The Cult of Friendly URLs
andyhume
79
7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Tell your own story through comics
letsgokoyo
1
1.1k
The browser strikes back
jonoalderson
0
1.6k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
670
Game over? The fight for quality and originality in the time of robots
wayneb77
1
260
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Transcript
Mobility Technologies Co., Ltd. Vision Frameworkを使ってクレジットカードを スキャンする話 2022/9/10 Byungjun, Park
Mobility Technologies Co., Ltd. 2 パク ビョンジュン(Byungjun, Park) 出⾝地 :
韓国(⼤邱) 現在: 横浜 iOSエンジニアとして 2015~2019 Fintech系サービス開発 2019~ Mobility Technologies (MoT) タクシーアプリ「GO」の iOS アプリ開 発 Side project: React Nativeアプリ開発 趣味: サイクリング・ランニング、旅⾏、 レトロゲーム ⾃⼰紹介
Mobility Technologies Co., Ltd. GO Payの⽀払い⼿段登録のため、クレジットカー ド情報を⼊⼒する必要がある。 ユーザーが⼊⼒する⼿間を減らす機能、カメラでク レジットカードをスキャンして以下の項⽬を検出し て⾃動⼊⼒させる。
- カード番号 - 有効期限 タクシーアプリ「GO」のクレジットカード登録 3
Mobility Technologies Co., Ltd. CardIO SDK for iOS, Android OpenCVを利⽤したカードスキャナー
・認識率・認識速度問題 ・SPMに対応されていない ・最後のリリースが2016年、メンテナンスされていない カードをスキャンするために使っているライブラリ 4 GOのクレジットカード読み込み画⾯
Mobility Technologies Co., Ltd. Vision Framework 画像分析フレームワーク iOS11から利⽤可能 テキスト認識は(iOS13から) VisionとVisionKit
Framework 5 VisionKit Framework iOS13から利⽤可能 ドキュメントをスキャンするフレームワーク 動物認識 書類検出 ⼿の形 顔トラッキング 矩形検出 類似性判定
Mobility Technologies Co., Ltd. クレジットカードから情報を読み込む流れ 6 NUMBER: 1234 5678 1234
5678 NAME: CARDHOLDER NAME EXP: 00/00 1.カメラなどからカードをスキャン 2.イメージから⽂字を抽出 3.パーシング
Mobility Technologies Co., Ltd. ドキュメント部分を検知して対象を スキャンする VNDocumentCameraViewControl ler ドキュメントのスキャン -
VisionKit Framework 7 DataScannerViewController(iOS 16) ImageAnalyzer(iOS16)
Mobility Technologies Co., Ltd. VisionKit Frameworkを使ってスキャンする 8
Mobility Technologies Co., Ltd. 画像からテキストを検出 - Vision Framework 9
Mobility Technologies Co., Ltd. VNRecognizeTextRequest ・recognitionLevel: - accuracy: 精度(default) -
fast: 速度 *iPhone 12 Pro基準 accuracy: 0.2〜3sec、 fast: 〜0.1sec (画像種類、プロセッサー、実⾏ スレッド区分によって処理時間は変わる) ・revision: - revision1: iOS13 - revision2: iOS14〜15 - revision3: iOS16(ここから⽇本語も対応) *revsionによって同じイメージでも結果が違う可能性がある テキスト検知リクエストオプション - Vision Framework 10
Mobility Technologies Co., Ltd. 画像からテキストを認識結果 - Vision Framework 11 VNRecognizedTextObservation
open func topCandidates(_ maxCandidateCount: Int) -> [VNRecognizedText] 最⼤10個の検出候補を取得 VNRecognizedText - string : 検出テキスト - confidence : 信頼度のスコア 0.0~1.0 *スコアが1.0だとしても結果が保証 されるわけではない
Mobility Technologies Co., Ltd. 抽出したテキストからカード番号を判定 12
Mobility Technologies Co., Ltd. テキスト検知難易度が⾼いイメージの場合、認識率が下 がる ・露出 ・オブジェクトの⾓度 ・オブジェクトの⼤きさ ・⼿ブレ
・フォーカシング ・反射 問題 13 プロダクトレベルとしてはちょっと微妙・・・ サンプリングイメージ⼀枚だけでは信頼度の確 保が厳しい
Mobility Technologies Co., Ltd. ・ AVFoundationを使ってカメラから複数イメージをサンプリングする 認識率を上げるための実装 14 ・UX的な対策 ガイドフレームと合わせることでインターラクションが発⽣
するようにする
Mobility Technologies Co., Ltd. 15 タクシーアプリ「GO」の開発を⼀緒にしませんか https://hrmos.co/pages/ mo-t/jobs/2100002
Mobility Technologies Co., Ltd. 16 iOSDC Japan 2022 After Talk
のご参加お待ちしています 2022年10⽉5⽇ (⽔) 19:00〜20:50 https://sansan.connpass.com/event/255645/
⽂章·画像等の内容の無断転載及び複製等の⾏為はご遠慮ください。 Mobility Technologies Co., Ltd. 17