上云无忧 > 文档中心 > 百度智能云人脸实名认证APP端解决方案(Android)
人脸识别
百度智能云人脸实名认证APP端解决方案(Android)

文档简介:
所属平台 Android; 提交日期 2021-12-8; 名镜方案 5.0.0; 系统支持 android 4.4+; lib-logic.aar 1.0.0 名镜SDK,业务逻辑封装; faceplatform-ui.aar 5.0.1 人脸SDK的UI层,封装采集和活体UI等功能,以及各平台so库; lib-liantian.aar 3.5.9.0.1 安全SDK; ocr_ui.aar 1.1.1 百度OCR身份识别库;
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

1. 文档说明

文档名称 人脸实名认证APP5.0方案集成文档
所属平台 Android
提交日期 2021-12-8

2. 版本说明

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

3. SDK说明

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

4. Demo运行

4.1 配置包名和签名

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

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填在如下地方:

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

5. SDK集成

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

6. 授权文件、加密文件

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

7. 人脸相关接口

7.1 初始化接口

初始化接口调用

返回值 API 描述
void init(Context context, String licenseKey, String licenseName,LogicInitCallback logicInitCallback) 人脸初始化接口

入参说明

参数 类型 说明
context Context 上下文
licenseKey String 授权Key
licenseName String 授权文件名称

onCallback回调说明

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

resultCode错误码说明

resultCode resultMsg
1000 成功
1001 License未初始化
1002 License数据解密失败
1003 Licesen数据格式错误
1004 License-Key校验错误
1005 算法ID校验错误
1006 MD5校验错误
1007 设备ID校验错误
1008 包名(应用名校验错误)
1009 过期时间不正确
1010 功能未授权
1011 授权已过期
1012 本地文件读取失败
1013 远程数据拉取失败
1014 本地时间校验错误

7.2 实名认证接口

基于姓名和身份证号,调取公安权威数据源人脸图,将当前获取的人脸图片,与公安数据源人脸图进行对比,得出比对分数,并基于此进行业务判断是否为同一人。

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

返回值 API 描述
void startFaceRecognize(Context context, Map params, LogicServiceCallbck logicServiceCallbck) 实名认证接口

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

参数 类型 说明 必选
access_token String 需要APP服务端通过AK、SK获取,参考 https://ai.baidu.com/docs#/Auth/top
name String 姓名(需要是 utf8 编码)
id_card_number String 身份证件号
plan_id String 在控制台配置的方案Id
verify_type int 身份证类型(默认为0)0:大陆,1:港澳,2:外国,3:定居国外的中国护照
quality_control String 质量控制参数 NONE: 不进行控制 LOW:较低的质量要求 NORMAL: 一般的质量要求 HIGH: 较高质量要求 默认为NONE
liveness_control String 活体控制参数 NONE: 不进行控制 LOW:较低的活体要求(高通过率 低攻击拒绝率) NORMAL: 一般的活体要求(平衡的攻击拒绝率, 通过率) HIGH: 较高的活体要求(高攻击拒绝率 低通过率) 默认为NORMAL

onCallback回调说明

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

resultMap key值列表说明:

Key值 类型 含义
resultMsg String 详情见resuultCode错误码说明
data String 服务端返回结果json,只有错误码为0时会返回 此字段,具体内容可以参考实名认证(V4)接口:https://ai.baidu.com/ai-doc/FACE/Cktmsru8w

resultCode和resultMsg说明

resultCode resultMsg
0 成功
-101 已有采集流程运行中
-102 采集流程取消
-103 安全SDK未初始化
-104 未同意隐私协议
-105 安全模块加载失败
-106 网络异常
-201 风控验证失败
-301 云端验证异常
-303 视频录制错误
-304 线程异常
-305 线筛选图片异常
-306 采集前内部异常
-307 活体验证步骤异常
-308 预览异常
-309 采集后内部异常
-310 摄像头调起失败
-401 超时,用户取消采集流程
-402 炫彩异常
-403 活体分数异常
-404 活体分数异常
-1001 网络异常
-1002 accessToken参数不合法
-1003 姓名参数不合法
-1004 证件号码参数不合法
-1005 安全模块未下载成功

7.3 活体检测接口

包含本地活体加云端活体,本地活体分静默活体、炫彩活体、动作活体三种,云端活体可以判断图片中的人脸是否为二次翻拍以及是否为合成图攻击。

返回值 API 描述
void startFaceLiveness(Context context, Map params, LogicServiceCallbck logicServiceCallbck) 活体检测接口

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

