更新记录

2.27(2023-11-15)

修复横屏debug下 框子先是不正确的问题

2.26(2023-10-25)

删除ios中可能跟其他插件冲突的逻辑代码

2.25(2023-08-23)

android加入下巴遮挡等参数配置的设置

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:11 - 17

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


官方文档

  • SDK的授权类型分为「试用版」和「正式版」,自您申请SDK完毕后,默认为试用版,试用版存在一定的授权有效期,供您测试使用。 您可以点击申请正式版,提交即将发布的产品信息,即可获得永久免费的SDK授权。(转自官方)

百度人脸插件2.0正式发布 使用的最新百度SDK4.1

Android下载体验

1.人脸区域自动裁剪几乎无黑边!

2.相机全景图同步返回!

3.最新加入口罩模式,带着口罩也可完成采集!

4.参数设置更丰富!

5.底部加入可更换修饰图片,全面屏样式更美观!

6.更新迭代更及时!发现问题及时修复!老版功能逐步优化迭代上线

点击移步新版 《人脸插件4.0》

人脸插件4.0正式发布

1.支持取景预览界面自定义

2.集成百度人脸能力

3.适配前后摄像头

4.适配横屏采集

5.适配多种 android 定制终端(不适配的需联系作者定制 QQ:37894663)

6.人脸采集区域自定义,采集更快速更精准

7.采集更灵活,可以实现连续采集,打卡,认证等多业务场景

提供人脸采集、活体检测,支持Android和iOS,提供皮肤更换、android权限检测、智能纠正裁剪、丰富的参数配置等等,如需要更丰富的设置修改可以联系作者(QQ:37894663)

注:可以免费试用,有问题可联系作者,可提供对接指导,远程协助,满意以后付款购买

更多插件订制,或者疑难解答,也可联系作者,知无不言,无套路

我的qq 37894663

