人脸比对

最近更新时间:2024-11-14 01:41:39

我的收藏

1. 接口描述

接口请求域名: iai.tencentcloudapi.com 。

对两张图片中的人脸进行相似度比对,返回人脸相似度分数。

若您需要判断 “此人是否是某人”,即验证某张图片中的人是否是已知身份的某人,如常见的人脸登录场景,建议使用人脸验证人员验证接口。

  • 公共参数中的签名方式请使用V3版本,即配置SignatureMethod参数为TC3-HMAC-SHA256。
推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:CompareFace。
Version String 公共参数,本接口取值:2020-03-03。
Region String 公共参数,详见产品支持的 地域列表
ImageA String A 图片 base64 数据。
- base64 编码后大小不可超过5M。
- jpg格式长边像素不可超过4000,其他格式图片长边像素不可超2000。所有格式的图片短边像素不小于64。
- 若图片中包含多张人脸,只选取其中置信度最高的人脸。
- 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。
示例值:/9j/4AAQSkZJRg.....s97n//2Q==
ImageB String B 图片 base64 数据。
- base64 编码后大小不可超过5M。
- jpg格式长边像素不可超过4000,其他格式图片长边像素不可超2000。所有格式的图片短边像素不小于64。
- 若图片中包含多张人脸,只选取其中置信度最高的人脸。
- 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。
示例值:/9j/4AAQSkZJRg.....s97n//2Q==
UrlA String A 图片的 Url。
- 对应图片 base64 编码后大小不可超过5M。
- jpg格式长边像素不可超过4000,其他格式图片长边像素不可超2000。所有格式的图片短边像素不小于64。
- A 图片的 Url、Image必须提供一个,如果都提供,只使用 Url。
- 图片存储于腾讯云的Url可保障更高下载速度和稳定性,建议图片存储于腾讯云。
- 非腾讯云存储的Url速度和稳定性可能受一定影响。
- 若图片中包含多张人脸,只选取其中人脸面积最大的人脸。
- 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。
示例值:http://test.image.myqcloud.com/testA.jpg
UrlB String B 图片的 Url 。
- 对应图片 base64 编码后大小不可超过5M。
- jpg格式长边像素不可超过4000,其他格式图片长边像素不可超2000。所有格式的图片短边像素不小于64。
- B 图片的 Url、Image必须提供一个,如果都提供,只使用 Url。
- 图片存储于腾讯云的Url可保障更高下载速度和稳定性,建议图片存储于腾讯云。
- 非腾讯云存储的Url速度和稳定性可能受一定影响。
- 若图片中包含多张人脸,只选取其中人脸面积最大的人脸。
- 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。
示例值:http://test.image.myqcloud.com/testB.jpg
FaceModelVersion String 人脸识别服务所用的算法模型版本。
- 目前入参支持 “2.0”和“3.0“ 两个输入。
- 2020年4月2日开始,默认为“3.0”,之前使用过本接口的账号若未填写本参数默认为“2.0”。
- 2020年11月26日后开通服务的账号仅支持输入“3.0”。
- 不同算法模型版本对应的人脸识别算法不同,新版本的整体效果会优于旧版本,建议使用“3.0”版本。
示例值:3.0
QualityControl Integer 图片质量控制。
- 取值范围:
0: 不进行控制;
1: 较低的质量要求,图像存在非常模糊,眼睛鼻子嘴巴遮挡至少其中一种或多种的情况;
2: 一般的质量要求,图像存在偏亮,偏暗,模糊或一般模糊,眉毛遮挡,脸颊遮挡,下巴遮挡,至少其中三种的情况;
3: 较高的质量要求,图像存在偏亮,偏暗,一般模糊,眉毛遮挡,脸颊遮挡,下巴遮挡,其中一到两种的情况;
4: 很高的质量要求,各个维度均为最好或最多,在某一维度上存在轻微问题;
默认 0。

- 若图片质量不满足要求,则返回结果中会提示图片质量检测不符要求。
示例值:0
NeedRotateDetection Integer 是否开启图片旋转识别支持。
- 取值范围:0为不开启,1为开启。
- 默认为0。
- 本参数的作用为,当图片中的人脸被旋转且图片没有exif信息时,如果不开启图片旋转识别支持则无法正确检测、识别图片中的人脸。
- 若您确认图片包含exif信息或者您确认输入图中人脸不会出现被旋转情况,请不要开启本参数。开启后,整体耗时将可能增加数百毫秒。
示例值:0

