百度人脸识别使用指南-人脸搜索与库管理API文档 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
产品推荐: 1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>; 2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>> 3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>> 4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>> 点击这里申请百度智能云特邀VIP帐号,立即体验人脸识别>>> 百度人脸识别使用指南-人脸搜索与库管理API文档 能力介绍业务能力 人脸搜索与库管理主要用在人脸通用场景,采集照片与底库照片主要为生活照,通常通过手机、电脑、面板机等设备采集。如果您的照片主要由普通摄像头/抓拍机设备大角度俯拍采集获得,建议您使用场景化搜索服务,查看文档详情
人脸库管理相关接口,要完成1:N或者M:N识别,首先需要构建一个人脸库,用于存放所有人脸特征,相关接口如下:
人脸库结构 人脸库、用户组、用户、用户下的人脸层级关系如下所示: |- 人脸库(appid)
|- 用户组一(group_id)
|- 用户01(uid)
|- 人脸(faceid)
|- 用户02(uid)
|- 人脸(faceid)
|- 人脸(faceid)
....
....
|- 用户组二(group_id)
|- 用户组三(group_id)
.... 关于人脸库的设置限制
质量判断 为了保证识别效果,请控制注册人脸的质量,在调用人脸注册接口时需要使用质量控制和活体控制参数,从而保证图片的质量以及注册进入人脸库的人脸是活体。 调用方式请求URL数据格式 向API服务地址使用POST发送请求,必须在URL中带上参数access_token,可通过后台的API Key和Secret Key生成,具体方式请参考“Access Token获取”。 示例代码 #!/bin/bash curl -i -k 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【百度云应用的AK】&client_secret=【百度云应用的SK】'
例如此接口,使用HTTPS POST发送: https://aip.baidubce.com/rest/2.0/face/v1/merge?access_token=24.f9ba9c5341b67688ab4added8bc91dec.2592000.1485570332.282335-8574074 POST中Body的参数,按照下方请求参数说明选择即可。
人脸搜索在线调试您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明注意事项:
请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/search URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
示例代码 提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。 提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。 人脸搜索 curl -i -k 'https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=【调用鉴权接口获取的token】' --data '{"image":"027d8308a2ec665acb1bdf63e513bcb9","image_type":"FACE_TOKEN","group_id_list":"group_repeat,group_233","quality_control":"LOW","liveness_control":"NORMAL"}' -H 'Content-Type:application/json; charset=UTF-8' 返回说明返回参数
{ "face_token": "fid", "user_list": [ { "group_id" : "test1", "user_id": "u333333", "user_info": "Test User", "score": 99.3 } ] }
遮挡情况的阈值
模糊度、完整度的阈值
活体控制参数说明
关于以上数值的概念介绍: 拒绝率(TRR):如99%,代表100次作弊假体攻击,会有99次被拒绝。 误拒率(FRR):如0.5%,指1000次真人请求,会有5次因为活体分数低于阈值被错误拒绝。 通过率(TAR):如99%,指100次真人请求,会有99次因为活体分数高于阈值而通过。 阈值(Threshold):高于此数值,则可判断为活体。 人脸搜索 M:N 识别待识别的图片中,存在多张人脸的情况下,支持在一个人脸库中,一次请求,同时返回图片中所有人脸的识别结果。 在线调试您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明注意事项:
请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/multi-search URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
请求示例 { "image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKD...", "image_type": "BASE64", "group_id_list": "group1", "max_face_num" : 5, "quality_control": "LOW", "liveness_control": "NORMAL" } 返回说明返回参数
返回示例 { "error_code": 0, "error_msg": "SUCCESS", "log_id": 240483475, "timestamp": 1535533440, "cached": 0, "result": { "face_num": 2, "face_list": [ { "face_token": "6fe19a6ee0c4233db9b5bba4dc2b9233", "location": { "left": 31.95568085, "top": 120.3764267, "width": 87, "height": 85, "rotation": -5 }, "user_list": [ { "group_id": "group1", "user_id": "5abd24fd062e49bfa906b257ec40d284", "user_info": "userinfo1", "score": 69.85684967041 }, { "group_id": "group1", "user_id": "2abf89cffb31473a9948268fde9e1c3f", "user_info": "userinfo2", "score": 66.586112976074 } ] }, { "face_token": "fde61e9c074f48cf2bbb319e42634f41", "location": { "left": 219.4467773, "top": 104.7486954, "width": 81, "height": 77, "rotation": 3 }, "user_list": [ { "group_id": "group1", "user_id": "088717532b094c3990755e91250adf7d", "user_info": "userinfo", "score": 65.154159545898 } ] } ] } }
遮挡情况的阈值
模糊度、完整度的阈值
活体控制参数说明
关于以上数值的概念介绍: 拒绝率(TRR):如99%,代表100次作弊假体攻击,会有99次被拒绝。 误拒率(FRR):如0.5%,指1000次真人请求,会有5次因为活体分数低于阈值被错误拒绝。 通过率(TAR):如99%,指100次真人请求,会有99次因为活体分数高于阈值而通过。 阈值(Threshold):高于此数值,则可判断为活体。 人脸注册在线调试您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明注意事项:
请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
示例代码 提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。 提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。 人脸注册 curl -i -k 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=【调用鉴权接口获取的token】' --data '{"image":"027d8308a2ec665acb1bdf63e513bcb9","image_type":"FACE_TOKEN","group_id":"group_repeat","user_id":"user1","user_info":"abc","quality_control":"LOW","liveness_control":"NORMAL"}' -H 'Content-Type:application/json; charset=UTF-8' 返回说明返回参数
返回示例 { "face_token": "2fa64a88a9d5118916f9a303782a97d3", "location": { "left": 117, "top": 131, "width": 172, "height": 170, "rotation": 4 } }
遮挡情况的阈值
模糊度、完整度的阈值
活体控制参数说明
关于以上数值的概念介绍: 拒绝率(TRR):如99%,代表100次作弊假体攻击,会有99次被拒绝。 误拒率(FRR):如0.5%,指1000次真人请求,会有5次因为活体分数低于阈值被错误拒绝。 通过率(TAR):如99%,指100次真人请求,会有99次因为活体分数高于阈值而通过。 阈值(Threshold):高于此数值,则可判断为活体。 人脸更新接口描述用于对人脸库中指定用户,更新其下的人脸图像。
在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明注意事项:
请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/update URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
示例代码 提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。 提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。 人脸更新 curl -i -k 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/update?access_token=【调用鉴权接口获取的token】' --data '{"image":"027d8308a2ec665acb1bdf63e513bcb9","image_type":"FACE_TOKEN","group_id":"group_repeat","user_id":"user1","user_info":"cba","quality_control":"LOW","liveness_control":"NORMAL"}' -H 'Content-Type:application/json; charset=UTF-8' 返回说明返回参数
返回示例 { "face_token": "2fa64a88a9d5118916f9a303782a97d3", "location": { "left": 117, "top": 131, "width": 172, "height": 170, "rotation": 4 } } 人脸删除接口描述删除用户的某一张人脸,如果该用户只有一张人脸图片,则同时删除用户。 在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/face/delete URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
返回说明通过返回的error_code判断是否成功 如失败则查看error_msg获得具体错误信息 返回示例 // 删除成功 { "error_code": 0, "log_id": 73473737, } // 删除发生错误 { "error_code": 223106, "log_id": 1382953199, "error_msg": "face is not exist" } 用户信息查询接口描述获取人脸库中某个用户的信息(user_info信息和用户所属的组)。 在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/get URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
示例代码 提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。 提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。 用户信息查询 curl -i -k 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/get?access_token=【调用鉴权接口获取的token】' --data '{"user_id":"user1","group_id":"group1"}' -H 'Content-Type:application/json; charset=UTF-8' 返回说明返回参数
返回示例 { "user_list": [ { "user_info": "user info ...", "group_id": "gid1" }, { "user_info": "user info2 ...", "group_id": "gid2" } ] } 获取用户人脸列表接口描述用于获取一个用户的全部人脸列表。 在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/face/getlist URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
示例代码 提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。 提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。 获取用户人脸列表 curl -i -k 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/face/getlist?access_token=【调用鉴权接口获取的token】' --data '{"user_id":"user1","group_id":"group1"}' -H 'Content-Type:application/json; charset=UTF-8' 返回说明返回参数
返回示例 { "face_list": [ { "face_token": "fid1", "ctime": "2018-01-01 00:00:00" }, { "face_token": "fid2", "ctime": "2018-01-01 10:00:00" } ] } 获取用户列表接口描述用于查询指定用户组中的用户列表。 在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/getusers URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
示例代码 提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。 提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。 获取用户列表 curl -i -k 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/getusers?access_token=【调用鉴权接口获取的token】' --data '{"group_id":"group1"}' -H 'Content-Type:application/json; charset=UTF-8' 返回说明
复制用户接口描述用于将已经存在于人脸库中的用户复制到一个新的组。
在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/copy URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
返回说明通过返回的error_code判断是否成功 如失败则查看error_msg获得具体错误信息 返回示例 // 正确返回值 { "error_code": 0, "log_id": 3314921889, } // 发生错误时返回值 { "error_code": 223111, "log_id": 3111284097, "error_msg": "dst group is not exist" } 删除用户接口描述用于将用户从某个组中删除。 在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/delete URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
返回说明通过返回的error_code判断是否成功 如失败则查看error_msg获得具体错误信息: 返回参数
返回示例 // 正确返回值 { "error_code": 0, "log_id": 3314921889, } // 发生错误时返回值 { "error_code": 223103, "log_id": 815967402, "error_msg": "user is not exist" } 创建用户组接口描述用于创建一个空的用户组,如果用户组已存在 则返回错误。 在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/add URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
示例代码 提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。 提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。 创建用户组 curl -i -k 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/add?access_token=【调用鉴权接口获取的token】' --data '{"group_id":"group1"}' -H 'Content-Type:application/json; charset=UTF-8' 返回说明通过返回的error_code判断是否成功 如失败则查看error_msg获得具体错误信息: 返回参数
返回示例 // 正确返回值 { "error_code": 0, "log_id": 3314921889, } // 发生错误时返回值 { "error_code": 223101, "log_id": 815967402, "error_msg": " group is already exist" } 删除用户组接口描述删除用户组下所有的用户及人脸,如果组不存在 则返回错误。 注:组内的人脸数量如果大于500条,会在后台异步进行删除。在删除期间,无法向该组中添加人脸。1秒钟可以删除20条记录,相当于一小时可以将7万人的人脸组删除干净。用户组删除可能存在一定延迟,期间指定该用户组搜索,仍可搜索到未删除完成的用户信息。如果您的用户组下数据量较大并且希望保证删除的时效性,建议您先循环删除组内的用户,最后删除用户组。 在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/delete URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
示例代码 提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。 提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。 删除用户组 curl -i -k 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/delete?access_token=【调用鉴权接口获取的token】' --data '{"group_id":"group1"}' -H 'Content-Type:application/json; charset=UTF-8' 返回说明通过返回的error_code判断是否成功 如失败则查看error_msg获得具体错误信息: 返回参数
返回示例 // 正确返回值 { "error_code":0, "log_id": 3314921889, } // 发生错误时返回值 { "error_code": 223100, "log_id": 815967402, "error_msg": " group is not exist" } 组列表查询接口描述用于查询用户组的列表。 在线调试您可以在示例代码中心中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 请求说明请求示例 HTTP方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/getlist URL参数:
Header如下:
Body中放置请求参数,参数详情如下: 请求参数
示例代码 提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。 提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。 组列表查询 curl -i -k 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/getlist?access_token=【调用鉴权接口获取的token】' --data '{"start":0,"length":100}' -H 'Content-Type:application/json; charset=UTF-8' 返回说明返回参数
错误码请参考人脸识别错误码 |