209
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
百度人脸识别使用指南-人脸实名认证APP端Android方案集成指南

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/200G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>



点击这里点击这里申请百度智能云特邀VIP帐号,立即体验人脸识别>>>

百度人脸识别使用指南-人脸实名认证APP端Android方案集成指南

1. 文档说明

文档名称人脸实名认证APP方案 6.1版本集成文档
所属平台Android
提交日期2023-5-29

2. 版本说明

名称版本号
名镜方案6.1.0
系统支持android 4.4+

3. SDK说明

文件名称版本号说明
lib-logic.aar1.0.3名镜SDK,业务逻辑封装
faceplatform-ui.aar6.1人脸SDK的UI层,封装采集和活体UI等功能,以及各平台so库
lib-liantian.aar3.6.0.4-AES安全SDK
ocr_ui.aar1.2.0百度OCR身份识别库

4. Demo运行

4.1 配置包名和签名

从百度云控制台下载Demo之后,需要在build.gradle中配置好包名和签名信息。

安卓4.1.png

4.2 修改accessToken

以下两处修改为AI开放平台AK、SK获取到的access_token,正式环境需要APP服务端通过AK、SK来获取access_token,移动端测试可以链接拼接AK、SK的方式来获取access_token。【此处需要注意】 access_token存在有效期,正式环境需要APP服务端通过AK、SK来获取access_token,此处只测试使用。 (https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【百度云应用的AK】&client_secret=【百度云应用的SK】)。

测试实名认证,请将获取到的access_token填在如下地方:

安卓4.21.png

测试在线活体,请将获取到的access_token填在如下地方: 安卓4.22.png

5. SDK集成

首先在app工程中增加lib-liantian.aar、faceplatform-ui.aar、lib-logic.aar、ocr-ui.aar。此处需要注意,如果需要使用OCR身份证识别能力,则需要增加此ocr-ui-release.aar,如果不使用则不需要增加。在app工程的build.gradle中添加相关依赖,然后点击运行。

安卓5.png

6. 授权文件、加密文件

请将百度云控制台创建应用时获取的人脸授权文件(idl-license.face-android)、加密文件(idl-key.face-android)放置于Assets目录下。如果使用OCR身份证识别功能,请将OCR身份证识别授权文件(aip.license)也放置于Assets目录下,如下图所示。

安卓6.png

7. 人脸相关接口

7.1 初始化接口

初始化接口调用

返回值API描述
voidinit(Context context, String licenseKey, String licenseName,FaceInitCallback FaceInitCallback)人脸初始化接口

入参说明

参数类型说明
contextContext上下文
licenseKeyString授权Key
licenseNameString授权文件名称

onCallback回调说明

参数类型含义
resultCodeint错误码1000为成功,其他为失败,详情参考resultCode错误码说明
resultMsgString详情见resultCode错误码说明

resultCode错误码说明

resultCoderesultMsg自查方案
1000成功
1001License未初始化请按照集成文档说明完成SDK初始化
1002License数据解密失败请检查License文件是否正确
1003Licesen数据格式错误请检查license文件内容有被修改过
1004License-Key校验错误请检查工程代码初始化参数中的licenseId,和申请license文件的licenseId是否匹配
1005算法ID校验错误请提交工单或者线下联系百度产研人员
1006MD5校验错误请检查工程所使用的签名文件,和申请license文件的签名信息是否匹配
1007设备ID校验错误采集SDK的授权模式不会出现这个错误码
1008包名(应用名校验错误)请检查工程代码中的applicationId(包名)和申请license文件的applicationId(包名)是否匹配
1009过期时间不正确请提交工单或者线下联系百度产研人员
1010功能未授权请查看授权文件中是否缺少必要的采集SDK功能声明(funclist参数),例如炫瞳活体
1011授权已过期请查看当前设备时间是否已不在授权文件有效期内
1012本地文件读取失败请检查授权文件名称以及路径
1013远程数据拉取失败本地鉴权失败之后,会远程拉取授权文件;若远程鉴权依然失败,可以关闭网络后重试
1014本地时间校验错误请检查当前设备时间是否早于实际时间
2001非法的参数请提交工单或者线下联系百度产研人员
2002内存分配失败请提交工单或者线下联系百度产研人员
2003实例对象为空请提交工单或者线下联系百度产研人员
2004模型内容为空请提交工单或者线下联系百度产研人员
2005不支持的能力类型请提交工单或者线下联系百度产研人员
2006不支持的预测库类型请提交工单或者线下联系百度产研人员
2007预测库对象创建失请提交工单或者线下联系百度产研人员
2009预测库对象初始化失败请提交工单或者线下联系百度产研人员
2010人脸能力初始化失败请按照集成文档说明正常完成SDK初始化
2011能力未加载请确认当前人脸相关资源库是否完整引用
2012人脸能力已加载底层已做过滤,无需关注
2013未授权检查授权文件是否按照集成文档正常使用
2014人脸能力运行异常请提交工单或者线下联系百度产研人员
2015不支持的图像类型请提交工单或者线下联系百度产研人员
2016图像转换失败检查摄像头分辨率,格式要求 %2==0

