腾讯云文字识别iOS API 概览_AI解决方案_同尘科技
iOS 端文字识别 SDK 主要涉及的类有 OcrSDKKit、OcrSDKConfig、CustomConfigUI、OcrCommmDef,下面对其支持的 API 做出详细说明。
OcrSDKKit
OcrSDKKit 是文字识别 OCR 的对外接口类,文字识别功能主要集中在这个类中。
API | 功能描述 |
sharedInstance() | 创建 OcrSDKKit 的单例 |
clearInstance() | 主动释放资源 |
getVersion() | 获取当前 SDK 的版本号信息 |
loadSDKConfig | 初始化 SDK 配置信息 |
updateFederationToken() | 主动更新临时密钥 |
startProcessOcr() | 启动 OCR 识别 |
sharedInstance()
+ (nonnull instancetype)sharedInstance;
功能描述:
创建 OcrSDKKit 的单例。返回结果:
OcrSDKKit 的单例对象。
clearInstance()
/// 清理 SDK 资源+ (void)clearInstance;
功能描述:
主动释放资源的方法,可在退出应用或者需要清理资源的时候调用。
getVersion()
- (NSString *_Nonnull)getVersion;
功能描述:
获取 SDK 当前的版本号。返回结果:
当前 SDK 的版本信息。
loadSDKConfig()
/// SDKKIt 加载 OCR 配置信息 这里使用的密钥为固定密钥,当使用临时密钥时,secretId secretKey 填入 nil 空值/// @param secretId Secret id/// @param secretKey Secret key/// @param ocrConfig ocr 配置类- (int)loadSDKConfigWithSecretId:(NSString *)secretId withSecretKey:(NSString *)secretKey withConfig:(OcrSDKConfig *)ocrSDKConfig;
功能描述:
初始化 SDK 信息。传入参数:
参数类型 | 参数名称 | 参数含义 |
OcrSDKConfig | ocrSDKConfig | SDK 配置参数的实体类 |
OcrSDKUIConfig | ocrSDKUIConfig | SDK UI 配置参数的实体类 |
NSString | secretId | SecretId 密钥 |
NSString | secretKey | SecretKey 密钥 |
updateFederationToken()
/// @param tmpSecretId 临时 SecretId/// @param tmpSecretKey 临时密钥信息/// @param token 临时兑换 token- (void)updateFederationToken:(NSString *_Nonnull) tmpSecretId withTempSecretKey:(NSString *_Nullable)tmpSecretKey withToken:(NSString *_Nonnull)token;
功能描述:
主动更新临时密钥信息,在您与服务器兑换得到临时密钥之后主动调用设置。传入参数:
参数类型 | 参数名称 | 参数含义 |
NSString | tmpSecretId | 临时密钥 SecretId |
NSString | tmpSecretKey | 临时密钥 SecretKey |
NSString | token | 兑换后的临时访问 token |
startProcessOcr()
/// 启动 SDK 模块,运行带有 UI 界面的功能识别模块/// @param ocrType 识别模式/// @param CustomConfigUI ocrUI 配置类 当传入 nil 时使用默认配置/// @param onProcessSucceed 成功回调 block/// @param onProcessFailed 失败回调 block- (void)startProcessOcr:(int)ocrType withSDKUIConfig:(CustomConfigUI *)customConfigUI withProcessSucceedBlock:(OcrSDKKitProcessSucceedBlock _Nonnull)onProcessSucceed withProcessFailedBlock:(OcrSDKKitProcessFailedBlock _Nonnull)onProcessFailed;
功能描述:
启动 OCR 识别传入参数:
参数类型 | 参数名称 | 参数含义 |
OcrType | ocrType | 启动的 OCR 识别类型 |
CustomConfigUI | customConfigUI | ocrUI 配置类 |
OcrSDKKitProcessSucceedBlock | onProcessSucceed | 识别成功的回调 |
OcrSDKKitProcessFailedBlock | onProcessFailed | 识别失败的回调 |
OcrSDKConfig
OcrSDKConfig 是在 OCR 初始化时需要传入的 SDK 的配置信息实体类。支持参数及其默认值如下:
类型 | 名称 | 含义 | 默认值 |
OcrType | ocrType | 默认识别类型 | IDCardOCR_FRONT,IDCardOCR_BACK 均代表 id_card |
OcrModeType | ocrModeType | 识别模式类型:OCR_DETECT_MANUAL 代表手动拍摄模式,OCR_DETECT_AUTO_MANUAL 代码自动捕获模式 20s未检测提示是否切换至手动拍摄 | OCR_DETECT_MANUAL 默认值 |
long | auto_timeout_ms | 自动捕捉模式下自动切换至手动拍照模式的超时时间(5000ms<auto_timeout_ms <180000ms) |
20000ms |
BOOL | cropIdCard | 开启身份证照片裁剪(去掉证件外多余的边缘、自动矫正拍摄角度)开关 | NO |
BOOL | cropPortrait | 开启人像照片裁剪(自动抠取身份证头像区域) | NO |
BOOL | copyWarn | 开启复印件告警 | NO |
BOOL | borderCheckWarn | 开启边框和框内遮挡告警 | NO |
BOOL | reshootWarn | 开启翻拍告警 | NO |
BOOL | detectPsWarn | 开启 PS 检测告警 | NO |
BOOL | tempIdWarn | 开启临时身份证告警 | NO |
BOOL | invalidDateWarn | 开启身份证有效日期不合法告警 | NO |
BOOL | quality | 开启图片质量分数(评价图片的模糊程度) | NO |
BOOL | multiCardDetect | 是否开启多卡证检测 | NO |
BOOL | reflectWarn | 是否开启反光告警 | NO |
NSString | retImageType | 图像预处理,检测图片倾斜的角度,将原本倾斜的图片围绕中心点转正,最终输出一张正的名片抠图。 | 空 |
BOOL | retImage | 马来西亚身份证接口是否返回图片 | NO |
BOOL | retBorderCutImage | 是否返回预处理(精确剪裁对齐)后的银行卡 图片数据(仅BankCardOCR类型下生效) | NO |
BOOL | retCardNoImage | 是否返回银行卡卡号的切图图片数据(仅BankCardOCR类型下生效) | NO |
BOOL | enableCopyCheck | 银行卡复印件检测开关,如果输入的图片是银行卡复印件图片则返回告警(仅BankCardOCR类型下生效) | NO |
BOOL | enableReshootCheck | 银行卡翻拍检测开关,如果输入的图片是银行卡翻拍图片则返回告警(仅BankCardOCR类型下生效) | NO |
BOOL | enableBorderCheck | 银行卡边框遮挡检测开关,如果输入的图片是银行卡边框被遮挡则返回告警(仅BankCardOCR类型下生效) | NO |
BOOL | enableQualityValue | 是否返回银行卡图片质量分数(图片质量分数是评价一个图片的模糊程度的标准)(仅BankCardOCR类型下生效) | NO |
BOOL | detectFake | 香港身份证是否鉴伪(仅HKIDCardOCR_03、HKIDCardOCR_18生效) | NO |
BOOL | returnHeadImage | 香港身份证是否返回人像照片(仅HKIDCardOCR_03、HKIDCardOCR_18下生效) | NO |
CustomConfigUI
CustomConfigUI 是在启动 SDK 模块时需要传入的 SDK 的 UI 配置信息实体类。支持参数及其默认值如下:
类型 | 名称 | 含义 | 默认值 |
BOOL | isShowTips | 是否显示中间提示语 | YES |
NSString | tipsShowText | 中间提示语内容(限制15个中文字) | “请避免识别内容折角、遮挡和反光” |
NSString | remindDialogText | dialog 模式转换提示文字 | “未能识别证件,是否切换模式拍照上传?” |
UIColor | remindConfirmColor | dialog 模式转换提示,按钮颜色 | RGBA:5 106 1 1 |
UIColor | cardFrameColor | 卡片框选中颜色 | RGBA:5 106 1 1 |
UIImage | takePictureImage | 拍照按钮图标 80×80 | 默认图标 |
UIImage | lightONImage | 打开手电筒按钮图标 40×40 | 默认图标 |
UIImage | lightOFFImage | 关闭手电筒按钮图标40×40 | 默认图标 |
UIImage | albumImage | 相册按钮图标40×40 | 默认图标 |
BOOL | isShowAlbumBtn | 是否显示相册按钮 | YES |
BOOL | isHorizontal | 是否横屏显示 | NO |
float | blurThreshold | 光线模糊的最低范围 | 0.5 |
int | validCount | 稳定帧的帧数 | 4 |
OCR_LanguageType | languageType | 设置当前使用语言 | OCR_DEFAULT |
OcrCameraZoom | zoomType | 设置默认的缩放倍数 | OCR_ZOOM_1X |
BOOL | openClipImage | 设置打开图片裁剪 | YES |
NSString | ocrSDKBundlePath | 设置OCRSDK bundle文件路径,默认从main bundle下读取 | nil |
OcrType
OcrType 是一个枚举类型,列举了当前文字识别 OCR 的 SDK 所支持业务类型的种类,大致如下:
OcrType 类型 | 代表含义 |
OcrType.IDCardOCR_FRONT | 身份证人像面识别模式 |
OcrType.IDCardOCR_BACK | 身份证国徽面识别模式 |
OcrType.BankCardOCR | 银行卡正面识别模式 |
OcrType.BusinessCardOCR | 名片卡正面识别模式 |
OcrType.MLIdCardOCR | 马来西亚身份证识别模式 |
OcrType.LicensePlateOCR | 汽车车牌识别模式 |
OcrType.VinOCR | 汽车VIN码识别模式 |
OcrType.VehicleLicenseOCR_FRONT | 行驶证主页识别模式 |
OcrType.VehicleLicenseOCR_BACK | 行驶证副页识别模式 |
OcrType.DriverLicenseOCR_FRONT | 驾驶证主页识别模式 |
OcrType.DriverLicenseOCR_BACK | 驾驶证副页识别模式 |
OcrType.VinOCR2 | 汽车VIN码识别模式(高精度版) |
OcrType.HKIDCardoCR_03 | 香港身份证03版本识别模式 |
OcrType.IDCardOCR_HK18 | 香港身份证18版本识别模式 |
OcrType.PermitOCR | 港澳台通行证识别模式 |
OcrType.MLIDPassportocR | 国际护照识别模式 |
OcrType.HmtResidentPermitOCR | 港澳台居住证 |
OcrModeType
OcrModeType 是一个枚举类型,列举了卡片识别模式
OcrModeType 类型 | 代表含义 |
OCR_DETECT_MANUAL | 手动拍摄模式 |
OCR_DETECT_AUTO_MANUAL | 自动识别模式(tips:20s后提示 是否切换到手动拍摄) |
OCR_LanguageType
OCR_LanguageType是一个枚举类型,列举了语言设置
类型 | 代表含义 |
OCR_DEFAULT | 跟随系统 |
OCR_ZH_HANS | 中文简体 |
OCR_ZH_HANT | 中文繁体 |
OCR_EN | 英文 |
OcrCameraZoom
OcrCameraZoom是一个枚举类型,列举了相机默认缩放倍数
类型 | 代表含义 |
OCR_ZOOM_1X | 1倍 |
OCR_ZOOM_1_5X | 1.5倍 |
OCR_ZOOM_2X | 2倍 |
识别结果回调
文字识别 OCR 识别结果的回调类,用于接收识别结果以及错误异常。
///SDKKit 处理成功回调接口///@param resultInfo 会根据不同的工作模式返回对应下的成功信息(一般都是网络回包 json 字段)///@param reserved 预留位typedef void (^OcrSDKKitProcessSucceedBlock)(id _Nonnull resultInfo, UIImage *resultImage,id _Nonnull reserved);
/// SDKKIt 处理失败回调接口/// @param error 处理过程中触发的异常错误/// @param reserved 预留位///tipstypedef void (^OcrSDKKitProcessFailedBlock)(NSError *_Nonnull error, id _Nullable reserved);
说明
用户取消文字识别退出会在 OcrSDKKitProcessFailedBlock 回调domain: “OcrSdk.UserCancelOcr” – code: 200101NSLocalizedDescription : “用户主动停止文字识别”身份证正面请求返回 resultInfo 结果示例:
{ "Name": "李明", "Sex": "男", "Nation": "汉", "Birth": "1987/1/1", "Address": "北京市石景山区高新技术园腾讯大楼", "IdNum": "440524******010014", "Authority": "", "ValidDate": "", "AdvancedInfo": "{}", "RequestId": "ab2c132e-9e1c-43d3-b0ef-9b4d80f00330" }
身份证反面请求返回 resultInfo 结果示例:
{ "Name": "", "Sex": "", "Nation": "", "Birth": "", "Address": "", "IdNum": "", "Authority": "赵县公安局", "ValidDate": "2010.07.21-2020.07.21", "AdvancedInfo": "{}", "RequestId": "0d394478-6d4d-48fc-8b19-552415bf46de" }
银行卡请求返回 resultInfo 结果示例:
{ "CardNo": "6225760088888888", "BankInfo": "招商银行(03080000)", "ValidDate": "08/2022", "RequestId": "46ab2e62-11e3-4d04-9fab-0abe18e7c927" }
名片请求结果返回 resultInfo 结果示例:
{ "BusinessCardInfos": [ { "Name": "姓名", "Value": "艾米" }, { "Name": "职位", "Value": "视觉设计师" }, { "Name": "部门", "Value": "社交平台部" }, { "Name": "公司", "Value": "Tencent腾讯" }, { "Name": "地址", "Value": "深圳市南山区高新技术园科技中一路腾讯大厦" }, { "Name": "邮箱", "Value": "ab***fg@tencent.com" }, { "Name": "手机", "Value": "+86-133****5678" }, { "Name": "QQ", "Value": "1234567" }, { "Name": "微信", "Value": "amy001" } ], "RetImageBase64": "", "RequestId": "98f8fcbf-933a-4e95-ac48-6f1a9308fs6h" }
马来西亚身份证请求结果返回 resultInfo 结果示例:
{ "Response": { "Name": "KAVIN ONG KHI MN", "ID": "710716-08-6085", "Address": "NO 11 PERSIARN PERAJRIT 4 TAMA PERAK 31400 IPOH ERAK", "Sex": "LEAKI", "Birthday": "", "Warn": [], "Image": "", "AdvancedInfo": "{\"ID\":{\"Confidence\":\"1.0000\"},\"Name\":{\"Confidence\":\"0.9996\"},\"Address\":{\"Confidence\":\"0.9997\"},\"Sex\":{\"Confidence\":\"0.9999\"}}", "Type": "MyKad", "RequestId": "c969da05-54e3-4d0a-a55d-b3ef90d4ebf5" }}
车牌识别请求结果返回 resultInfo 结果示例:
{ "Response": { "Number": "京N0L9U8", "Confidence": 99, "Rect": { "X": 217, "Y": 233, "Width": 170, "Height": 21 }, "RequestId": "210103d3-db06-4691-abe0-c0853aae606b" }}
车辆 VIN 码识请求结果返回 resultInfo 结果示例:
{ "Response": { "Vin": "LBV2B25G2E5069977", "RequestId": "c59d9002-6c8c-426d-b57f-a8837dee2c7c" }}
行驶证主页和副页请求结果返回 resultInfo 结果示例:
{ "Response": { "FrontInfo": { "PlateNo": "沪AA1234", "VehicleType": "小型轿车", "Owner": "李明", "Address": "上海市徐汇区田林路397号腾云大厦6F", "UseCharacter": "非营运", "Model": "别克牌SGM7151LAAA", "Vin": "ABCDEFGH123456789", "EngineNo": "8B54321", "RegisterDate": "2011-10-10", "IssueDate": "", "Seal": "上海市公安局交通警寨总队" }, "BackInfo": null, "RecognizeWarnCode": [ -9106 ], "RecognizeWarnMsg": [ "WARN_DRIVER_LICENSE_PS_CARD" ], "RequestId": "820916b4-b391-40a8-9203-7ae87e3f1954" }}
驾驶证主页和副页请求结果返回 resultInfo 结果示例:
{ "Response": { "Name": "李明", "Sex": "男", "Nationality": "中国", "Address": "上海市徐汇区田林路397号腾云大厦6F", "DateOfBirth": "1987-01-01", "IssuingAuthority": "上海市公安局交通警察总队", "DateOfFirstIssue": "2011-10-01", "Class": "C1", "StartDate": "2011-10-01", "EndDate": "2017-10-01", "CardCode": "440524198701010014", "ArchivesCode": "", "Record": "", "RecognizeWarnCode": [ -9106 ], "RecognizeWarnMsg": [ "WARN_DRIVER_LICENSE_PS_CARD" ], "RequestId": "4ba2958b-e7cf-41c2-aafe-fdc985307f63" }}
对于返回的错误码以及错误信息,可以参考 错误码。
{ "Response": { "Error": { "Code": "AuthFailure.SignatureFailure", "Message": "The provided credentials could not be validated. Please check your signature is correct." }, "RequestId": "ed93f3cb-f35e-473f-b9f3-0d451b8b79c6" }}
对解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?