iOS 銀行卡識別,我把最難的部分都替你踩過了

本人在支付行業(yè)做了10年iOS開發(fā),總繞不開一件事:讓用戶手動輸入身份證號、銀行卡號。

16-19位數(shù)字,輸錯一位就得重來。沒人喜歡這個體驗。

所以我工作之余用 ObjC 寫了一個 OCR SDK,這次用Swift重寫了一下 OCRKit,一個開箱即用的 iOS 銀行卡/身份證 OCR 框架。把手機攝像頭對準卡,自動識別卡號、銀行名、卡類型等,不需要服務器,純端側(cè)運行。


簡介

  • ? 實時矩形檢測(自動對焦、穩(wěn)定觸發(fā))

  • ? 銀行卡

  • ? 身份證

  • ? 支持實時掃描、相冊兩種模式

  • ? 支持深色/低對比度卡片、模糊 + 凸印卡、傾斜拍攝等復雜場景

  • ? 純 Swift,無第三方依賴

  • ? iOS 15+,支持 arm64 真機與模擬器


接入方式

支持三種常見接入方式:SPM、CocoaPods以及手動:

Swift Package Manager(推薦):Xcode → File → Add Package Dependencies,填入:

https://github.com/FreakLee/OCRKit-Release

或在 Package.swift 中添加:

dependencies: [
    .package(url: "https://github.com/FreakLee/OCRKit-Release", from: "1.0.0"),
],
targets: [
    .target(name: "YourApp", dependencies: ["OCRKit"]),
]

CocoaPods

pod 'OCRKit'

手動

  1. 前往 Releases 下載最新的 OCRKit.xcframework.zip
  2. 解壓,將 OCRKit.xcframework 拖入 Xcode 項目
  3. 在 Target → General → Frameworks, Libraries, and Embedded Content 中設置為 Embed & Sign

接入完成后,兩行代碼啟動掃描:

// 1、所在控制器頁面導入
import OCRKit

// 2、啟動掃描

// 銀行卡
let result = try await OCRKitSDK.shared.scanBankCard(from: self)

// 身份證人像面
//let result = try await OCRKitSDK.shared.scanIDCardFront(from: self)

// 身份證國徽面
//let result = try await OCRKitSDK.shared.scanIDCardBack(from: self)

它能處理哪些"麻煩卡"

模糊 + 凸印卡:浮雕數(shù)字光線不均勻,識別失敗后自動切換增強模式,并顯示拍照按鈕讓用戶主動補拍。

Image

傾斜拍攝:內(nèi)置透視矯正,歪著拍也能識別,最大支持 45° 傾斜。

Image

深色 / 低對比度卡:自適應分析圖像亮度和對比度,黑卡、白金卡各自使用不同的增強參數(shù),不靠固定值硬猜。

Image

后續(xù)規(guī)劃

  • ?? 掃描二維碼 / 條形碼

  • ?? 行駛證 / 駕駛證識別

  • ?? 多語言卡面支持

OCRKit 完全離線運行,數(shù)據(jù)不出設備,適合對隱私敏感的金融、醫(yī)療類 App。

GitHub,歡迎試用、Star和提Issue。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容