跳到主要内容

🪪 身份证自动捕获

该 SDK 可自动处理整个泰国国民身份证照片工作流程:它会在实时摄像头画面中检测身份证边界,等待清晰稳定的帧,对裁剪进行透视校正,并将其提交给 泰国国民身份证 OCR API — 每张正面 1.25 IC,每张背面 0.75 IC。无需手动取景,无需模糊重拍。

Flutter

import 'package:iapp_ekyc_sdk/iapp_ekyc_sdk.dart';

final client = IappEkycClient(apiKey: 'YOUR_API_KEY');

// 正面
final front = await DocumentCaptureView.start(
context,
client: client,
documentType: DocumentType.thaiIdFront,
locale: EkycLocale.th,
);

// 背面(激光码)
final back = await DocumentCaptureView.start(
context,
client: client,
documentType: DocumentType.thaiIdBack,
);

Web

import { IappEkyc } from '@iapp-technology/ekyc-sdk';

const ekyc = new IappEkyc({ apiKey: 'YOUR_API_KEY' });

const front = await ekyc.captureDocument({
mount: document.getElementById('ekyc-mount'),
documentType: 'thaiIdFront',
locale: 'th',
});

const back = await ekyc.captureDocument({
mount: document.getElementById('ekyc-mount'),
documentType: 'thaiIdBack',
});

结果暴露了类型化的访问器以及原始 OCR 响应(result.raw)— 请参阅 泰国国民身份证 OCR 字段参考

iOS / Android / React Native

相同的流程在原生封装器中提供 — 一个引擎,相同的捕获质量。安装和相机权限设置:iOS, Android & React Native

// iOS (Swift; 也支持 Objective-C)
let config = IappEkycConfig(apiKey: "YOUR_API_KEY", flow: .documentCapture)
config.documentType = .thaiIdFront
IappEkycSdk.present(from: self, config: config) { result in /* result.document?.rawJSON */ }
// Android (Kotlin; 也支持 Java)
ekyc.launch(IappEkycRequest.DocumentCapture(config, EkycDocumentType.THAI_ID_FRONT))
// React Native
<IappEkycFlow flow="documentCapture" documentType="thaiIdFront" apiKey="YOUR_API_KEY"
onResult={handleResult} onError={handleError} onCancel={close} />

自动捕获工作原理

  • 边界检测 — 自适应 Canny 边缘检测和轮廓分析 (OpenCV) 会在屏幕指南内找到一个符合 ID-1 卡宽高比(1.586,即 85.60 × 53.98 毫米,±0.25 容差)的凸四边形。
  • 稳定性 — 仅当卡片在最近帧的滑动窗口中保持稳定后(角落漂移小于帧对角线的 2%)才触发捕获。
  • 清晰度 — 拉普拉斯方差评分会在花费任何信用之前拒绝模糊帧。
  • 透视校正 — 检测到的角点在上传前会被扭曲成一个平坦的约 300 DPI 的卡片图像(1011 × 637 像素),这可显著提高 OCR 准确性。
  • 手动备用 — 如果自动捕获在 10 秒后仍未触发,则会出现手动快门按钮。

了解更多