3. 输出参数

参数名称 类型 描述
Score Float 两张图片中人脸的相似度分数。
- 不同算法版本返回的相似度分数不同。
- 若需要验证两张图片中人脸是否为同一人,3.0版本误识率千分之一对应分数为40分,误识率万分之一对应分数为50分,误识率十万分之一对应分数为60分。 一般超过50分则可认定为同一人。
- 2.0版本误识率千分之一对应分数为70分,误识率万分之一对应分数为80分,误识率十万分之一对应分数为90分。 一般超过80分则可认定为同一人。
- 若需要验证两张图片中的人脸是否为同一人,建议使用人脸验证接口。
示例值:0.999
FaceModelVersion String 人脸识别所用的算法模型版本。
示例值:3.0
RequestId String 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 人脸比对接口成功示例

对两张图片中的人脸进行相似度比对。

输入示例

POST / HTTP/1.1
Host: iai.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CompareFace
<公共请求参数>

{
    "UrlA": "http://test.image.myqcloud.com/testA.jpg",
    "UrlB": "http://test.image.myqcloud.com/testB.jpg"
}

输出示例

{
    "Response": {
        "Score": 0.999,
        "FaceModelVersion": "3.0",
        "RequestId": "a8eb4545-a154-4f86-9510-57a8be9cae0c"
    }
}

示例2 人脸比对接口异常示例

传入低质量图片,进行相似度比对。

输入示例

POST / HTTP/1.1
Host: iai.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CompareFace
<公共请求参数>

{
    "UrlA": "http://test.image.myqcloud.com/testA.jpg",
    "UrlB": "http://test.image.myqcloud.com/testB.jpg"
}

输出示例

{
    "Response": {
        "Error": {
            "Code": "FailedOperation.FaceQualityNotQualified",
            "Message": "人脸图片质量不符要求。"
        },
        "RequestId": "788270e8-91b7-4c59-bd00-1af257b1e482"
    }
}

5. 开发者资源

腾讯云 API 平台

腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。

API Inspector

用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。

SDK

云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

命令行工具

6. 错误码

以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

