文档简介:
人脸比对接口说明
接口描述
用于检测输入的两张图像中的人脸相似度
接口要求
图片格式:
1. 图片单张大小不超过 2MB
2. 图片格式支持jpg/png/bmp等
请求说明
-
请求示例
HTTP方法:POST
请求URL:/v1/aiop/api/[系统生成的服务码]/face/compare/PERSON/person/compareFromBase64
-
请求头说明
参数 |
值(说明) |
Content-Type |
application/json |
Sign |
MD5(AppKey + AppSecret + Timestamp + Path + Http Body),32位小写的MD5加密串 |
Timestamp |
13位时间戳 |
AppKey |
平台分配给应用独立的AppKey |
-
请求参数
参数 |
是否必选 |
类型 |
可选值范围 |
说明 |
img1Base64 |
true |
String |
- |
人脸比对的第一张图片 |
img2Base64 |
true |
String |
- |
人脸比对的第二张图片 |
-
请求代码示例
Bash:
curl -X POST "/v1/aiop/api/[系统生成的服务码]/face/compare/PERSON/person/compareFromBase64" -H "Content-Type: application/json" -H 'Sign: XXXXX' -H 'Timestamp: XXXXX' -H 'AppKey: XXXXX' --data '{
"img1Base64":AAAAAAAAAA....",
"img2Base64":AAAAAAAAAA...."
}'
Python:
# -*- coding: utf-8 -*-
import requests
import base64
import hashlib
import time
import json
'''
人脸比对
'''
def md5(key):
input_name = hashlib.md5()
input_name.update(key.encode("utf-8"))
return input_name.hexdigest()
request_url = "人脸比对的API URL"
# 打开图片文件
f1 = open(r'[本地文件]', 'rb')
img1_base64 = base64.encodebytes(f1.read()).decode()
f2 = open(r'[本地文件]', 'rb')
img2_base64 = base64.encodebytes(f2.read()).decode()
params = {"img1Base64": img1_base64, "img2Base64": img2_base64}
app_key = '平台分配的APP Key'
app_secret = '平台分配的APP Secret'
time_stamp = str(int(round(time.time() * 1000)))
headers = {
'content-type': 'application/json',
'Sign': md5(app_key + app_secret + time_stamp + '/v1/aiop/api/[系统生成的服务码]/face/compare/PERSON/person/compareFromBase64' + json.dumps(params)),
'Timestamp': time_stamp,
'AppKey': app_key
}
response = requests.post(request_url, data=json.dumps(params), headers=headers)
if response:
print(response.json())
-
返回说明
API调用成功返回值
返回字段 |
类型 |
字段说明 |
code |
int |
返回状态,返回0表示成功 |
message |
string |
返回对应的可读消息 |
result |
float |
两张人脸的相似度 |
API调用失败返回值
返回字段 |
是否必选 |
类型 |
字段说明 |
code |
true |
int |
错误码,参见本文档错误码说明部分 |
message |
true |
string |
返回对应的可读消息,值为error |
details |
true |
string |
错误消息 |
返回示例:
HTTP/1.1 200 OK
Content-Type: application/json
{
"message" : "success",
"code" : "0",
"result": 0.99999
}
错误码说明
错误代码 |
错误消息 |
错误可能原因 |
4101 |
请求内容错误 |
传入内容为空,或者传入的参数名错误 |
4102 |
请求参数格式错误 |
参数格式不满足要求,如请求体不是json格式等 |
4103 |
图片大小超过2M |
图片大小超过2M |
4104 |
图片解码失败 |
图片为空,base64编码内容有误,或图片格式不支持 |
4105 |
未检测到人脸 |
上传图片中不包含人脸 |