# 人脸对比服务api文档
# 环境域名
- 生产环境:https://apigate.glodon.com/sabiofaceapi
# 接口鉴权
AECore 鉴权,所有接口的 HTTP Header 增加 token 请求头。
注意
先采取固定 token 的方式便于集成联调,token 固定为 cn-24b92d2f-66cc-45d2-8e8b-e08916bca2d62 例如 addHeader("authorization", "Bearer cn-24b92d2f-66cc-45d2-8e8b-e08916bca2d62") 具体token鉴权规则请参考AECore token 鉴权规则
# 创建分组
功能描述
创建人脸库分组,分组名称不能重复添加。 请求的uri
/api/v1/face-set
请求的方式
- POST
- application/json
请求param参数:
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
setId | String | 是 | bumen | 人脸库分组名称。支持小写字母、数字和下划线的组合,长度为2~64。 |
请求参数示例:
{
"setId":"test"
}
2
3
返回的数据:
{
"code": 200,
"message": "成功",
"data": {
"setId": "test"
}
}
2
3
4
5
6
7
# 删除分组
功能描述
- 删除人脸库分组,连带人脸信息也会被删除。
请求的uri
- /api/v1/face-set/:setId
请求的方式
- DELETE
请求param参数:
无
返回的数据:
{
"code": 200,
"message": "成功",
"data":{
"setId": "test"
}
}
2
3
4
5
6
7
# 人员人脸注册
功能描述
- 注册人脸。
请求的uri
- /api/v1/face
请求的方式
- POST
- application/json
请求param参数:
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
setId | String | 是 | bumen | 人脸库分组名称。支持小写字母、数字和下划线的组合,长度为2~64。 |
entityId | String | 是 | u1 | 实体ID,用来标识用户的唯一性,如用户ID、员工ID等。每个用户下面会包含多张人脸图片。支持大小写字母、数字、下划线、减号的组合,长度为2~64。 |
imageUrl | String | 否 | http://xxx.com/xx.jpg | 注册人脸照片网络路径,与 base64Content 不能同时为空,优先使用 imageUrl 字段。 |
base64Content | String | 否 | base64编码的人脸照片内容,与 imageUrl不能同时为空,优先使用 imageUrl 字段。 | |
extraData | String | 否 | {“roles”: ["a"]} | 自定义json信息 |
请求参数示例:
{
"entityId": "duangduang",
"setId": "test",
"imageUrl": "https://sjzn-cv-data/face-test.jpg",
"base64Content": ""
}
2
3
4
5
6
返回的数据:
{
"code": 200,
"message": "成功",
"data": {
"entityId": "duangduang",
"faceId": "813d11e5-6d1a-4f90-a697-7b885d709a62"
}
}
2
3
4
5
6
7
8
# 人脸底图比对
功能描述
- 对比人脸。
请求的uri
- /api/v1/face/compare
请求的方式
- POST
- application/json
请求param参数:
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
setId | String | 是 | bumen | 人脸库分组名称。支持小写字母、数字和下划线的组合,长度为2~64。 |
entityId | String | 是 | u1 | 实体ID,用来标识用户的唯一性,如用户ID、员工ID等。每个用户下面会包含多张人脸图片。支持大小写字母、数字、下划线、减号的组合,长度为2~64。 |
imageUrl | String | 否 | http://xxx.com/xx.jpg | 注册人脸照片网络路径,与 base64Content 不能同时为空,优先使用 imageUrl 字段。 |
base64Content | String | 否 | base64编码的人脸照片内容,与 imageUrl不能同时为空,优先使用 imageUrl 字段。 |
请求参数示例:
{
"entityId":"duangduang",
"setId":"itservice",
"imageUrl":"",
"base64Content":"/9j/2wCEAAEBAQEBAQIBAQIDAgIBaAP/2Q=="
}
2
3
4
5
6
返回的数据:
{
"code": 200,
"message": "成功",
"data": {
"confidence": 0.74563435,
"extraData": null,
"faceId": "095be609-9ca6-4a02-b9e9-d11acddfd603",
"faceUrl": "https://sjzn-cv-data/face-test.jpg"
}
}
2
3
4
5
6
7
8
9
10
# 修改人脸归属分组
功能描述
- 修改人脸归属到哪个人脸库分组(从分组n移动到分组m)
请求的uri
- /api/v1/face/move
请求的方式
- PUT
- application/json
请求param参数:
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
setId | String | 是 | bumen | 人脸库分组名称。支持小写字母、数字和下划线的组合,长度为2~64。 |
entityId | String | 是 | u1 | 实体ID,用来标识用户的唯一性,如用户ID、员工ID等。每个用户下面会包含多张人脸图片。支持大小写字母、数字、下划线、减号的组合,长度为2~64。 |
faceId | String | 否 | lkjfiwejld | 人脸ID,如果传递该参数则修改指定的人脸数据,如果不传那么对实体下的所有人脸进行操作。 |
请求参数示例:
{
"entityId":"duangduang",
"setId":"itservice2",
"faceId":"c999faba-6204-4e0c-9c4a-ac2ad19c28da"
}
2
3
4
5
返回的数据:
{
"code": 200,
"message": "成功",
"data": {}
}
2
3
4
5
# 删除人脸
功能描述
- 删除人脸,当不传faceId时表示删除人员所有人脸。
请求的uri
- /api/v1/face/:faceId?entityId=:entityId
- /api/v1/face?entityId=:entityId
请求的方式
- DELETE
请求param参数:
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
setId | String | 是 | bumen | 人脸库分组名称。支持小写字母、数字和下划线的组合,长度为2~64。 |
faceId | String | 否 | lkjfiwejld | 人脸ID,如果传递该参数则修改指定的人脸数据,如果不传那么对实体下的所有人脸进行操作。 |
返回的数据:
{
"code": 200,
"message": "成功",
"data":{
"faceId": "face_0001"
}
}
2
3
4
5
6
7
# 删除实体
功能描述
- 删除实体(含人脸)。
请求的uri
- /api/v1/entity/:entityId
请求的方式
- DELETE
请求param参数:
无
返回的数据:
{
"code": 200,
"message": "成功",
"data":{
"entityId": "person_0001"
}
}
2
3
4
5
6
7
# 实体关联人脸信息查询
功能描述
- 查询entityId下注册的所有人脸信息 。
请求的uri
- /api/v1/entity/:entityId/face
请求的方式
- GET
- application/x-www-form-urlencoded
请求param参数:
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
entityId | String | 是 | kesq | 实体ID,用来标识用户的唯一性,如用户ID、员工ID等。每个用户下面会包含多张人脸图片。支持大小写字母、数字、下划线、减号的组合,长度为2~64。 |
返回的数据:
{
"code": 200,
"message": "成功",
"data": {
"entity_id": "ec60a464-3b36-481c-9868-fe2003dd1681",
"face_data": [
{
"create_time": 1602657508103,
"face_id": "178f5346-6566-4bf9-b167-14c670c7c44a",
"set_id": "itservice"
},...
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查询所有实体
功能描述
- 查询当前账号下的所有实体 。
请求的uri
- /api/v1/entity
请求的方式
- GET
- application/x-www-form-urlencoded
请求param参数:
无
返回的数据:
{
"code": 200,
"message": "成功",
"data": {
"entityIds": [
"1dad00e2-ece2-4320-bc3c-1aaeb5b7076b",
"ec60a464-3b36-481c-9868-fe2003dd1681"
]
}
}
2
3
4
5
6
7
8
9
10
# 查询所有分组id
功能描述
- 查询当前账号下的所有分组id列表 。
请求的uri
- /api/v1/face-set
请求的方式
- GET
- application/x-www-form-urlencoded
请求param参数:
无
返回的数据:
{
"code": 200,
"message": "成功",
"data": {
"setIds": [
"liuzhen",
"test001"
]
}
}
2
3
4
5
6
7
8
9
10
# 返回值代码
功能描述
- 人脸服务返回的错误代码表 。
HTTP Status | code | message | data | 描述 |
---|---|---|---|---|
401 | 401 | 未授权 | 相应的错误提示 | 客户端未授权 |
400 | 400 | 参数错误 | 相应的错误提示 | 客户端访问参数错误 |
500 | 500 | 系统错误 | 相应的错误提 | 客户端访问系统错误 |
200 | 200 | 正常 | 相应结果 | 正常处理 |
# 前置准备
# 1.创建应用
登录AECORE,并创建应用,创建应用后即可获取appkey、appsecret,这是调用服务的秘钥请妥善管理。
● 创建应用
● 填写应用信息
应用名称:应用中文名称,可修改;
应用标识:应用的英文名称,唯一且创建后不可变更。
点击“确定”按钮,创建应用,进行应用信息页面,如下图所示
# 2.开通订阅本服务
应用创建后选择并开通本服务,申请应用scope