7.2 人脸实名认证接口(有源)

基于姓名、身份证号、当前SDK获取的人脸图片,与公安权威数据源进行对比,并得出比对分数,并基于此进行业务判断是否为同一人。
此处最终采集到的数据经过加密处理,需要配合开放平台人脸实名认证V4接口使用,包含活体检测、质量检测、实名认证功能,可通过传入参数进行控制,如您的业务场景核心为实名认证,无需重复请求7.3活体检测接口(startFaceLiveness)。

:如果配置APP方案时,身份信息录入的方式选择【业务调用时传入身份信息】,那么通过APP服务端接口获取姓名和证件号后,将获取到的姓名和证件号赋值给name和idcard_number字段即可。

返回值API描述
voidstartFaceRecognize(Context context, Map params, FaceServiceCallbck FaceServiceCallbck)实名认证接口

入参params (HashMap类型) key值列表如下:

参数类型说明必选
access_tokenString需要APP服务端通过AK、SK获取,参考 https://ai.baidu.com/docs#/Auth/top 【此处需要注意】access_token存在有效期,建议每次调用接口重新获取access_token
nameString姓名(需要是 utf8 编码)
id_card_numberString身份证件号
plan_idString在控制台配置的方案Id
verify_typeint证件类型(默认为0)0:中国居民二代身份证,1:港澳台来往内地通行证,2:外国人永久居留证,3:定居国外的中国公民护照,4:港澳台居民居住证
quality_controlString质量控制参数 NONE: 不进行控制 LOW:较低的质量要求 NORMAL: 一般的质量要求 HIGH: 较高质量要求 默认为NONE
liveness_controlString活体控制参数 NONE: 不进行控制 LOW:较低的活体要求(高通过率 低攻击拒绝率) NORMAL: 一般的活体要求(平衡的攻击拒绝率, 通过率) HIGH: 较高的活体要求(高攻击拒绝率 低通过率) 默认为NORMAL

onCallback回调说明

参数类型含义
resultCodeint错误码0为成功,其他为失败,详情参考resultCode错误码说明
resultMapHashMap回调结果Map详情见下表

resultMap key值列表说明:

Key值类型含义
resultMsgString详情见resultCode错误码说明
dataString服务端返回结果json,只有错误码为0时会返回 此字段,具体内容可以参考人脸实名认证(V4)接口文档

resultCode和resultMsg说明

resultCoderesultMsg自查方案
0成功
-101已有采集流程运行中
-102采集流程取消用户自行取消采集流程,调用cancel接口触发
-103安全SDK未初始化需要检查LH.init有没有调用,最好在application里面调用
-104未同意隐私协议需要检查LH.setAgreePolicy有没有调用,最好在application里面调用
-107获取安全数据失败请提交工单或者线下联系百度产研人
-301云端验证异常云端错误,检查加解密相关信息
-303视频录制错误是否授权视频/音频
-304线程异常已在logcat输出异常栈,请根据异常栈排查
-305在线筛选图片异常没有成功拿到图片
-306采集前内部异常请提交工单或者线下联系百度产研人
-307活体验证步骤异常请提交工单或者线下联系百度产研人
-308预览异常请提交工单或者线下联系百度产研人
-309采集后内部异常请提交工单或者线下联系百度产研人
-310摄像头调起失败请检查摄像头权限
-401超时,用户取消采集流程非预期用户行为导致的总流程超时,可通过设置延长超时时间限制
-402炫瞳异常炫瞳打光颜色与模型输出不匹配
-1001网络异常请检查网络通讯|
-1002accessToken参数不合法access_token字段未传,或者为空
-1003姓名参数不合法请检查参数是否为空或格式不规范
-1004证件号码参数不合法请检查参数是否为空或格式不规范

7.3 活体检测接口

包含本地活体加云端活体,本地活体分静默活体、炫瞳活体、动作活体三种,云端活体可以判断图片中的人脸是否为二次翻拍以及是否为合成图攻击。
此处最终采集到的数据经过加密处理,需要配合开放平台在线图片活体V4接口使用,实现二次验证采集图片是否存在假体攻击破绽的情况。
如您的业务场景核心为人脸实名认证,请直接请求7.2 实名认证接口

返回值API描述
voidstartFaceLiveness(Context context, Map params, FaceServiceCallbck FaceServiceCallbck)活体检测接口

入参params (HashMap类型) key值列表如下:

参数类型说明必选
access_tokenString需要APP服务端通过AK、SK获取access_token。
注意:由于access_token存在有效期,建议每次调用接口重新获取access_token

onCallback回调说明

