baiduFaceLive
来自于:开发者立即使用
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。
概述
baiduFaceLive 模块概述
本模块封装了百度开放平台的人脸识别离线采集客户端SDK(活体检测),可以在客户端方便快捷的接入人脸识别功能。
模块使用攻略
使用之前须从百度开放平台申请开发者账号并完成企业认证,获取 LicenseID和 LicenseFileName。百度开发平台控制台
使用此模块之前建议先配置config.xml文件,配置完毕,需通过云端编译生效,配置方法如下:
- 名称:baiduFaceLive
- 参数:LicenseID_iOS、LicenseFileName_iOS、LicenseID_Android、LicenseFileName_Android
- 配置示例:
<feature name="baiduFaceLive">
<param name="LicenseID_iOS" value="test-zhaofei-face-ios"/>
<param name="LicenseFileName_iOS" value="idl-license.face-ios"/>
<param name="LicenseID_Android" value="test-zhaofei-face-android"/>
<param name="LicenseFileName_Android" value="idl-license.face-android"/>
</feature>
License文件打包模块包需注意事项请参考License打包模块包注意事项,然后将制作好的授权模块包上传到自定义模块,添加到自己的App进行使用。
固件要求
Android:4.0.3及以上 iOS:8.0及以上
模块接口
initSdk
初始化sdk(必须执行)
initSdk({params}, callback(ret))
params
LicenseID_iOS:
- 类型:字符串型
- 描述:(必填项)iOS License ID
LicenseFileName_iOS:
- 类型:字符串型
- 描述:(必填项)iOS 授权文件(对应配套授权模块文件名称)
LicenseID_Android:
- 类型:字符串型
- 描述:(必填项)安卓 License ID
LicenseFileName_Android:
- 类型:字符串型
- 描述:(必填项)Android 授权文件(对应配套授权模块文件名称)
secType:
- 类型:数字型
- 描述:(可选项)设置图片加密类型,type=0 基于base64 加密;type=1 基于百度安全算法加密(当为1时,需要把加密文件打包到授权插件包里面idl-key.face-ios、idl-key.face-android)
- 默认值:0
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code : '',
msg : ''
}
示例代码
var demo = api.require('baiduFaceLive');
demo.initSdk({
LicenseID_Android: 'test-new-2020-face-android',
LicenseFileName_Android: 'idl-license.face-android',
LicenseID_iOS: 'test-new-2020-face-ios',
LicenseFileName_iOS: 'idl-license.face-ios',
}, function (ret, err) {
alert(JSON.stringify(ret) + " " + JSON.stringify(err));
});
可用性
iOS系统,Android系统
可提供的1.1.0及更高版本
openFaceDetectView
打开人脸识别界面
openFaceDetectView({params}, callback(ret))
params
rect:
- 类型:JSON 对象
- 默认值:见内部字段
- 描述:(可选项)浏览器窗口的位置和大小,设置margin后,在不同手机上面会保持与父页面的各方向边距一致,而中间区域会自动扩充。建议使用margin布局,可以完美适配带smartBar的手机。
- 内部字段:
{
x:0, //左上角x坐标,默认0
y:0, //左上角y坐标,默认0
w:320, //宽度,默认'auto',页面从x位置开始自动充满父页面宽度
h:480 //高度,默认'auto',页面从y位置开始自动充满父页面高度
marginLeft:0, //相对父页面左外边距的距离,默认0
marginTop:0, //相对父页面上外边距的距离,默认0
marginBottom:0, //相对父页面下外边距的距离,默认0
marginRight:0 //相对父页面右外边距的距离,默认0
}
fixedOn:
- 类型:字符串型
- 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window
fixed:
- 类型:布尔型
- 描述:(可选项)模块是否随所属 Window 或 Frame 滚动
- 默认值:true(不随之滚动)
defaultUI:
- 类型:布尔型
- 描述:(可选项)是否显示自带UI布局(true : 显示 false : 不显示)
- 默认值:true(显示)
uiType:
- 类型:数字型
- 描述:(可选项)UI类型(1:原UI样式,2:自带关闭按钮和输出提示信息的UI样式)
- 默认值:1
isShowRectLine:
- 类型:布尔型
- 描述:(可选项)是否隐藏识别区域的圆形边框(true : 显示 false : 隐藏)
- 默认值:false(隐藏)
blurnessValue:
- 类型:浮点型
- 描述:(可选项)设置图像模糊阀值 (0-1) 推荐小于0.7
- 默认值:0.5
brightnessValue:
- 类型:浮点型
- 描述:(可选项)设置亮度阀值 (0-100) 推荐大于40
- 默认值:40
cropFaceWidth:
- 类型:数字型
- 描述:(可选项)设置截取人脸图片宽度大小
- 默认值:480
cropFaceHeight:
- 类型:数字型
- 描述:(可选项)设置截取人脸图片高度大小
- 默认值:640
headPitchValue:
- 类型:数字型
- 描述:(可选项)设置头部姿态角度Pitch范围(-45,45),推荐-15-15
- 默认值:10
headRollValue:
- 类型:数字型
- 描述:(可选项)设置头部姿态角度Yaw范围(-45,45),推荐-15-15
- 默认值:10
headYawValue:
- 类型:数字型
- 描述:(可选项)设置头部姿态角度Roll范围(-45,45),推荐-15-15
- 默认值:10
minFaceSize:
- 类型:数字型
- 描述:(可选项)设置最小检测人脸阈值 (在图片人脸能够被检测到最小值)80-200, 越小越耗性能,推荐120-200
- 默认值:200
notFaceValue:
- 类型:浮点型
- 描述:(可选项)设置人脸检测精度阀值(0-1)
- 默认值:0.6
occlusionValue:
- 类型:浮点型
- 描述:(可选项)设置人脸遮挡阀值(0-1) 推荐小于0.5
- 默认值:0.5
isCheckQuality:
- 类型:布尔型
- 描述:(可选项)设置是否进行人脸图片质量检测(true:开启 false:关闭)
- 默认值:true(开启)
isSound:
- 类型:布尔型
- 描述:(可选项)设置是否开启声音播放(true:开启 false:关闭)
- 默认值:true(开启)
faceActionSum:
- 类型:数字型
- 描述:(可选项)人脸采集动作个数(只能选择1或者2个动作)
- 默认值:2
qualityLevel:
- 类型:数字型
- 描述:(可选项)质量等级(0:正常、1:宽松、2:严格、3:自定义)
- 默认值:0
qualityConfig:
- 类型:JSON型
- 描述:(可选项)通用质量等级参数配置(loose:宽松 normal :正常 strict:严格)
{
"loose": {
"minIllum": 30,
"maxIllum": 240,
"leftEyeOcclusion": 0.95,
"rightEyeOcclusion": 0.95,
"noseOcclusion": 0.95,
"mouseOcclusion": 0.95,
"leftContourOcclusion": 0.95,
"rightContourOcclusion": 0.95,
"chinOcclusion": 0.95,
"pitch": 30,
"yaw": 18,
"roll": 30,
"blur": 0.8
},
"normal": {
"minIllum": 40,
"maxIllum": 220,
"leftEyeOcclusion": 0.8,
"rightEyeOcclusion": 0.8,
"noseOcclusion": 0.8,
"mouseOcclusion": 0.8,
"leftContourOcclusion": 0.8,
"rightContourOcclusion": 0.8,
"chinOcclusion": 0.8,
"pitch": 20,
"yaw": 18,
"roll": 20,
"blur": 0.6
},
"strict": {
"minIllum": 60,
"maxIllum": 200,
"leftEyeOcclusion": 0.4,
"rightEyeOcclusion": 0.4,
"noseOcclusion": 0.4,
"mouseOcclusion": 0.4,
"leftContourOcclusion": 0.4,
"rightContourOcclusion": 0.4,
"chinOcclusion": 0.4,
"pitch": 15,
"yaw": 15,
"roll": 15,
"blur": 0.4
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
evenType : 'Tips', // Tips 提示信息|success 识别成功
message : '',//Tips 有值
data : { //base64图片 //success 有值
bestImage : '', //裁剪图片
srcImage : '', //原图
bestSecBase64 : '',//加密裁剪图片
srcSecBase64 : '',//加密原图
}
}
示例代码
var demo = api.require('baiduFaceLive');
demo.openFaceDetectView(function(ret, err){
if(ret.evenType=='success'){
//由于base64数据量大,请不要用JSON.stringify(ret)调试
alert(ret.data.bestImage);
}else{
api.toast({ msg : JSON.stringify(ret) +" "+JSON.stringify(err)});
}
});
Tips值列表
iOS | Android |
---|---|
建议略微抬头 | 未检测到人脸 |
建议略微低头 | 把脸移入框内 |
建议略微向右转头 | 手机拿近一点 |
建议略微向左转头 | 手机拿远一点 |
光线再亮些 | 建议略微抬头 |
把脸移入框内 | 建议略微低头 |
请保持不动 | 建议略微向左转头 |
左眼有遮挡 | 建议略微向右转头 |
右眼有遮挡 | 脸部有遮挡 |
鼻子有遮挡 | 光线再亮些 |
嘴巴有遮挡 | 请保持不动 |
左脸颊有遮挡 | 请正对手机 |
右脸颊有遮挡 | 检测超时 |
下颚有遮挡 | 眨眨眼 |
手机拿远一点 | 请眨眨左边眼睛 |
手机拿近一点 | 请眨眨右边眼睛 |
把脸移入框内 | 张张嘴 |
眨眨眼 | 向左缓慢转头 |
张张嘴 | 向右缓慢转头 |
向右缓慢转头 | 摇摇头 |
向左缓慢转头 | 缓慢抬头 |
缓慢抬头 | 缓慢低头 |
缓慢低头 | 非常好 |
摇摇头 | |
非常好 | |
验证失败 | |
检测超时 |
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
continueFaceDetect
识别结果处理后继续人脸识别(识别界面未关闭时调用)
continueFaceDetect(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code : '',
msg : ''
}
示例代码
var demo = api.require('baiduFaceLive');
demo.continueFaceDetect(function(ret, err){
//alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeFaceDetectView
关闭人脸识别界面
closeFaceDetectView(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code : '',
msg : ''
}
示例代码
var demo = api.require('baiduFaceLive');
demo.closeFaceDetectView(function(ret, err){
//alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
showTopText
设置顶部显示内容(uiType类型为2有效)
showTopText({params}, callback(ret))
params
content:
- 类型:字符串型
- 描述:(可选项)顶部文字内容
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code : '',
msg : ''
}
示例代码
var demo = api.require('baiduFacePlus');
demo.showTopText({
content: '我是自定义内容'
},function(ret, err){
api.toast({ msg : JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
showButtomText
设置底部显示内容(uiType类型为2有效)
showButtomText({params}, callback(ret))
params
content:
- 类型:字符串型
- 描述:(可选项)底部文字内容
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code : '',
msg : ''
}
示例代码
var demo = api.require('baiduFacePlus');
demo.showButtomText({
content: '我是自定义内容'
},function(ret, err){
api.toast({ msg : JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本