Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vision Frameworkを使ってクレジットカードを スキャンする話

hexarf
September 12, 2022

Vision Frameworkを使ってクレジットカードを スキャンする話

hexarf

September 12, 2022
Tweet

More Decks by hexarf

Other Decks in Programming

Transcript

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

    View Slide

  2. Mobility Technologies Co.,
    Ltd.
    2
    パク ビョンジュン(Byungjun, Park)
    出⾝地 : 韓国(⼤邱)
    現在: 横浜
    iOSエンジニアとして
    2015~2019 Fintech系サービス開発
    2019~ Mobility Technologies (MoT)
    タクシーアプリ「GO」の iOS アプリ開

    Side project: React Nativeアプリ開発
    趣味: サイクリング・ランニング、旅⾏、
    レトロゲーム
    ⾃⼰紹介

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide