Slide 1

Slide 1 text

Mobility Technologies Co., Ltd. Vision Frameworkを使ってクレジットカードを スキャンする話 2022/9/10 Byungjun, Park

Slide 2

Slide 2 text

Mobility Technologies Co., Ltd. 2 パク ビョンジュン(Byungjun, Park) 出⾝地 : 韓国(⼤邱) 現在: 横浜 iOSエンジニアとして 2015~2019 Fintech系サービス開発 2019~ Mobility Technologies (MoT) タクシーアプリ「GO」の iOS アプリ開 発 Side project: React Nativeアプリ開発 趣味: サイクリング・ランニング、旅⾏、 レトロゲーム ⾃⼰紹介

Slide 3

Slide 3 text

Mobility Technologies Co., Ltd. GO Payの⽀払い⼿段登録のため、クレジットカー ド情報を⼊⼒する必要がある。 ユーザーが⼊⼒する⼿間を減らす機能、カメラでク レジットカードをスキャンして以下の項⽬を検出し て⾃動⼊⼒させる。 - カード番号 - 有効期限 タクシーアプリ「GO」のクレジットカード登録 3

Slide 4

Slide 4 text

Mobility Technologies Co., Ltd. CardIO SDK for iOS, Android OpenCVを利⽤したカードスキャナー ・認識率・認識速度問題 ・SPMに対応されていない ・最後のリリースが2016年、メンテナンスされていない カードをスキャンするために使っているライブラリ 4 GOのクレジットカード読み込み画⾯

Slide 5

Slide 5 text

Mobility Technologies Co., Ltd. Vision Framework 画像分析フレームワーク iOS11から利⽤可能 テキスト認識は(iOS13から) VisionとVisionKit Framework 5 VisionKit Framework iOS13から利⽤可能 ドキュメントをスキャンするフレームワーク 動物認識 書類検出 ⼿の形 顔トラッキング 矩形検出 類似性判定

Slide 6

Slide 6 text

Mobility Technologies Co., Ltd. クレジットカードから情報を読み込む流れ 6 NUMBER: 1234 5678 1234 5678 NAME: CARDHOLDER NAME EXP: 00/00 1.カメラなどからカードをスキャン 2.イメージから⽂字を抽出 3.パーシング

Slide 7

Slide 7 text

Mobility Technologies Co., Ltd. ドキュメント部分を検知して対象を スキャンする VNDocumentCameraViewControl ler ドキュメントのスキャン - VisionKit Framework 7 DataScannerViewController(iOS 16) ImageAnalyzer(iOS16)

Slide 8

Slide 8 text

Mobility Technologies Co., Ltd. VisionKit Frameworkを使ってスキャンする 8

Slide 9

Slide 9 text

Mobility Technologies Co., Ltd. 画像からテキストを検出 - Vision Framework 9

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Mobility Technologies Co., Ltd. 画像からテキストを認識結果 - Vision Framework 11 VNRecognizedTextObservation open func topCandidates(_ maxCandidateCount: Int) -> [VNRecognizedText] 最⼤10個の検出候補を取得 VNRecognizedText - string : 検出テキスト - confidence : 信頼度のスコア 0.0~1.0 *スコアが1.0だとしても結果が保証 されるわけではない

Slide 12

Slide 12 text

Mobility Technologies Co., Ltd. 抽出したテキストからカード番号を判定 12

Slide 13

Slide 13 text

Mobility Technologies Co., Ltd. テキスト検知難易度が⾼いイメージの場合、認識率が下 がる ・露出 ・オブジェクトの⾓度 ・オブジェクトの⼤きさ ・⼿ブレ ・フォーカシング ・反射 問題 13 プロダクトレベルとしてはちょっと微妙・・・ サンプリングイメージ⼀枚だけでは信頼度の確 保が厳しい

Slide 14

Slide 14 text

Mobility Technologies Co., Ltd. ・ AVFoundationを使ってカメラから複数イメージをサンプリングする 認識率を上げるための実装 14 ・UX的な対策 ガイドフレームと合わせることでインターラクションが発⽣ するようにする

Slide 15

Slide 15 text

Mobility Technologies Co., Ltd. 15 タクシーアプリ「GO」の開発を⼀緒にしませんか https://hrmos.co/pages/ mo-t/jobs/2100002

Slide 16

Slide 16 text

Mobility Technologies Co., Ltd. 16 iOSDC Japan 2022 After Talk のご参加お待ちしています 2022年10⽉5⽇ (⽔) 19:00〜20:50 https://sansan.connpass.com/event/255645/

Slide 17

Slide 17 text

⽂章·画像等の内容の無断転載及び複製等の⾏為はご遠慮ください。 Mobility Technologies Co., Ltd. 17