开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
图像技术
文字识别
人脸与人体识别
视频技术
AR与VR
自然语言处理
知识图谱
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
智能农业
信息服务
智能园区
智能硬件
人脸识别

    身份验证

    人脸识别接口分为V2和V3两个版本,本文档为V2版本接口的说明文档,请确认您在百度云后台获得的是V2版本接口权限,再来阅读本文档。

    辨别接口版本的方法是:在百度云后台进入【应用列表】,点击【应用名称】,在【API列表】中可以看到【请求地址】,若请求地址中带有【v2】标识,则您具有的是v2权限,可以阅读本文档;若请求地址中带有【v3】标识,则您具有的是v3权限,应该去阅读v3文档。 如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

    • 在百度云控制台内 提交工单,咨询问题类型请选择人工智能服务
    • 如有需要讨论的疑问,欢迎进入 AI社区 与其他开发者们一同交流。

    能力介绍

    业务能力

    • 质量检测(可选):判断图片中是否包含人脸,以及人脸在姿态、遮挡、模糊、光照等方面是否符合识别条件;
    • 活体检测(可选):基于图片中的破绽分析,判断其中的人脸是否为二次翻拍(举例:如用户A用手机拍摄了一张包含人脸的图片一,用户B翻拍了图片一得到了图片二,并用图片二伪造成用户A去进行识别操作,这种情况普遍发生在金融开户、实名认证等环节。);
    • 公安验证(必选):基于姓名和身份证号,调取公民身份证小图(源自公安系统),将当前获取的人脸图片,与此证件小图进行对比,得出比对分数,并基于此进行业务判断是否为同一人。由于公安系统小图,具有最权威的身份证明作用,故对用户本人的验证结果可信度也最为合理。

    业务逻辑

    • 上述三项能力为顺序串行验证,接口默认返回公安身份对比分值,质量检测和活体检测为可选项。如选择了这两项,则验证顺序为人脸质量检测->活体检测->公安身份验证。您也可以根据业务场景,选择这两项中的某一项或都不选择。
    • 如选择了前两个环节,则有任意一个条件不通过,则整个请求流程终止,并返回错误码,描述具体的不符合信息
    • 基于此顺序串行验证逻辑,可以避免大量不符合条件的请求流转到公安验证,节约您的成本。

    推荐阈值

    • 此接口使用的对比算法,针对带水纹证件照采用了专项的模型处理,可保证水纹信息的影响降到尽可能低。
    • 如比对成功,最终返回的有效数据为一个对比分值,在0~1之间,您可以设定具体的阈值来判断是否验证通过。
    • 人证相似度的推荐阈值为0.8,对应的误识率为万分之一

    计费逻辑

    • 前两个环节图片不符合校验规则,会以error_code形式反馈,属于正向业务判断,这两个环节的请求全部免费。真正请求到公安验证这步并返回结果,才会进行计费。价格文档

    调用方式

    请求URL数据格式

    向API服务地址使用POST发送请求,必须在URL中带上参数access_token,可通过后台的API Key和Secret Key生成,具体方式请参考“Access Token获取”。

    获取access_token的示例代码

    {% AccessToken %}

    注意access_token的有效期为30天,切记需要每30天进行定期更换,或者每次请求都拉取新token

    例如此接口,使用HTTPS POST发送:

    https://aip.baidubce.com/rest/2.0/face/v2/person/verify?access_token=24.f9ba9c5341b67688ab4added8bc91dec.2592000.1485570332.282335-8574074

    POST中Body的参数,按照下方请求参数说明选择即可。

    提示:如果您为百度云老用户,正在使用其他非AI的服务,可以参考百度云AKSK鉴权方式发送请求,虽然请求方式鉴权方法和本文所介绍的不同,但请求参数和返回结果一致。

    请求说明

    注意事项

    • 请求体格式化:Content-Type为application/x-www-form-urlencoded,通过urlencode格式化请求体。
    • Base64编码:请求的图片需经过Base64编码,图片的base64编码指将图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。需要注意的是,图片的base64编码是不包含图片头的,如data:image/jpg;base64,
    • 图片格式:现支持PNG、JPG、JPEG、BMP,不支持GIF图片
    • 人脸识别接口分为V2和V3两个版本,本文档为V2版本接口的说明文档,请确认您在百度云后台获得的是V2版本接口权限,再来阅读本文档。

    辨别接口版本的方法是:在百度云后台进入【应用列表】,点击【应用名称】,在【API列表】中可以看到【请求地址】,若请求地址中带有【v2】标识,则您具有的是v2权限,可以阅读本文档;若请求地址中带有【v3】标识,则您具有的是v3权限,应该去阅读v3文档。

    请求示例

    HTTP方法:POST

    请求URL: https://aip.baidubce.com/rest/2.0/face/v2/person/verify

    URL参数:

    参数
    access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

    Header:

    参数
    Content-Type application/x-www-form-urlencoded

    Body中放置请求参数,参数详情如下:

    请求参数

    参数 必选 类型 说明
    image string base64编码后的图片数据,需urlencode,编码后的图片大小不超过5M,图片尺寸不超过1920*1080
    id_card_number uint32 身份证号(真实身份证号号码)。我们的服务端会做格式校验,并通过错误码返回,但是为了您的产品反馈体验更及时,建议在产品前端做一下号码格式校验与反馈
    name string utf8,姓名(真实姓名,和身份证号匹配)
    quality string 判断图片中的人脸质量是否符合条件。use表示需要做质量控制,质量不符合条件的照片会被直接拒绝
    quality_conf string 人脸质量检测中每一项指标的具体阈值设定,json串形式,当指定quality:use时生效。默认使用的阈值如下:
    {
      left_eye:0.6,左眼被遮挡的比例,取值范围[0~1],数值越大遮挡越多;
      right_eye:0.6,右眼被遮挡的比例,取值范围[0~1],数值越大遮挡越多;
      nose:0.7,鼻子被遮挡的比例,取值范围[0~1],数值越大遮挡越多;
      mouth:0.7,嘴巴被遮挡的比例,取值范围[0~1],数值越大遮挡越多;
      left_check:0.8,左脸颊被遮挡的比例,取值范围[0~1],数值越大遮挡越多;
      right_check:0.8,右脸颊被遮挡的比例,取值范围[0~1],数值越大遮挡越多;
      chin_contour:0.6,下巴被遮挡的比例,取值范围[0~1],数值越大遮挡越多;
      illumination:30,脸部光照的灰度值阈值,取值范围[0~255],数值越大光照越强;
      blurdegree:0.7,人脸模糊度阈值,取值范围[0~1],数值越大越模糊;
    }
    faceliveness sting 判断活体值是否达标。use表示需要做活体检测,低于活体阈值的照片会直接拒绝
    faceliveness_conf string 人脸活体检测的阈值设定,json串形式,当指定faceliveness:use时生效。默认使用的阈值如下:
    {
      faceliveness:0.3
    //单帧图片活体检测阈值,取值范围[0~1],大于阈值即可判断为活体
    }
    ext_fields string 可选项为facelivenessqualities。选择具体的项,则返回参数中将会显示相应的扩展字段。如faceliveness表示返回结果中包含活体相关内容,qualities表示返回结果中包含质量检测相关内容

    返回说明

    返回参数

    参数 必须 类型 说明
    log_id uint64 日志id
    result float 与公安小图相似度可能性,用于验证生活照与公安小图是否为同一人,有正常分数时为[0~1],推荐阈值0.8,超过即判断为同一人
    ext_info string 拓展信息json串,只有选择了ext_fields时才会返回具体信息。选择faceliveness返回具体活体分值信息,选择qualities返回人脸质量检测信息。两者可以同时选择,半角逗号分割。
    +faceliveness string 活体检测值,单帧图片建议阈值,小于此值则认为不是活体,超过则判断为活体
    +qualities string 质量检测结果
    ++occlusion string 人脸遮挡情况
    +++left_eye string 左眼被遮挡的比例,取值范围[0~1],数值越大遮挡越多;小于阈值时有返回,默认阈值0.6
    +++right_eye string 右眼被遮挡的比例,取值范围[0~1],数值越大遮挡越多;小于阈值时有返回,默认阈值0.6
    +++nose string 鼻子被遮挡的比例,取值范围[0~1],数值越大遮挡越多;小于阈值时有返回,默认阈值0.7
    +++mouth string 嘴巴被遮挡的比例,取值范围[0~1],数值越大遮挡越多;小于阈值时有返回,默认阈值0.7
    +++left_cheek string 左脸颊被遮挡的比例,取值范围[0~1],数值越大遮挡越多;小于阈值时有返回,默认阈值0.8
    +++right_cheek string 右脸颊被遮挡的比例,取值范围[0~1],数值越大遮挡越多;小于阈值时有返回,默认阈值0.8
    +++chin string 下巴被遮挡的比例,取值范围[0~1],数值越大遮挡越多;小于阈值时有返回,默认阈值0.8
    ++blur string 人脸模糊度阈值,取值范围[0~1],数值越大越模糊;小于阈值时有返回,默认阈值0.7
    ++illumination string 脸部光照的灰度值阈值,取值范围[0~255],数值越大光照越强;大于阈值时有返回,默认阈值30
    ++completeness string 人脸完整度,0或1, 0为人脸溢出图像边界,1为人脸都在图像边界内

    返回示例

    {
       "result":0.03419, 
       "ext_info":{
          "faceliveness":0.47 
       },
       "log_id":772889134072410 
     }

    错误码

    请参考人脸识别错误码

    上一篇
    人脸库管理
    下一篇
    在线活体检测