配套OCR识别插件最新2.1版本完成更新:[百度OCR2.1](https://ext.dcloud.net.cn/plugin?id=847

详细对接步骤

如果使用HBuilderX3.1.10之前版本公共测试证书,那么注册百度md5: F9:F6:C8:1F:DB:AB:50:14:7D:6F:2C:4F:CE:E6:0A:A5

注意:HBuilderX3.1.10+版本公共测试证书 MD5: 06:83:8C:C8:40:09:3B:9D:46:89:FC:41:9B:A1:A3:F3

官方公共测试证书下载地址:https://ask.dcloud.net.cn/article/36522

如果是使用自有证书,那么注册百度的时候md5一定要填写自己证书的md5

插件对接详细步骤:https://www.jianshu.com/p/afb37f9f19ea

实例程序需要自行到官方申请对应的License文件,放到插件的对应目录替换对应的授权文件 自定义基座请使用百度注册时填写的包名以及对应的签名 如有疑问请联系qq 37894663

下载授权文件(注意跟1.0版本目录有区别)

Android

下载License文件授权文件放到 nativeplugins/PP-BaiduFaceV2/android/assets/idl-license.face-android

iOS

下载License文件授权文件放到 nativeplugins/PP-BaiduFaceV2/ios/idl-license.face-ios

调用实例

注意导入插件请真机调试


//检查权限(仅android使用)
checkRequestPermissions() {
  const PPFace = uni.requireNativePlugin('PP-BaiduFaceV2');
  PPFace.checkRequestPermissions(res => {
      //res.code //返回编码 200 为成功
  })
}

//初始化插件(请务必先执行一次,还原参数时也可调用)
initFace() {
    const PPFace = uni.requireNativePlugin('PP-BaiduFaceV2');
    PPFace.init({
      androidLicenseFileName: 'idl-license.face-android',
      androidLicenseId: 'xxx-face-android', //*需要修改 android百度申请到的liceenseid
      iosLicenseFileName: 'idl-license.face-ios',
      iosLicenseId: 'xxx-face-ios', //*需要修改 ios百度申请到的liceenseid
    }, res => {
       //res.code //返回编码 200 为成功
    })
    // 初始化错误码(主要关注local auth failed 后面的数字 ):
    // 0    成功
    // 1    license未初始化
    // 2    license数据解密失败
    // 3    license数据格式错误
    // 4    license-key(api-key)校验错误
    // 5    算法ID校验错误
    // 6    MD5校验错误
    // 7    设备ID校验错误
    // 8    包名(应用名)校验错误
    // 9    过期时间不正确
    // 10   功能未授权
    // 11   授权已过期
    // 12   本地文件读取失败
    // 13   远程数据拉取失败
    // 14   本地时间校验错误
    // 0xff 其他错误
}

//活体识别+采集
faceliveness() {
    const PPFace = uni.requireNativePlugin('PP-BaiduFaceV2');
    PPFace.faceliveness({
      livenessList: ["Eye","Mouth","HeadUp","HeadDown","HeadLeft","HeadRight"], //活体要求动作集合,可按需删减 注意:HeadLeftOrRight新版百度已经不支持
      isLivenessRandom: true, //是否开启动作随机 默认false
      isEnableSound: false, //是否开启语音播报 默认 true
      isBack:false, //是否开启后置摄像头 版本2.20以后支持
      //以下参数目前只针对android
      debug: false, //是否开启Debug模式,去除遮挡,看采集框位置,默认false
      cameraRatio: 0.75, //设置相机预览在屏幕中的大小,默认0.75 越小,成像越小 参考:横屏0.55f,debug模式下可预览
      circleRatio: 0.33, //设置中间镂空圆形的半径,默认0.33 越大 圆越小 参考:横屏0.75f,非debug模式下可预览
      detectAreas: [15, 20, 70, 50] //参数:[x,y,w,h] x,w参考的宽度百分比,y,h,参考的高度百分比,不传入该参数,使用系统默认采集区域,自定义采集区域,debug模式下可见
    }, res => {
      //res.code //返回编码 200 为成功
      //res.base64Image //全景图像 可以加前缀 data:image/jpg;base64, 进行预览
      //res.base64ImageCrop //裁剪后图像(少量黑边,或者没有) 可以加前缀 data:image/jpg;base64, 进行预览
    })
}

//人脸采集
recycler() {
  const PPFace = uni.requireNativePlugin('PP-BaiduFaceV2');
  PPFace.recycler({
    isEnableSound: false //是否开启语音播报 默认 true
    isBack:false, //是否开启后置摄像头 版本2.20以后支持
    //以下参数目前只针对android
    debug: true, //是否开启Debug模式,去除遮挡,看采集框位置,默认false
    cameraRatio: 0.75, //设置相机预览在屏幕中的大小,默认0.75 越小,成像越小 参考:横屏0.55f,debug模式下可预览
    circleRatio: 0.33, //设置中间镂空圆形的半径,默认0.33 越大 圆越小 参考:横屏0.75f,非debug模式下可预览
    detectAreas: [15, 20, 70, 50] //参数:[x,y,w,h] x,w参考的宽度百分比,y,h,参考的高度百分比,不传入该参数,使用系统默认采集区域,自定义采集区域,debug模式下可见
  }, res => {
     //res.code //返回编码 200 为成功
      //res.base64Image //全景图像 可以加前缀 data:image/jpg;base64, 进行预览
      //res.base64ImageCrop //裁剪后图像(少量黑边,或者没有) 可以加前缀 data:image/jpg;base64, 进行预览
  })
}

//该方法主要针对一些识别参数以及皮肤进行修改,参数是官方默认的请尽量不要修改
setFaceConfig() {
  const PPFace = uni.requireNativePlugin('PP-BaiduFaceV2');
  //该方法参数并非每次全部要写,按需设置即可,注:该方法设置的参数在init后将重置
  PPFace.setFaceConfig({
    'VALUE_MIN_FACE_SIZE': 200, //设置可检测的最小人脸阈值 VALUE_MIN_FACE_SIZE 默认 200
    'VALUE_NOT_FACE_THRESHOLD': 0.6, // 设置可检测到人脸的阈值 VALUE_NOT_FACE_THRESHOLD 默认 0.6
    'VALUE_BLURNESS': 0.3, // 设置模糊度阈值 VALUE_BLURNESS 默认 0.3
    'VALUE_BRIGHTNESS': 82, // 设置光照阈值(范围0-255 仅android)VALUE_BRIGHTNESS 默认 82 
    'VALUE_OCCLUSION': 0.5, // 设置遮挡阈值 VALUE_OCCLUSION 默认 0.5
    'VALUE_HEAD_PITCH': 8, // 设置人脸姿态角阈值 VALUE_HEAD_PITCH 默认 8
    'VALUE_HEAD_YAW': 8, // 设置人脸姿态角阈值 VALUE_HEAD_YAW 默认 8
    'VALUE_CLOSE_EYES': 0.7, // 设置闭眼阈值 VALUE_CLOSE_EYES 默认 0.7 ios无效
    'VALUE_CACHE_IMAGE_NUM': 3, // 设置图片缓存数量 VALUE_CACHE_IMAGE_NUM 默认3
    'VALUE_OPEN_MASK': true, // 设置口罩判断开关 VALUE_OPEN_MASK 默认 true
    'VALUE_MASK_THRESHOLD': 0.7, // 设置口罩口罩阈值 VALUE_MASK_THRESHOLD 默认 0.7
    'VALUE_SCALE': 1.0, // 原图缩放系数 VALUE_SCALE 默认 1.0
    'VALUE_CROP_HEIGHT': 640, // 抠图高的设定,为了保证好的抠图效果,我们要求高宽比是4:3,所以会在内部进行计算,只需要传入高即可 VALUE_CROP_HEIGHT 默认640
    'VALUE_CROP_ENLARGERATIO': 1.5 ,// 抠图人脸框与背景比例 VALUE_CROP_ENLARGERATIO 默认1.5
    'VALUE_FAR_RATIO': 0.4 ,//  检测框远近比率 默认0.4 (v2.16新增参数)
    'livenessList': ['Eye', 'Mouth', 'HeadUp', 'HeadDown', 'HeadLeft', 'HeadRight'], //动作集合 livenessList 默认全部动作
    'isLivenessRandom': false, // 设置动作活体是否随机 isLivenessRandom 默认 false
    'isEnableSound': true, // 设置开启提示音 isEnableSound 默认 true
    'hasBottomText':true, // 设置是否显示底部文字 默认 true
    'bottomText': '— 修改了底部文字 —'  ,// 设置底部文字内容 默认 "— 百度大脑技术支持 —"
    'COLOR_BG':'#8CD790' ,// 背景颜色 默认 #FFFFFF
    'COLOR_CIRCLE_LINE':'#77AF9C' ,//活体检测周围小竖线的颜色 默认 #CCCCCC
    'COLOR_CIRCLE_SELECT_LINE':'#285943' ,//活体检测周围小竖线完成后的颜色 默认 #00BAF2
    'topTextColor': '#383A3F',//顶部提示文字颜色 默认 #000000
    'topSecondTextColor':'#566270' ,// //顶部第二行小字提示颜色 默认 #666666
    'hasBottomImg':true,//是否显示底部图片 默认true(可通过替换res跟换图片)
  }, res => {
       //res.code //返回编码 200 为成功
  })
},

参数说明

  • livenessList 采集时需要得项目,可选值:
    • Eye 扎眼
    • Mouth 张嘴
    • HeadUp 抬头
    • HeadDown 低头
    • HeadLeft 左转头
    • HeadRight 右转头

隐私、权限声明

1. 本插件需要申请的系统权限列表:

需要申请相机权限,用于人脸采集功能

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件自身不采集任何数据,插件使用的百度离线人人脸采集SDK采集数据,请参考其官方说明:https://ai.baidu.com/ai-doc/FACE/Mk37c1pue

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问