bdFace

来自于:官方

概述

bdFace 封装了百度人脸识别SDK,此版SDK包含人脸检测、活体识别等功能

license文件用于SDK离线功能使用,在您的申请人脸SDK的后台页面,全局->产品服务->人脸识别->离线采集SDK管理,不明之处请参考百度人脸识别官网

iOS license文件

license文件需要申请,目的是作为sdk校验开发者的使用合法性,license文件未放置会导致没法使用sdk,一般应先申请license文件

资源包文件制作方法如下:

下载 bdFaceAppendix 模块 zip 包并解压,把 zip 包内 target 目录下的 license文件替换为自己申请的license文件。然后重新压缩为 zip 包文件上传自定义模块,云编译时勾选该模块。

android配置license文件:

(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包。

使用此模块之前建议先配置-iOS config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 名称:bdFace
  • 参数:faceLicenseName、faceLicenseSuffic、faceLicenseID、licensePath
  • 配置示例:
 <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管理,如果没有的话就新建一个

使用此模块之前建议先配置-Android config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 名称:bdFace
  • 参数:licenseID_android、licenseName_android
  • 配置示例:
 <feature name="bdFace">
   <param name="licenseID_android" value="" />
   <param name="licenseName_android" value="" />
 </feature>
  • 字段描述:

licenseID_android:(必须配置)人脸licenseID

licenseName_android:(必须配置)android配置license文件步骤中配置的文件名称,在后台 -> 产品服务 -> 人脸识别 -> 离线采集SDK管理

注意:本模块 iOS 平台上最低适配系统版本为 iOS 8.0

注意:license和Bundle Identifier是一一对应关系,填错了会导致SDK不能用

configuration

人脸功能配置

configuration({params})

params

minFaceSize:

  • 类型:数字类型
  • 描述:(可选项)最小检测人脸阈值
  • 默认:200

cropFaceSizeWidth:

  • 类型:数字类型
  • 描述:(可选项)截取人脸图片大小
  • 默认:400

occluThreshold:

  • 类型:数字类型
  • 描述:(可选项)人脸遮挡阀值
  • 默认:0.5

illumThreshold:

  • 类型:数字类型
  • 描述:(可选项)亮度阀值
  • 默认:40

blurThreshold:

  • 类型:数字类型
  • 描述:(可选项)图像模糊阀值
  • 默认:0.7

eulurAngle:

  • 类型:JSON 类型
  • 描述:(可选项)头部姿态角度
  • 内部字段:
{
    pitch: 10,                              //(可选项)数字类型;默认值:10
    yaw: 10,                              //(可选项)数字类型;默认值:10
    roll: 10,                            //(可选项)数字类型;默认值:10
}

isCheckQuality:

  • 类型:布尔类型
  • 描述:(可选项)是否进行人脸图片质量检测
  • 默认:true

timeout:

  • 类型:数字类型
  • 描述:(可选项)超时时间
  • 默认:10

threshold:

  • 类型:数字类型
  • 描述:(可选项)人脸检测精度阀值
  • 默认:0.6

maxCropImageNum:

  • 类型:数字类型
  • 描述:(可选项)照片采集张数
  • 默认:1

示例代码

var bdFace = api.require('bdFace');
bdFace.configuration({
                      minFaceSize : 200
                      });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

livenessAction

进行活体检测

livenessAction({params}, callback(ret, err))

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)活体检测视频流的位置及尺寸
  • 内部字段:
{
    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:

  • 类型:数字数组类型
  • 描述:(可选项)活体检测动作
  • 取值范围:0/眨眼,1/张嘴,2/向右摇头,3/向左摇头,4,抬头,5,低头,6/摇头,7/没有动作
  • 示例:
    [1,2,3,4,5]
    

isByOrder:

  • 类型:布尔类型
  • 描述:(可选项)是否按顺序进行活体动作
  • 默认:true

numOfLiveness:

  • 类型:数字类型
  • 描述:(可选项)活体动作数目(actions为空时起作用)
  • 默认:3

previewRect:

  • 类型:JSON 类型
  • 描述:(可选项)人脸检测区域大小
  • 内部字段:
{
     x: 50,   //(可选项)数字类型;人脸检测区域上角的 x 坐标;默认值:50
    y: 0,   //(可选项)数字类型;(可选项)人脸检测区域左上角的 y 坐标;默认值:0
    w: 200,  //(可选项)数字类型;人脸检测区域的宽度;默认值:
    h: 200   //(可选项)数字类型;人脸检测区域的高度;默认值:
}

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)摄像头的预览视图添加到指定窗口的名字
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔类型
  • 描述:(可选项)摄像头的预览视图是否随所属 window 或 frame 滚动
  • 默认:true(不随之滚动)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   status:0,           //数字类型;检测结果
   bestImagePaths:[],  //数组类型;status为0返回
   liveEyePath:'',     //字符类型;status为0返回
   liveMouthPath:'',   //字符类型;status为0返回
   yawRightPath:'',    //字符类型;status为0返回
   yawLeftPath:'',     //字符类型;status为0返回
   pitchUpPath:'',     //字符类型;status为0返回
   pitchDownPath:''    //字符类型;status为0返回          
}

检测结果参考 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

人脸图像采集

detectSilent({params}, callback(ret, err))

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)活体检测视频流的位置及尺寸
  • 内部字段:
{
    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:

  • 类型:JSON 类型
  • 描述:(可选项)人脸检测区域大小
  • 内部字段:
{
     x: 50,   //(可选项)数字类型;人脸检测区域上角的 x 坐标;默认值:50
    y: 50,   //(可选项)数字类型;(可选项)人脸检测区域左上角的 y 坐标;默认值:50
    w: 200,  //(可选项)数字类型;人脸检测区域的宽度;默认值:200
    h: 200   //(可选项)数字类型;人脸检测区域的高度;默认值:200
}

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)摄像头的预览视图添加到指定窗口的名字
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔类型
  • 描述:(可选项)摄像头的预览视图是否随所属 window 或 frame 滚动
  • 默认:true(不随之滚动)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   status:0,           //数字类型;检测结果
   bestImagePaths:[],  //数组类型;status为0返回         
}

检测结果参考 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

关闭活体检测页面

closeLiveness()

示例代码

var bdFace = api.require('bdFace');
bdFace.closeLiveness();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hideLiveness

隐藏活体检测页面

hideLiveness()

示例代码

var bdFace = api.require('bdFace');
bdFace.hideLiveness();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

showLiveness

显示活体检测页面

showLiveness()

示例代码

var bdFace = api.require('bdFace');
bdFace.showLiveness();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeDetect

关闭人脸图像采集页面

closeDetect()

示例代码

var bdFace = api.require('bdFace');
bdFace.closeDetect();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hideDetect

隐藏人脸图像采集页面

hideDetect()

示例代码

var bdFace = api.require('bdFace');
bdFace.hideDetect();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

showDetects

显示人脸图像采集页面

showDetects()

示例代码

var bdFace = api.require('bdFace');
bdFace.showDetects();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本