参数类型含义
resultCodeint错误码0为成功,其他为失败,详情参考实名认证resultCode错误码说明
resultMapHashMap回调结果Map详情见下表

resultMap key值列表说明:

Key值类型含义
resultMsgString详情见resultCode错误码说明
dataString服务端返回结果json,只有错误码为0时会返回 此字段,具体内容可以参考在线图片活体V4

7.4 人脸采集及人脸比对接口(无源)

包含本地质量和本地活体,本地质量可以确保采集到的人脸图像符合各条件校验(满足姿态角、光照、模糊度、遮挡等校验),本地活体分静默活体、炫瞳活体、动作活体三种。
此处最终采集到的数据经过加密处理,需要配合开放平台人脸对比V4接口使用,包含活体检测、质量检测、人脸1:1识别功能,可通过传入参数进行控制,如您的业务场景核心为实名认证,无需重复请求7.3活体检测接口(startFaceLiveness)。

返回值API描述
voidstartFaceCollect(Context context, FaceServiceCallbck FaceServiceCallbck)人脸采集接口

onCallback回调说明

参数类型含义
resultCodeint错误码0为成功,其他为失败,详情参考实名认证resultCode错误码说明
resultMapHashMap回调结果Map详情见下表

resultMap key值列表说明:

Key值类型含义
resultMsgString详情见resultCode错误码说明
sKeyString安全相关:sKey
xDeviceIdString安全相关:xDeviceId
dataString安全相关数据


7.5 人脸释放接口

人脸释放接口调用

返回值API描述
voidrelease()人脸释放接口


7.6 人脸相关配置

人脸相关配置来自于百度云控制台下发的console_config.json文件,详情请参考Demo的BaseFragment类中的setFaceQualityConfig()方法和setFaceLivenessConfig()方法,不设置,将使用默认值。

8. OCR身份证识别相关接口

8.1 OCR身份证识别初始化接口

返回值API描述
voidinitAccessToken(OnResultListener listener, Context context)OCR初始化接口

入参说明

参数类型含义
contextContext上下文

onError回调参数说明:

参数类型含义
errorCodeint服务端返回错误码,详情见鉴权机制接口:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu
errorMessageString服务端返回错误信息,详情见鉴权机制接口:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu


8.2 OCR身份证识别接口

支持对二代居民身份证字段进行结构化识别,包括姓名、性别,调用参考OCR身份证识别接口文档。

返回值API描述
voidstartOcrRecognize(Context context, OcrConfig ocrConfig, OcrRecognizeCallback ocrRecognizeCallback)OCR识别接口

入参说明

参数类型含义
contextContext上下文
ocrConfigOcrConfigOCR配置类

OcrConfig配置字段说明

参数类型含义
ocrPageNavigationColorintOCR页面导航栏背景色,默认为白色
ocrPageTitleTextStringOCR标题内容,默认为"身份信息采集"
ocrPageTitleColorintOCR标题颜色,默认为黑色
ocrPageTopTextStringOCR顶部扫描文字,默认为"请将您本人的\n身份证人像面放入框内"
ocrPageTopTextColorintOCR 顶部扫描文字颜色,默认为白色

onError回调参数说明

参数类型含义
errorCodeint错误码服务端返回错误码,详情见在线身份证识别接口:https://ai.baidu.com/ai-doc/OCR/rk3h7xzck
errorMessageString回调结果Map服务端返回错误信息,详情见在线身份证识别接口:https://ai.baidu.com/ai-doc/OCR/rk3h7xzck


9. 代码混淆

-dontwarn com.baidu.idl.**
-keep class com.baidu.idl.** { *; }
-dontwarn com.baidu.vis.**
-keep class com.baidu.vis.** { *; }
-dontwarn com.baidu.liantian.**
-keep class com.baidu.liantian.** { *; }
-dontwarn com.baidu.protect.**
-keep class com.baidu.protect.** { *; }
-dontwarn com.baidu.ocr.**
-keep class com.baidu.ocr.** { *; }


10. 权限

名称说明必选
需要动态申请的权限

android.permission.CAMERA拍照权限
android.permission.RECORD_AUDIO录音权限(录制视频)
android.permission.READ_EXTERNAL_STORAGE读取手机外部存储权限(安全相关、OCR相关)
不需要动态申请的权限

android.permission.INTERNET允许访问网络
android.permission.ACCESS_NETWORK_STATE获取网络状态权限
android.permission.READ_PHONE_STATE允许访问电话状态权限
android.hardware.camera.autofocus允许相机对焦(OCR相关)
android.permission.GET_TASKS允许访问当前运行的任务信息 (安全相关)


11. 不使用OCR,只使用人脸相关能力

不使用OCR,可以删除ocr-ui.aar、aip.license,以及OCR相关代码。 OCR初始化代码如下图所示:

安卓11.1.png

OCR调用代码如下图所示:

安卓11.2.png

设置页面,关闭OCR运行Demo即可。

安卓11.3.png


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!