[NEW]人脸采集

1. 产品介绍

人脸识别是解决在公共服务场所提升商家效率和用户体验的新方式,其中人脸采集是指在获得用户充分授权和认可,且充分保护用户隐私的前提下,获取到符合质量要求的活体人脸图片,用于后续的对比、识别等操作,以此来提升商家的服务质量。核心功能包括:

  • 活体检测:证明当前用户是真人。采用全球首创非配合式活体检测技术,无需用户做任何动作,极速通过检测。
  • 图像质量检测:判断采集到的人脸是否符合标准质量要求。采用多维度质量判断模型,找出一张高质量的人脸照片。该质量监测模型,通过遮挡(人脸各部位的遮挡比例)、模糊度(人脸的清晰度)、光照(人脸的光照强度)、完整性(人脸的完整性)、姿态(人脸在三维空间的角度分布)、表情(人脸表情的正常度)等多个维度进行综合判断。
    交互界面

人脸采集 - 图1

调用流程

人脸采集 - 图2

应用场景人脸应用广泛,可适用于以下多个场景:

场景描述
拍摄证件照小程序提供拍摄光照角度良好的证件照的功能。
团餐校园点餐场景录入学生人脸,用于刷脸代扣点餐。

|

2. 准入条件

该产品使用者需要签约,具体签约要求如下。

  • 申请前必须拥有经过实名认证的支付宝账户;
  • 仅企业工商户可申请(个人开发者暂不可申请);
  • 需提供真实有效的营业执照,且支付宝账户名称需与营业执照主体一致;
    注意:

  • 若支付宝发现信息存在超出约定范围使用或者不合理使用等情况,支付宝有权永久收回该小程序的人脸采集接口权限。

3. 计费模式

该产品的调用目前处于免费期,商户无须支付费用。

4. 接入指引

4.1 完成开发者入驻参考这里完成开发者入驻并创建小程序应用

4.2 添加人脸采集功能在小程序详情页的功能列表中添加“人脸采集”image.png4.3 签约人脸采集人脸采集功能需要签约才能生效,请点击功能列表右侧“立即签约”,签约成功后,状态置为“已生效”,即可调用人脸采集接口。

4.4 接入人脸采集调用流程图人脸采集.png

  • 调用JSAPI(faceVerify)唤起人脸采集,整个采集过程完全由人脸内部实现,采集完成后,通过回调函数返回采集结果。采集过程中,客户端完成人脸采集过程以及活体检测,然后将采集的人脸特征数据上传到服务端进行进一步的活体检测,最终返回采集结果到客户端。
  • 调用查询接口(zoloz.identification.user.web.query)获取可信的采集结果,如果采集成功,可通过此接口获取采集的人脸照片。
    主要步骤前提:请先了解小程序框架版本要求:

  • 支付宝最低版本要求:10.1.52

  • 小程序框架最低版本要求:1.14.0
  • 调用接口 faceVerify,传入入參bizId和bizType唤起人脸采集,采集结束后,通过回调函数得到采集结果。
    请注意,在一次faceVerify调用没有返回之前,切记不能发起第二次faceVerify调用,否则会产生异常。例如,在你的小程序中通过点击一个页面上的按钮来触发faceVerify的调用,请确保在该次调用返回之前,将按钮禁用,不允许用户进行多次点击。

代码示例

  1. my.ap.faceVerify({
  2. bizId: '545689787654767653', //业务流水号,商户自行生成,需要保证唯一性,不超过64位
  3. bizType: '1', //业务场景参数,‘1’代表人脸采集,请务必填写
  4. useBackCamera: true, //传入此参数会唤起后置摄像头;非必填,不传默认唤起前置摄像头
  5. success: (res) => {
  6. my.alert({
  7. content: JSON.stringify(res),
  8. });
  9. },
  10. fail: (res) => {
  11. my.alert({
  12. content: JSON.stringify(res),
  13. });
  14. }
  15. });

认证成功结果示例faceRetCode = 1000 代表人脸采集成功,并且调用 查询接口(zoloz.identification.user.web.query)能够成功获取照片,证明人脸采集成功。

  1. {
  2. faceRetCode: "1000",
  3. retCode: "OK_SUCCESS",
  4. retCodeSub: "Z5100",
  5. retMessageSub: "成功 (Z5100)",
  6. zimId: "7b6b72be1493cab72dd0a25877de329dd00"
  7. }

注意,retCode代表的是刷脸可用性成功,刷脸可用,才可进行人脸采集。

  • 调用人脸采集查询接口(zoloz.identification.user.web.query)获取人脸照片
    请求示例
  1. AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
  2. ZolozIdentificationUserWebQueryRequest request = new ZolozIdentificationUserWebQueryRequest();
  3. request.setBizContent("{" +
  4. "\"biz_id\":\"5456897876546767654\"," +
  5. "\"zim_id\":\"731be7f204a962b0486a9b64ea3050ae\"," +
  6. "\"extern_param\":\"{\\\"bizType\\\":\\\"1\\\"}\"" +
  7. "}");
  8. ZolozIdentificationUserWebQueryResponse response = alipayClient.execute(request);
  9. if(response.isSuccess()){
  10. System.out.println("调用成功");
  11. } else {
  12. System.out.println("调用失败");
  13. }

成功响应示例如果采集成功,imgStr对象中的值即为人脸照片的base64编码字符串。

  1. {
  2. "zoloz_identification_user_web_query_response": {
  3. "code": "10000",
  4. "msg": "Success",
  5. "extern_info": "{\"imgStr\":\"ApA4VVwOP1rqp8sotrcimna3c__9k\",\"bizId\":\"5456897876546767654-doucao.wjp\",\"zimMsg\":\"成功\",\"zimCode\":\"Z5130\"}"
  6. },
  7. "sign": "SL1dSiE6XKKIta5w3ge3VSZE+71CdBtr8Ocw9WvRSZD3Tz6/vNaA2pWLBYdZcvrAHaMYa6J8V9c4nY3kdBK0EeU2afh+8CLTw6dnZfkO8tR5NOtJUb+M6qhxl0xKhpE+2GUonpCcJg1MHS0aMVXa/b6dhK/yZJQCdO1YnVNuzs8="
  8. }

失败响应示例

  1. {
  2. "zoloz_identification_user_web_query_response": {
  3. "code": "40004",
  4. "msg": "Business Failed",
  5. "sub_code": "INVALID_PARAMETER",
  6. "sub_msg": "参数有误抱歉,系统出错了,请您稍后再试 (Z5132)"
  7. },
  8. "sign": "v/DjkviKs2ja3HO9ZZ94W8bcfAsLyRuGrZT/TlFm6FgGQv4qSm/94o1FjOaMCl/t8XIm89bBhk03PBJ099alDzjnj4RD6S9FYDV7CfjvHYjrzvVJzn47Gc1mWdOHZ38DFQLWIg1IbNKFmYdoR+NdY5nY/cwz3Al2wfEylvN1cbs="
  9. }

5. API列表

接口英文名称接口描述
my.ap.faceVerify人脸采集
zoloz.identification.user.web.query人脸采集结果查询