参数 类型 说明 必选
access_token String 需要APP服务端通过AK、SK获取,参考 https://ai.baidu.com/docs#/Auth/top

onCallback回调说明

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

resultMap key值列表说明:

Key值 类型 含义
resultMsg String 详情见resuultCode错误码说明
data String 服务端返回结果json,只有错误码为0时会返回 此字段,具体内容可以参考实名认证(V4)接口:https://ai.baidu.com/ai-doc/FACE/Tktmssunb

7.4 人脸采集接口

包含本地质量和本地活体,本地质量可以确保采集到的人脸图像符合各条件校验(满足姿态角、光照、模糊度、遮挡等校验),本地活体分静默活体、炫彩活体、动作活体三种,此接口最终采集到的数据经过加密处理,需要配合开放平台接口使用。人脸对比功能,需要此接口配合AI开放平台人脸对比(v4)接口使用,人脸对比(v4)接口:https://ai.baidu.com/ai-doc/FACE/Oktmssfse 。

返回值 API 描述
void startFaceCollect(Context context, LogicServiceCallbck logicServiceCallbck) 人脸采集接口

onCallback回调说明

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

resultMap key值列表说明:

Key值 类型 含义
resultMsg String 详情见resuultCode错误码说明
sKey String 安全相关:sKey
xDeviceId String 安全相关:xDeviceId
data String 安全相关数据

7.5 人脸释放接口

人脸释放接口调用

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

7.6 人脸相关配置

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

8. OCR相关接口

8.1 OCR初始化接口

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

入参说明

参数 类型 含义
context Context 上下文

onError回调参数说明:

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

8.2 OCR识别接口

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

入参说明

参数 类型 含义
context Context 上下文
ocrConfig OcrConfig OCR配置类

OcrConfig配置字段说明

参数 类型 含义
ocrPageNavigationColor int OCR页面导航栏背景色,默认为白色
ocrPageTitleText String OCR标题内容,默认为"身份信息采集"
ocrPageTitleColor int OCR标题颜色,默认为黑色
ocrPageTopText String OCR顶部扫描文字,默认为"请将您本人的\n身份证人像面放入框内"
ocrPageTopTextColor int OCR 顶部扫描文字颜色,默认为白色

onError回调参数说明

参数 类型 含义
errorCode int 错误码 服务端返回错误码,详情见在线身份证识别接口:https://ai.baidu.com/ai-doc/OCR/rk3h7xzck
errorMessage String 回调结果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初始化代码如下图所示:

OCR调用代码如下图所示:

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

相似文档
  • 所属平台 iOS; 提交日期 2021-12-3; 名镜项目 5.0.0; 系统支持 iOS 9.0 +; BDFaceBaseKit.framework 5.0.0 人脸采集SDK 静态库; AipOcrSdk.framework 1.1.0 OCR识别SDK 动态库; AipBase.framework 1.0.0 基础工具类SDK 动态库;
  • 现在,人脸识别技术被广泛应用在金融支付、用户注册、人脸登录等业务场景中。技术的进步方便用户的同时,黑灰产产业也开始对这些场景产生觊觎。并通过屏幕攻击、照片、纸张、以及面具、头模等方式进行非法攻击。随着黑产技术的进步,更是出现了通过自动化脚本直接攻击云端API、ROM注入、视频劫持替换、批量虚拟机、病毒侵入等新型攻击手段。使现有的人脸识别方案面临着巨大的安全挑战。
  • 文档将帮助您完成H5实名认证方案的创建及接入全流程。 一、 准备工作: 在正式集成前,需要做一些准备工作,完成一些账号、应用及方案配置,具体如下: Step1: 注册成为开发者: 在使用百度人脸实名认证方案之前,首先需注册百度智能云账号,账号注册方式请参考账号注册指南。
  • 一、方案功能接口 1.获取verify_token接口: 本接口为H5实名认证方案的verify_token获取接口,利用所获取的verify_token进行实名认证流程的有效期为2小时。 在线调试: 您可以在 API Explorer 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
  • 百度为为方便开发者使用实名认证方案,推出APP端和H5端实名认证的SaaS方案,若您想直接使用百度提供的SaaS服务,可以点击这里进行查看 如果您由于安全考虑或业务需要决定不使用百度提供的SDK或者H5页面,我们已经开放了身份识别、人脸实名认证、视频活体检测等底层API,您可以根据您的业务情况直接接入相关的API 。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部