图片说明:
人脸检测 |
小于2M |
人脸比对 |
单次传入的两张图片,小于20M |
人脸识别 |
小于10M |
人脸认证 |
小于10M |
人脸库管理相关接口 |
小于10M |
请求格式支持:PNG、JPG、JPEG、BMP,不支持GIF图片
我们需要用百度的sdk下载地址:https://ai.baidu.com/sdk#bfr
需要准备的鉴权参数:
APP_ID, (应用id)
API_KEY, (API_KEY)
SECRET_KEY(SECRET_KEY)
在百度云开放平台的控制台我们注册一个应用,然后会给我们分配,
1.每个开发者账号可以创建100个appid;
2.每个appid对应一个人脸库,且不同appid之间,人脸库互不相通;
3.每个人脸库下,可以创建多个用户组,用户组(group)数量没有限制;
4.每个用户组(group)下,可添加最多无限张人脸,无限个uid;
5.每个用户(uid)所能注册的最大人脸数量没有限制;
然后我们先介绍一下百度云的人脸库的一个模型与层级图
人脸库模型图
层级图:
人脸注册:
首先我们要有一个注册人的id,然后我们需要一张注册人的照片,另外我们需要注册组的id(类似于在数据库,给表取一个名子)可以是多个组,这个组名是一个字符串,然后调用百度云会给我们提供的人脸注册接口
参数:
uid |
是 |
string |
用户id(由数字、字母、下划线组成),长度限制128B |
user_info |
是 |
string |
用户资料,长度限制256B |
group_id |
是 |
string |
用户组id,标识一组用户(由数字、字母、下划线组成),长度限制128B。如果需要将一个uid注册到多个group下,group_id需要用多个逗号分隔,每个group_id长度限制为48个英文字符 |
image |
是 |
string |
图像base64编码,每次仅支持单张图片,图片编码后大小不超过10M |
实例:
人脸对比:
images |
是 |
string |
base64编码后的2张图片数据,半角逗号分隔,单次请求总共最大20M |
ext_fields |
否 |
string |
返回质量信息,取值固定,目前支持qualities(质量检测)(对所有图片都会做改处理) |
image_liveness |
否 |
string |
返回的活体信息,“faceliveness,faceliveness” 表示对比对的两张图片都做活体检测;“,faceliveness” 表示对第一张图片不做活体检测、第二张图做活体检测;“faceliveness,” 表示对第一张图片做活体检测、第二张图不做活体检测 |
需要两张照片,返回的参数主要是一个socre是比较相识度的,我们可以根据这个分值来判断是否是同一个人,一般在80分以上,当然根据不同业务,可以适当提高阈值
人脸识别:
前提:已经存在人脸库
group_id |
是 |
string |
用户组id(由数字、字母、下划线组成),长度限制128B,如果需要查询多个用户组id,用逗号分隔 |
image |
是 |
string |
图像base64编码,每次仅支持单张图片,图片编码后大小不超过10M |
ext_fields |
否 |
string |
特殊返回信息,多个用逗号分隔,取值固定: 目前支持 faceliveness(活体检测) |
user_top_num |
否 |
uint32 |
返回用户top数,默认为1,最多返回5个 |
功能简介与使用场景:
比如我们现在我们公司的技术部可以是一个组,关心堂整个公司是一个人脸库,人脸识别就可以实现技术部的某一个人通过扫脸就可以把这个人的信息查出来。和人脸 认证有区别
实例:
人脸认证:
前提:已经存在人脸库
uid |
是 |
string |
用户id(由数字、字母、下划线组成),长度限制128B |
image |
是 |
string |
图像base64编码,每次仅支持单张图片,图片编码后大小不超过10M |
group_id |
是 |
string |
用逗号分隔,表示从指定的group中查找 |
top_num |
否 |
uint32 |
返回匹配得分top数,默认为1 |
ext_fields |
否 |
string |
特殊返回信息,多个用逗号分隔,取值固定: 目前支持 faceliveness(活体检测 |
功能简介与使用场景:
比如我们现在我们公司的技术部可以是一个组,关心堂整个公司是一个人脸库,人脸认证实现的就是,现在技术部的李四我要验证这个人是不是李四,要先确切的知道我需要认证李四这个人,然后通过扫脸验证,只会给我们是或者不是的结果
实例: