百度人脸识别使用指南-人脸实名认证APP端iOS方案集成指南 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
产品推荐: 1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>; 2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>> 3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>> 4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>> 点击这里申请百度智能云特邀VIP帐号,立即体验人脸识别>>> 百度人脸识别使用指南-人脸实名认证APP端iOS方案集成指南 1. 文档说明
2. 版本说明
3. SDK说明
4. 运行项目工程4.1 打开下载的iOS示例工程如下图所示: 4.2 使用如下链接请求百度Tokenhttps://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【百度云应用的AK】&client_secret=【百度云应用的SK】 注意:上述百度云应用的AK和百度云应用的SK,应当替换为您自己名下的AK和SK。 详细获取资料,请参考:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu 最终获取到的token应如下图所示: 4.3 全局搜索关键词: #warning developer注意:这种方式只是调试阶段的代码,上线代码不可用如下方式,而应该每次都重写获取,因为token会在一定时间内变化)可以找到如下,被注释的代码 /// self.accessToken = @"";如下图所示 【重要】这里这种写法仅仅用于测试功能,正式上线,token不能写成固定值,需要每次都请求。为了安全期间,建议将请求放到自己服务器上,做一层转发,而不是将AK,SK写在端上来请求。 打开这个注释,将上述token内容写入:例: self.accessToken = @"25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798284651.282335-8574074"; 代码如下图所示: 4.4 确认bundleId等信息是否正确连接真机进行运行,之后可以看到如下界面: 4.5 点击开始身份认证测试示例工程是否跑通,之后扫码身份证或输入身份证信息后,点击进行身份核验,验证成功可以看到如下界面: 上图为示例工程运行成功,之后可以将示例工程代码集成到目标项目中。 5. 集成步骤5.1 将BDFaceSDK文件夹下所有文件拖动到目标项目中如下图所示 5.2 将AipBase.framework, AipOcrSdk.framework和IdcardQuality.framework DebugFramework.framework拖动到目标项目如下所图示 5.3 将BDFaceSDK文件夹(如下图所示的文件夹)整体拖入到目标代码中;5.4 在Build Phases中点击下面的+号选择NewCopyFilePhases,添加一个CopyFiles(可重新命名为Embed) 5.5 双击CopyFiles改为Embed Frameworks,同时Destination改为framework,之后将AipBase.framework、AipOcrSdk.framework和IdcardQuality.framework 拖动到下面 5.6 Link Binary With Libraries中添加libc++.tbd、libz.tbd 和 对应的framework如下图所示: 5.7 确认添加的库文件设置正确如下图所示,点击general, 这三个库需要为Do Not Embed:BDFaceBaseKit.framework, BDFaceLogicLayer.framework,CoreTelephony.framework. 5.8 info.plist 文件中添加以下key(获取相机和照片权限)最后之后可以将人脸核验示例工程代码代码结合自身工程项目,将相关代码集成到目标工程中。 6. 授权文件、加密文件人脸识别授权文件(idl-license.face-ios),图片加密文件(idl-key.face-ios),OCR身份证识别授权文件(aip.license),从console平台下载完iOS项目,这些文件即包括在下载的示例项目中,不需要特殊处理,按上面第5.3步整体拖入目标项目中即可。 7. 人脸相关接口7.1 初始化接口初始化接口调用 用于初始化人脸识别和OCR识别
入参说明
initFaceBlock中,使用以下函数进行人脸SDK初始化 -(void)initCollectWithLicenseID:(NSString )licenseID andLocalLicenceName:(NSString )licenseName andExtradata:(NSDictionary *)extradata callback:(FaceSDKInitResultBlock )block; 回调状态码说明
具体枚举值如下
7.2 人脸实名认证接口(有源)基于姓名、身份证号、当前SDK获取的人脸图片,与公安权威数据源进行对比,并得出比对分数,并基于此进行业务判断是否为同一人。
入参dic (NSDictionary类型) key值列表如下:
回调说明
resultDic key值列表说明:
resultCode和resultMsg对应情况如下:
7.3 活体检测接口包含本地活体加云端活体,本地活体分静默活体、炫瞳活体、动作活体三种,云端活体可以判断图片中的人脸是否为二次翻拍以及是否为合成图攻击。
入参dic (NSDictionary类型) key值列表如下:
回调说明
callback key值列表说明:
7.4 人脸采集及人脸比对接口(无源)包含本地质量和本地活体,本地质量可以确保采集到的人脸图像符合各条件校验(满足姿态角、光照、模糊度、遮挡等校验),本地活体分静默活体、炫瞳活体、动作活体三种。
回调说明
resultDic key值列表说明:
7.5 人脸相关配置人脸相关配置来自于百度云控制台下发的console_config.json文件,详细参考BDConfigFileParser类,不设置,将使用默认值。 8. OCR身份证识别相关接口8.1 OCR身份证识别初始化接口
入参说明
注:如果aip.license文件鉴权文件正确,那么可以使用OCR识别成功识别身份证信息。 8.2 OCR身份证识别接口支持对二代居民身份证字段进行结构化识别,包括姓名、性别,调用参考OCR身份证识别接口文档。
参数值列表如下:
config配置说明
9. 权限
10. 只使用人脸采集功能,不使用OCR10.1 运行示例工程代码点击开始身份核验,走完所有流程,可以出现如下界面: 10.2 删除库文件:AipOcrSdk.framework,AipBase.framework,IdcardQuality.framework10.3 全局搜索与AipOcrSDK/AipOcrSdk.h找到后并删除项目中所有引入对应SDK的代码,也可以注释,在删除后可能导致编译不通过,可以根据报错部分保证正常功能不受影响的同时进行相应的代码注释。 10.4 全局搜索 -(void) startOCRSdk 并注释该函数注意:其他编译报错部分调用的地方也需要注释或删除 // 打开相机扫描
- (void)startOCRSdk {
[self configCallback];
// 身份证识别
[AipCaptureCardVC clearIdCard];
BDAipOCRConfig *config = [[BDAipOCRConfig alloc] init];
AipNavigationController *detectNavi = [AipCaptureCardVC viewControllerToDetectIdCard:config
handler:^(UIImage *image) {
_idCardImage = image;
[[AipOcrService shardService] detectIdCardFrontFromImage:image
withOptions:nil
successHandler:^(id result) {
_successHandler(result);
} failHandler:_failHandler];
}];
UIViewController *detectRoot = [[UIViewController alloc] init];
detectRoot.view.backgroundColor = [UIColor whiteColor];
detectRoot.view.clipsToBounds = YES;
[detectRoot addChildViewController:detectNavi];
[detectRoot.view addSubview:detectNavi.view];
[self.navigationController pushViewController:detectRoot animated:YES];
_vc = detectRoot;
__weak typeof(detectRoot) weakDetectRoot = detectRoot;
detectNavi.captureController.backAction = ^{
[weakDetectRoot.navigationController popViewControllerAnimated:YES];
};} 10.5 .编译运行代码首页并将身份证OCR功能关闭或者使用代码// 身份证获取方式 1 OCR扫描 0 手动输入 2代码传
+ (int)useOCR {
BDConfigDataService *service = [self sharedInstance];
NSNumber *value = service.sharedDic[BDConfigDataServiceKeyForSettingOcr];
if (value) {
return value.intValue;
}
return [[BDConfigFileParser sharedInstance] useOCR];} 10.6 将userOCR的值设置为0保证程序只能手动输入身份信息来调用人脸,此部分功能模块不使用也可以对应删除。 运行工程 |