UIBdFace
概述
UIBdFace 封装了百度人脸识别SDK,此版SDK包含人脸检测、活体识别等功能,本模块自带UI,方便快速集成。
注意本模块在iPhone设备上仅支持 iOS10.0 及以上版本。
license文件用于SDK离线功能使用,在您的申请人脸SDK的后台页面,全局->产品服务->人脸识别->离线采集SDK管理
iOS license文件
license文件需要申请,目的是作为sdk校验开发者的使用合法性,license文件未放置会导致没法使用sdk,一般应先申请license文件
资源包文件制作方法如下:
下载 UIBdFaceAppendix 模块 zip 包并解压,把 zip 包内 target 目录下的 license文件替换为自己申请的license文件。然后重新压缩为 zip 包文件上传自定义模块,云编译时勾选该模块。
android配置license文件:
(1) 下载 bdFaceAppendix模块zip包并解压(解压后会看到一个UIBdFaceAppendix文件夹) (2) 将文件夹中的source目录下的license.jar解压(会看到一个\assets\目录) (3) 从百度后台下载license文件替换掉第(2)步解压出来的\assets\目录中文件,并重新将assets打成jar包(命名成license.jar),替换掉之前的jar包。 (4)UIBdFaceAppendix文件夹重新打包为zip文件,以自定义模块方式加入项目
使用此模块之前建议先配置-iOS config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:
- 名称:UIBdFace
- 参数:faceLicenseName、faceLicenseSuffic、faceLicenseID、licensePath
- 配置示例:
<feature name="UIBdFace">
<param name="faceLicenseName_iOS" value="" />
<param name="faceLicenseSuffic_iOS" value="" />
<param name="faceLicenseID_iOS" value="" />
<param name="licenseID_android" value="" />
<param name="licenseName_android" value="" />
</feature>
- 字段描述:
faceLicenseName_iOS:(必须配置)iOS人脸license文件名
faceLicenseSuffic_iOS:(必须配置)iOS人脸license后缀
faceLicenseID_iOS:(必须配置)您申请的应用名称(appname)+「-face-ios」后缀,如申请的应用名称(appname)为test123,则此处填写test123-face-ios,在后台 -> 产品服务 -> 人脸识别 -> 离线采集SDK管理,如果没有的话就新建一个
licenseID_android:(必须配置)android人脸licenseID
licenseName_android:(必须配置)android配置license文件步骤中配置的文件名称,在后台 -> 产品服务 -> 人脸识别 -> 离线采集SDK管理
注意:license和Bundle Identifier是一一对应关系,填错了会导致SDK不能用
注意:本模块 iOS 平台上最低适配系统版本为 iOS 9.0
configuration
人脸功能配置
configuration({params})
params
minFaceSize:
- 类型:数字类型
- 描述:(可选项)最小检测人脸阈值
- 默认:200
cropFaceSizeWidth:
- 类型:数字类型
- 描述:(可选项)截取人脸图片大小
- 默认:400
occluThreshold:
- 类型:数字类型
- 描述:(可选项)人脸遮挡阀值
- 默认:0.5
illumThreshold:
- 类型:数字类型
- 描述:(可选项)亮度阀值 iOS 1.0.3版本不再支持该参数
- 默认:40
blurThreshold:
- 类型:数字类型
- 描述:(可选项)图像模糊阀值
- 默认:0.7
eulurAngle:
- 类型:JSON 类型
- 描述:(可选项)头部姿态角度
- 内部字段:
{
pitch: 10, //(可选项)数字类型;默认值:10
yaw: 10, //(可选项)数字类型;默认值:10
roll: 10, //(可选项)数字类型;默认值:10
}
isCheckQuality:
- 类型:布尔类型
- 描述:(可选项)是否进行人脸图片质量检测,1.0.1之后不再支持此参数
- 默认:true
timeout:
- 类型:数字类型
- 描述:(可选项)超时时间
- 默认:10
threshold:
- 类型:数字类型
- 描述:(可选项)人脸检测精度阀值
- 默认:0.6
maxCropImageNum:
- 类型:数字类型
- 描述:(可选项)照片采集张数
- 默认:1
sound:
- 类型:布尔类型
- 描述:(可选项)是否开启提示音
- 默认:true
示例代码
var UIBdFace = api.require('UIBdFace');
UIBdFace.configuration({
minFaceSize : 200
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
openLivenessView
打开活体检测页面
openLivenessView({params}, callback(ret))
params
actions:
- 类型:数字数组类型
- 描述:(可选项)活体检测动作
- 取值范围:0/眨眼,1/张嘴,2/向右摇头,3/向左摇头,4,抬头,5,低头,6/摇头(1.0.2以及以后版本不再支持),7/没有动作(1.0.9以及以后版本不再支持)
- 示例:
[1,2,3,4,5]
isByOrder:
- 类型:布尔类型
- 描述:(可选项)是否按顺序进行活体动作
- 默认:true
numOfLiveness:
- 类型:数字类型
- 描述:(可选项)活体动作数目(actions为空时起作用)
- 默认:3
callback(ret)
ret:
- 类型:JSON 对象
- 说明:status为0检测成功,返回检测结果并关闭检测页面
- 内部字段:
{
status:0, //数字类型;检测结果
bestImageStr:'', //字符串类型,status为0 android返回 质量最优的图片base64字符串,iOS端返回sdk加密采集到的矫正,调整宽高图片base64字符串 (1.0.2以及之后版本模块 android返回,1.0.9以及之后版本模块 iOS返回)
bestImagePaths:[], //数组类型;status为0返回(1.0.2以及之后版本模块 android不支持) ** 1.0.9版本遗弃该返回值**
liveEyePath:'', //字符类型;status为0返回(1.0.2以及之后版本模块 android不支持) ** 1.0.9版本遗弃该返回值**
liveMouthPath:'', //字符类型;status为0返回(1.0.2以及之后版本模块 android不支持)** 1.0.9版本遗弃该返回值**
yawRightPath:'', //字符类型;status为0返回(1.0.2以及之后版本模块 android不支持)** 1.0.9版本遗弃该返回值**
yawLeftPath:'', //字符类型;status为0返回 (1.0.2以及之后版本模块 android不支持)** 1.0.9版本遗弃该返回值**
pitchUpPath:'', //字符类型;status为0返回 (1.0.2以及之后版本模块 android不支持)** 1.0.9版本遗弃该返回值**
pitchDownPath:'', //字符类型;status为0返回 (1.0.2以及之后版本模块 android不支持)** 1.0.9版本遗弃该返回值**
imageStrs:[ //数组类型;status为0返回 所有图片base64字符串(1.0.8以及之后版本模块 android不支持)** 1.0.9版本遗弃该返回值**
{key:'', //字符串类型
value:'',}, //字符串类型;图片base64字符串
],
}
检测结果参考 0:成功 1:出框 2:没有检测到人脸 4:光照不足 5:图像模糊 6:太远 7:太近 8:头部偏低 9:头部偏高 10:头部偏左 11:头部偏右 12:左眼有遮挡 13:右眼有遮挡 14:鼻子有遮挡 15:嘴巴有遮挡 16:左脸颊有遮挡 17:右脸颊有遮挡 18:下颚有遮挡 19:超时 20:眨眨眼 21:张大嘴 22:向右摇头 23:向左摇头 24:向上抬头 25:向下低头 26:摇摇头 27:完成一个活体动作 28:当前活体动作超时 31:鉴权失败
示例代码
var UIBdFace= api.require('UIBdFace');
UIBdFace.openLivenessView({
actions:[0,1,2,3]
},function(ret){
console.log(JSON.stringify(ret))
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
openDetectionView
打开人脸图像采集页面
openDetectionView(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 说明:status为0检测成功,返回采集结果并关闭检测页面
- 内部字段:
{
status:0, //数字类型;检测结果
bestImagePaths:[], //数组类型;status为0返回 (1.0.2以及以后版本 android不支持)** 1.0.9版本遗弃该返回值**
bestImageStr:'', //字符串类型,status为0返回 质量最优的图片base64字符串,iOS端返回sdk加密采集到的矫正,调整宽高图片base64字符串 (1.0.2以及之后版本模块 android返回,1.0.9以及之后版本模块 iOS返回)
imageStrs:[ //数组类型;status为0返回 所有图片base64字符串(1.0.8以及之后版本模块 android不支持)** 1.0.9版本遗弃该返回值**
{key:'', //字符串类型
value:'',}, //字符串类型;图片base64字符串
],
}
检测结果参考 0:成功 1:出框 2:没有检测到人脸 4:光照不足 5:图像模糊 6:太远 7:太近 8:头部偏低 9:头部偏高 10:头部偏左 11:头部偏右 12:左眼有遮挡 13:右眼有遮挡 14:鼻子有遮挡 15:嘴巴有遮挡 16:左脸颊有遮挡 17:右脸颊有遮挡 18:下颚有遮挡 19:超时 20:鉴权失败
示例代码
var UIBdFace= api.require('UIBdFace');
UIBdFace.openDetectionView(function(ret) {
console.log(JSON.stringify(ret))
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeLivenessView
关闭活体检测页面
closeLivenessView()
示例代码
var UIBdFace = api.require('UIBdFace');
UIBdFace.closeLivenessView();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeDetectionView
关闭人脸图像采集页面
closeDetectionView()
示例代码
var UIBdFace = api.require('UIBdFace');
UIBdFace.closeDetectionView();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本