bdFace 封装了百度人脸识别SDK,此版SDK包含人脸检测、活体识别等功能
license文件用于SDK离线功能使用,在您的申请人脸SDK的后台页面,全局->产品服务->人脸识别->离线采集SDK管理,不明之处请参考百度人脸识别官网
iOS license文件
license文件需要申请,目的是作为sdk校验开发者的使用合法性,license文件未放置会导致没法使用sdk,一般应先申请license文件
资源包文件制作方法如下:
下载 bdFaceAppendix 插件 zip 包并解压,把 zip 包内 target 目录下的 license文件替换为自己申请的license文件。然后重新压缩为 zip 包文件上传自定义插件,应用打包时勾选该插件。
(1) 下载 bdFaceAppendix 插件zip包并解压(解压后会看到一个bdFaceAppendix文件夹) (2) 将文件夹中的source目录下的faceLicense.jar解压(会看到一个\assets\idl-license.face-android目录) (3) 从百度后台下载license文件替换掉第(2)步解压出来的idl-license.face-android文件,并重新将assets打成jar包(命名成faceLicense.jar),替换掉之前的jar包。
<feature name="bdFace">
<param name="faceLicenseName" value="" />
<param name="faceLicenseSuffic" value="" />
<param name="faceLicenseID" value="" />
</feature>
faceLicenseName:(必须配置)人脸license文件名
faceLicenseSuffic:(必须配置)人脸license后缀
faceLicenseID:(必须配置)您申请的应用名称(appname)+「-face-ios」后缀,如申请的应用名称(appname)为test123,则此处填写test123-face-ios,在后台 -> 产品服务 -> 人脸识别 -> 离线采集SDK管理,如果没有的话就新建一个
<feature name="bdFace">
<param name="licenseID_android" value="" />
<param name="licenseName_android" value="" />
</feature>
licenseID_android:(必须配置)人脸licenseID
licenseName_android:(必须配置)android配置license文件步骤中配置的文件名称,在后台 -> 产品服务 -> 人脸识别 -> 离线采集SDK管理
注意:license和Bundle Identifier是一一对应关系,填错了会导致SDK不能用
人脸功能配置
configuration({params})
minFaceSize:
cropFaceSizeWidth:
occluThreshold:
illumThreshold:
blurThreshold:
eulurAngle:
{
pitch: 10, //(可选项)数字类型;默认值:10
yaw: 10, //(可选项)数字类型;默认值:10
roll: 10, //(可选项)数字类型;默认值:10
}
isCheckQuality:
checkQualityLevel:
timeout:
threshold:
maxCropImageNum:
maxCropImageNum:
sound:
var bdFace = api.require('bdFace');
bdFace.configuration({
minFaceSize : 200
});
iOS系统,Android系统
可提供的1.0.0及更高版本
进行活体检测
livenessAction({params}, callback(ret, err))
rect:
{
x: 0, //(可选项)数字类型;摄像头的预览视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;(可选项)摄像头的预览视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;摄像头的预览视图的宽度;支持'auto',android不支持'auto';默认值:所属的 Window 或 Frame 的宽度
h: 200 //(可选项)数字类型;摄像头的预览视图的高度;支持'aoto',android不支持'auto';默认值:所属的 Window 或 Frame 的高度
}
actions:
[1,2,3,4,5]
isByOrder:
numOfLiveness:
previewRect:
{
x: 50, //(可选项)数字类型;人脸检测区域上角的 x 坐标;默认值:50
y: 0, //(可选项)数字类型;(可选项)人脸检测区域左上角的 y 坐标;默认值:0
w: 200, //(可选项)数字类型;人脸检测区域的宽度;默认值:
h: 200 //(可选项)数字类型;人脸检测区域的高度;默认值:
}
fixedOn:
fixed:
ret:
{
status:0, //数字类型;检测结果
bestImagePaths:[], //数组类型;status为0返回(1.0.3以及之后版本插件 android不支持)
liveEyePath:'', //字符类型;status为0返回(1.0.3以及之后版本插件 android不支持)
liveMouthPath:'', //字符类型;status为0返回(1.0.3以及之后版本插件 android不支持)
yawRightPath:'', //字符类型;status为0返回(1.0.3以及之后版本插件 android不支持)
yawLeftPath:'', //字符类型;status为0返回 (1.0.3以及之后版本插件 android不支持)
pitchUpPath:'', //字符类型;status为0返回 (1.0.3以及之后版本插件 android不支持)
pitchDownPath:'', //字符类型;status为0返回 (1.0.3以及之后版本插件 android不支持)
bestImageStr:'', //字符串类型,status为0返回 质量最优的图片base64字符串 (1.0.3以及之后版本插件 android返回)
imageStrs:[ //数组类型;status为0返回 所有图片base64字符串(1.0.3以及之后版本插件 android返回)
{key:'', //字符串类型
value:'',}, //字符串类型;图片base64字符串
],
}
检测结果参考 0:成功 1:头部偏低 2:头部偏高 3:头部偏左 4:头部偏右 5:光照不足 6:没有检测到人脸 9:图像模糊 10:左眼有遮挡 11:右眼有遮挡 12:鼻子有遮挡 13:嘴巴有遮挡 14:左脸颊有遮挡 15:右脸颊有遮挡 16:下颚有遮挡 17:太近 18:太远 19:出框 20:眨眨眼 21:张大嘴 22:向左摇头 23:向右摇头 24:向上抬头 25:向下低头 26:摇摇头 27:完成一个活体动作 28:verifyInitError 29:verifyDecryptError 30:verifyInfoFormatError 31:verifyExpired 32:verifyMissRequiredInfo 33:verifyInfoCheckError 34:verifyLocalFileError 35:verifyRemoteDataError 36:超时 37:conditionMeet
var bdFace= api.require('bdFace');
bdFace.livenessAction({
actions:[0,1,2,3]
},function(ret, err){
console.log(JSON.stringify(ret))
});
iOS系统,Android系统
可提供的1.0.0及更高版本
人脸图像采集
detectSilent({params}, callback(ret, err))
rect:
{
x: 0, //(可选项)数字类型;摄像头的预览视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;(可选项)摄像头的预览视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 300, //(可选项)数字类型;摄像头的预览视图的宽度;支持'auto',android不支持'auto';默认值:所属的 Window 或 Frame 的宽度
h: 200 //(可选项)数字类型;摄像头的预览视图的高度;支持'auto',android不支持'auto';默认值:所属的 Window 或 Frame 的高度
}
previewRect:
{
x: 50, //(可选项)数字类型;人脸检测区域上角的 x 坐标;默认值:50
y: 50, //(可选项)数字类型;(可选项)人脸检测区域左上角的 y 坐标;默认值:50
w: 200, //(可选项)数字类型;人脸检测区域的宽度;默认值:200
h: 200 //(可选项)数字类型;人脸检测区域的高度;默认值:200
}
fixedOn:
fixed:
ret:
{
status:0, //数字类型;检测结果
bestImagePaths:[], //数组类型;status为0返回 (1.0.3以及以后版本 android不支持)
bestImageStr:'', //字符串类型,status为0返回 质量最优的图片base64字符串 (1.0.3以及之后版本插件 android返回)
imageStrs:[ //数组类型;status为0返回 所有图片base64字符串(1.0.3以及之后版本插件 android返回)
{key:'', //字符串类型
value:'',}, //字符串类型;图片base64字符串
],
}
检测结果参考 0:成功 1:头部偏低 2:头部偏高 3:头部偏左 4:头部偏右 5:光照不足 6:没有检测到人脸 9:图像模糊 10:左眼有遮挡 11:右眼有遮挡 12:鼻子有遮挡 13:嘴巴有遮挡 14:左脸颊有遮挡 15:右脸颊有遮挡 16:下颚有遮挡 17:太近 18:太远 19:出框 20:眨眨眼 21:张大嘴 22:向左摇头 23:向右摇头 24:向上抬头 25:向下低头 26:摇摇头 27:完成一个活体动作 28:verifyInitError 29:verifyDecryptError 30:verifyInfoFormatError 31:verifyExpired 32:verifyMissRequiredInfo 33:verifyInfoCheckError 34:verifyLocalFileError 35:verifyRemoteDataError 36:超时 37:conditionMeet
var bdFace= api.require('bdFace');
bdFace.detectSilent(function(ret, err) {
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭活体检测页面
closeLiveness()
var bdFace = api.require('bdFace');
bdFace.closeLiveness();
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏活体检测页面
hideLiveness()
var bdFace = api.require('bdFace');
bdFace.hideLiveness();
iOS系统,Android系统
可提供的1.0.0及更高版本
显示活体检测页面
showLiveness()
var bdFace = api.require('bdFace');
bdFace.showLiveness();
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭人脸图像采集页面
closeDetect()
var bdFace = api.require('bdFace');
bdFace.closeDetect();
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏人脸图像采集页面
hideDetect()
var bdFace = api.require('bdFace');
bdFace.hideDetect();
iOS系统,Android系统
可提供的1.0.0及更高版本
显示人脸图像采集页面
showDetects()
var bdFace = api.require('bdFace');
bdFace.showDetects();
iOS系统,Android系统
可提供的1.0.0及更高版本