人脸厂商标准接口
该部分描述厂商应向SID提供的标准接口,以便SID调用。
1. 1:1 认证
使用用户底库照片与用户现场照片进行比对
请求⽅式: POST
请求地址: http://{server}/staticdb/search/compare
请求头:
请求参数:
{
"app_id":"system",
"app_secret":"12345",
"imgA":"YmFzZTY0IGltYWdlCg==",
"imgB":"YmFzZTY0IGltYWdlCg=="
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
app_id | 是 | 应用id |
app_secret | 是 | 应用secret |
imgA | 是 | 用户现场照片base64编码。和featureA字段二选一,传了imgA就不用传featureA |
imgB | 是 | 用户底库照片base64编码。和featureB字段二选一,传了imgB就不用传featureB |
featureA | 否 | 特征值A和imgA字段二选一 |
featureB | 否 | 特征值A和imgB字段二选一 |
返回结果:
{
"info": "success",
"result": 0,
"score": 0.999
}
参数说明:
参数 | 说明 |
---|---|
info | 返回信息描述,成功为success,失败为错误描述信息 |
result | 返回码0成功,返回其他值为失败 |
score | 比对结果分数 |
2. 1:N 认证
使用用户现场与全部用户进行比对返回最相似的用户
请求⽅式: POST
请求地址: http://{server}/staticdb/search/multiple
请求头:
请求参数:
{
"app_id":"system",
"app_secret":"12345",
"groupId":"",
"topN":2,
"img":""
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
app_id | 是 | 应用id |
app_secret | 是 | 应用secret |
groupId | 否 | 人脸库编号 |
topN | 是 | 返回比对结果最相似的数量,由高到低,例如:2 |
img | 是 | 图片base64 |
返回结果:
{
"faces": [
{
"groupId": "xyb01",
"score": 0.9987342,
"userId": "5f97b281c049c70006c5dd8a"
},
{
"groupId": "xyb01",
"score": 0.40020594,
"userId": "5f918741309dea0007d74af5"
}
],
"info": "success",
"result": 0
}
参数说明:
参数 | 说明 |
---|---|
info | 返回信息描述,成功为success,失败为错误描述信息 |
result | 返回码0成功,返回其他值为失败 |
faces[] | 比对结果列表 |
faces结构
参数 | 说明 |
---|---|
groupId | 人脸库编号 |
score | 比对结果分数 |
userId | 用户id |
3. 静默活体检测
静默活体是在用户无感的情况下直接进行活体校验。不需要用户做任何动作,判断图片中的人脸是否来自于真人活体,有效抵御纸质翻拍照、电子翻拍照以及视频翻拍等各种攻击方式
请求⽅式: POST
请求地址: http://{server}/liveness/action
请求头:
请求参数:
{
"app_id":"system",
"app_secret":"12345",
"param":"YmFzZTY0IGltYWdlCg=="
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
app_id | 是 | 应用id |
app_secret | 是 | 应用secret |
param | 是 | 需要检测的照片。格式为base64字符串 |
返回结果:
{
"extInfo": 1,
"info": "动作活体检测耗时:127 攻击类型:1",
"result": 0
}
参数说明:
参数 | 说明 |
---|---|
info | 返回信息描述,成功为success,失败为失败描述信息 |
result | 返回码0成功,返回其他值为失败 |
extInfo | 攻击类型 1 通过活体检测,其他值为失败 |
4. 照片分析(特征值与质量分析)
分析照片特征值和质量分数
请求⽅式: POST
请求地址: http://{server}/staticdb/search/feature
请求头:
请求参数:
{
"app_id":"system",
"app_secret":"12345",
"img":"YmFzZTY0IGltYWdlCg=="
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
app_id | 是 | 应用id |
app_secret | 是 | 应用secret |
groupId | 否 | 人脸库编号 |
img | 是 | 图片base64 |
返回结果:
{
"feature": "MzQxZmFzZDQxMjM0MTIzNDEyCg==",
"info": "success",
"qualityScores": "0.7341,0.6496,0.0000,0.0008,0.9145,0.5783,0.0005,0.9721,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,-2.7956,0.9578,-1.3971,97.0000,155.0000,199.0000,199.0000,1.0000,0.9635,0.8536,0.0000,0.0000,0.0000,0.0000,0240bea626980479fdcf0e30a248032d",
"result": 0
}
参数说明:
参数 | 说明 |
---|---|
info | 返回信息描述,成功为success,失败为错误描述信息 |
result | 返回码0成功,返回其他值为失败 |
feature | 照片特征值 |
qualityScores | 照片质量评分,逗号间隔开 |
结构化信息(qualityScores)按逗号分割,其中每一位数字所代表的具体信息如下:
[0]人脸质量总分,返回0.0-1.0的分数,分数越大表示照片质量越高
[1]光照分,越大表示光照越适合 推荐范围0.2-0.8
[2]口罩分,分数越大表示越不可能戴口罩
[3]人脸遮挡分数,返回0.0-1.0的分数,越大表示越有可能被遮挡
[4]清晰度分,越大表示越清晰 推荐范围0.65-1.0
[5]是否戴眼镜分数,越大表示越可能戴眼镜 推荐范围0.0-0.5
[6]闭嘴分数,越大表示越可能是闭嘴 推荐范围0.0-0.5
[7]人脸特征点质量分数,越大表示人脸越清晰 0.6
[8]空
[9]戴墨镜的置信分,分数越高,表示戴墨镜的可能性越大 推荐范围0.0-0.5
[10] 年龄
[11] 性别 1 男 2 女
[12] 国籍 1 中国人 2 外国人
[13] 年龄段 1 小孩 2 中年人 4 老人
[14] 正脸侧脸 1.0
[15] 人种 1 黄种人 2 黑种人 4 白种人 8 新疆人
[16] 人脸旋转角-抬头低头角度 pitch
[17] 人脸旋转角-左右旋转角度 yaw
[18] 人脸旋转角-平面内偏头角度 roll
[19] 人脸框 x
[20] 人脸框 y
[21] 人脸框 width
[22] 人脸框 height
[23] 是否黑白打印纸张,越大表示越可能是真人
[24] 左眼睁眼分数, 越大表示左眼越可能是睁眼,推荐范围0.5-1.0
[25] 右眼睁眼分数, 越大表示右眼越可能是睁眼,推荐范围0.5-1.0
注:如果无法提供qualityScores中的所有参数,请至少提供“[0]人脸质量总分”
5. 照片查询
根用户id查询照片信息
请求⽅式: POST
请求地址: http://{server}/face/get
请求头:
请求参数:
{
"app_id":"system",
"app_secret":"12345",
"groupId":"xyb01",
"userId":"testface"
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
app_id | 是 | 应用id |
app_secret | 是 | 应用secret |
groupId | 否 | 人脸库编号 |
userId | 是 | 用户id |
返回结果:
{
"groupId": "xyb01",
"info": "success",
"qualityScore": "0.7341,0.6496,0.0000,0.0008,0.9145,0.5783,0.0005,0.9721,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,-2.7956,0.9578,-1.3971,97.0000,155.0000,199.0000,199.0000,1.0000,0.9635,0.8536,0.0000,0.0000,0.0000,0.0000,0240bea626980479fdcf0e30a248032d",
"result": 0,
"userId": "testface"
}
失败例子
{
"info": "查询人脸错误,错误信息[record not found]",
"result": 20010009
}
参数说明:
参数 | 说明 |
---|---|
info | 返回信息描述,成功为success,失败为错误描述信息 |
result | 返回码0成功,返回其他值为失败 |
groupId | 人脸库编号 |
qualityScore | 照片质量评分 |
userId | 用户id |
6. 照片删除
根据用户id删除照片
请求⽅式: POST
请求地址: http://{server}/face/remove
请求头:
请求参数:
{
"app_id":"system",
"app_secret":"12345",
"groupId":"xyb01",
"userId":"testface"
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
app_id | 是 | 应用id |
app_secret | 是 | 应用secret |
groupId | 否 | 人脸库编号 |
userId | 是 | 用户id |
返回结果:
{
"info": "success",
"result": 0
}
参数说明:
参数 | 说明 |
---|---|
info | 返回信息描述,成功为success,失败为错误描述信息 |
result | 返回码0成功,返回其他值为失败 |
7. 照片修改
根据用户id更新照片信息
请求⽅式: POST
请求地址: http://{server}/face/updatefeature
请求头:
请求参数:
{
"app_id":"system",
"app_secret":"12345",
"groupId":"xyb01",
"userId":"testface",
"img":"YmFzZTY0IGltYWdlCg=="
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
app_id | 是 | 应用id |
app_secret | 是 | 应用secret |
groupId | 否 | 人脸库编号 |
img | 是 | 图片base64 |
返回结果:
{
"info": "success",
"result": 0
}
参数说明:
参数 | 说明 |
---|---|
info | 返回信息描述,成功为success,失败为错误描述信息 |
result | 返回码0成功,返回其他值为失败 |
8. 照片增加
添加一张用户的人脸照片
请求⽅式: POST
请求地址: http://{server}/face/add
请求头:
请求参数:
{
"app_id":"system",
"app_secret":"12345",
"groupId":"xyb01",
"userId":"testface",
"img":"YmFzZTY0IGltYWdlCg=="
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
app_id | 是 | 应用id |
app_secret | 是 | 应用secret |
groupId | 否 | 人脸库编号 |
userId | 是 | 用户id |
img | 是 | 图片base64 |
返回结果:
{
"info": "success",
"result": 0,
"userId": "testface"
}
参数说明:
参数 | 说明 |
---|---|
info | 返回信息描述,成功为success,失败为错误描述信息 |
result | 返回码0成功,返回其他值为失败 |
userId | 用户id |
接口调用失败请查看开发指南-Token与Api调用失败须知