错误码 描述
AuthFailure.InvalidAuthorization 认证失败。
FailedOperation.ConflictOperation 操作冲突,请勿同时操作相同的Person。
FailedOperation.DuplicatedGroupDescription 同一人员库中自定义描述字段不可重复。
FailedOperation.FaceQualityNotQualified 人脸图片质量不符要求。
FailedOperation.FaceSizeTooSmall 人脸框大小小于MinFaceSize设置,人脸被过滤。
FailedOperation.GroupInDeletedState 当前组正处于删除状态,请等待。
FailedOperation.GroupPersonMapExist 组中已包含对应的人员Id。
FailedOperation.GroupPersonMapNotExist 组中不包含对应的人员Id。
FailedOperation.ImageDecodeFailed 图片解码失败。
FailedOperation.ImageDownloadError 图片下载错误。
FailedOperation.ImageFacedetectFailed 人脸检测失败。
FailedOperation.ImageResolutionExceed 图片分辨率过大。
FailedOperation.ImageResolutionTooSmall 图片短边分辨率小于64。
FailedOperation.ImageSizeExceed base64编码后的图片数据大小不超过5M。
FailedOperation.RequestTimeout 后端服务超时。
FailedOperation.RpcFail Rpc调用失败。
FailedOperation.SearchFacesExceed 检索人脸个数超过限制。
FailedOperation.ServerError 算法服务异常,请重试。
FailedOperation.UnKnowError 内部错误。
InternalError 内部错误。
InvalidParameter.InvalidParameter 参数不合法。
InvalidParameterValue.AccountFaceNumExceed 账号脸数量超出限制。
InvalidParameterValue.DeleteFaceNumExceed 删除人脸数量超出限制。每个人员至少需要包含一张人脸。
InvalidParameterValue.FaceModelVersionIllegal 算法模型版本不合法。
InvalidParameterValue.GroupExDescriptionsExceed 人员库自定义描述字段数组长度超过限制。最多可以创建5个。
InvalidParameterValue.GroupExDescriptionsNameIdentical 人员库自定义描述字段名称不可重复。
InvalidParameterValue.GroupExDescriptionsNameIllegal 人员库自定义描述字段名称包含非法字符。人员库自定义描述字段名称只支持中英文、-、_、数字。
InvalidParameterValue.GroupExDescriptionsNameTooLong 人员库自定义描述字段名称长度超出限制。
InvalidParameterValue.GroupFaceNumExceed 人员库人脸数量超出限制。
InvalidParameterValue.GroupIdAlreadyExist 人员库ID已经存在。人员库ID不可重复。
InvalidParameterValue.GroupIdIllegal 人员库ID包含非法字符。人员库ID只支持英文、数字、-%@#&_。
InvalidParameterValue.GroupIdNotExist 人员库ID不存在。
InvalidParameterValue.GroupIdTooLong 人员库ID超出长度限制。
InvalidParameterValue.GroupIdsExceed 传入的人员库列表超过限制。
InvalidParameterValue.GroupNameAlreadyExist 人员库名称已经存在。人员库名称不可重复。
InvalidParameterValue.GroupNameIllegal 人员库名称包含非法字符。人员库名称只支持中英文、-、_、数字。
InvalidParameterValue.GroupNameTooLong 人员库名称超出长度限制。
InvalidParameterValue.GroupNumExceed 人员库数量超出限制。如需增加,请联系我们。
InvalidParameterValue.GroupNumPerPersonExceed 人员库数量超出限制。单个人员最多可被添加至100个人员库。
InvalidParameterValue.GroupTagIllegal 人员库备注包含非法字符。人员库备注只支持中英文、-、_、数字。
InvalidParameterValue.GroupTagTooLong 人员库备注超出长度限制。
InvalidParameterValue.ImageEmpty 图片为空。
InvalidParameterValue.LimitExceed 返回数量超出限制。
InvalidParameterValue.NoFaceInGroups 指定分组中没有人脸。
InvalidParameterValue.NoFaceInPhoto 图片中没有人脸。
InvalidParameterValue.OffsetExceed 起始序号过大。请检查需要请求的数组长度。
InvalidParameterValue.PersonExDescriptionInfosExceed 人员自定义描述字段数组长度超过限制。最多5个。
InvalidParameterValue.PersonExDescriptionsNameIdentical 人员自定义描述字段名称不可重复。
InvalidParameterValue.PersonExDescriptionsNameIllegal 人员自定义描述字段名称包含非法字符。人员自定义描述字段名称只支持中英文、-、_、数字。
InvalidParameterValue.PersonExDescriptionsNameTooLong 人员自定义描述字段名称长度超出限制。
InvalidParameterValue.PersonExistInGroup 组中已包含对应的人员Id。
InvalidParameterValue.PersonFaceNumExceed 人员人脸数量超出限制。单个人员最多可以包含五张人脸。
InvalidParameterValue.PersonGenderIllegal 人员性别设置出错。0代表未填写,1代表男性,2代表女性。
InvalidParameterValue.PersonIdAlreadyExist 人员ID已经存在。人员ID不可重复。
InvalidParameterValue.PersonIdIllegal 人员ID包含非法字符。人员ID只支持英文、数字、-%@#&_。
InvalidParameterValue.PersonIdNotExist 人员ID不存在。
InvalidParameterValue.PersonIdTooLong 人员ID超出长度限制。
InvalidParameterValue.PersonNameIllegal 人员名称包含非法字符。人员名称只支持中英文、-、_、数字。
InvalidParameterValue.PersonNameTooLong 人员名称超出长度限制。
InvalidParameterValue.QualityControlIllegal QualityControl参数不合法。
InvalidParameterValue.SearchPersonsExceed 搜索的人员数目超过限制。
InvalidParameterValue.UploadFaceNumExceed 一次最多上传四张人脸。
InvalidParameterValue.UrlIllegal URL格式不合法。
LimitExceeded.ErrorFaceNumExceed 人脸个数超过限制。
MissingParameter.ErrorParameterEmpty 必选参数为空。
ResourceUnavailable.Delivering 资源正在发货中。
ResourceUnavailable.Freeze 账号已被冻结。
ResourceUnavailable.InArrears 账号已欠费。
ResourceUnavailable.LowBalance 余额不足。
ResourceUnavailable.NotExist 计费状态未知,请确认是否已在控制台开通服务。
ResourceUnavailable.Recover 资源已被回收。
ResourceUnavailable.StopUsing 账号已停服。
ResourceUnavailable.UnknownStatus 计费状态未知。
ResourcesSoldOut.ChargeStatusException 计费状态异常。
UnsupportedOperation.UnknowMethod 未知方法名。