人脸搜索1:N
人脸搜索是指在已有的人脸库中,查询与目标人脸相似的一张或者多张人脸,并返回相应的相似度。如果图片中包含多个人脸,选取输入的图片中检测到的质量最高的人脸作为检索的输入。
接口调用说明
请求地址 : /v1/api/frs/face/search
请求方式 : POST
请求头
参数名 | 参数值 | 是否必须 |
---|---|---|
Content-Type | application/json | 是 |
X-Token | 实际accessToken | 是 |
请求报文体
名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
colName | String | 是 | 要查询的人脸库 |
dataType | String | 是 | 数据类型 url : 图片URL; base64 : base64 编码的二进制图片数据 |
imgUrl | String | 否 | 图片下载地址,dataType=url时必填 |
imgBase64 | String | 否 | 图片base64数据,dataType=base64时必填 |
imgId | String | 否 | 用户指定的图片外部ID,填写此值将会先根据此值进行过滤后再进行人脸搜索 |
extraFieldA | String | 否 | 用户自定义字段A,填写此值将会先根据此值进行过滤后再进行人脸搜索 |
extraFieldB | String | 否 | 用户自定义字段B,填写此值将会先根据此值进行过滤后再进行人脸搜索 |
topN | Integer | 否 | 默认值=5,N张人脸按照相似度降序排序,相似度越大越靠前,取值范围[1,50] |
sThreshold | number | 否 | 人脸相似度阈值,低于这个阈值则不返回,取值范围(0,1],一般情况下建议取值0.75,默认为0.75 |
注意:topN并不一定总能返回N个结果,综合其他过滤条件后的结果一般 <=topN
示例数据
HTTP/1.1 200 OK
Content-Type:application/json
X-Token: eyJ0eXAiOiJKV1Q.***.hkdsfiYHFDJKDFQPEO
{
"colName":"default",
"dataType":"url",
"imgUrl":"https://viapi-test.oss-cn-shanghai.aliyuncs.com/test/imgsearch/demo/1.png",
"imgBase64":"",
"imgId":"",
"extraFieldA":"",
"extraFieldB":"",
"topN": 10,
"sThreshold": 0.61
}
响应报文
名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
code | Integer | 是 | 状态码 |
msg | String | 是 | 状态码解释信息 |
data | Object | 否 | 返回内容(具体内容见下表格) |
data内容如下:
名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
faceId | Integer | 是 | 人脸id |
quality | Integer | 是 | 人脸质量分,[0,100] |
gender | String | 是 | 性别:male-男 female-女 |
age | Integer | 是 | 年龄:(0-6)分别对应区间(0~9,10-19,20~29,30~39,40~49,50~59,60~) |
x | Integer | 否 | 人脸坐标框x,单位像素 |
y | Integer | 是 | 人脸坐标框y,单位像素 |
w | Integer | 是 | 人脸坐标框w,单位像素 |
h | Integer | 是 | 人脸坐标框h,单位像素 |
cover | Integer | 是 | 是否戴口罩:0,没戴,1,戴 |
faceList | []Object | 是 | 搜索到的人脸列表,按照相似度倒序排列 |
上述内容中的人脸坐标位置以及人脸属性是根据用户输入的人脸图片检测到的内容,而faceList
是人脸搜索到的结果
faceList内容如下:
名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
faceId | Integer | 是 | 人脸ID |
similarity | number | 是 | 人脸相似度,1表示最大,0表示最小,值越大表示越相似 |
imgId | String | 是 | 用户指定的图片外部ID |
extraFieldA | String | 是 | 用户自定义字段A |
extraFieldB | String | 是 | 用户自定义字段B |
extraData | String | 否 | 用户自定义字段 |
示例数据
HTTP/1.1 200 OK
Content-Type:application/json
{
"code": 1000,
"msg": "success",
"data": {
"quality": 94,
"gender": "female",
"age": 3,
"x": 82,
"y": 32,
"w": 79,
"h": 104,
"cover": 0,
"faceList": [
{
"faceId": 451538484897866681,
"similarity": 0.98,
"imgId": "32dfsdee56fgdw312fgf6768",
"extraFieldA": "12221SS7UH0H8",
"extraFieldB": "6h95rhg562gfg56768h45hgghkp8",
"extraData": "{\"sn\":\"12221SSS8H6D\"}"
},
{
"faceId": 451538484897866683,
"similarity": 0.97,
"imgId": "32dfsdee56fgdw312fgf6768",
"extraFieldA": "12221SS7UH0H8",
"extraFieldB": "6h95rhg562gfg56768h45hgghkp8",
"extraData": "{\"sn\":\"12221SSS8H6D\"}"
},
{
"faceId": 451538484897866685,
"similarity": 0.93,
"imgId": "32dfsdee56fgdw312fgf6768",
"extraFieldA": "12221SS7UH0H8",
"extraFieldB": "6h95rhg562gfg56768h45hgghkp8",
"extraData": "{\"sn\":\"12221SSS8H6D\"}"
}
]
}
}