1. 接口描述
接口请求域名: iai.tencentcloudapi.com 。
用于对一张待识别的人脸图片,在一个或多个人员库中识别出最相似的 TopK 人员,按照相似度从大到小排列。
支持一次性识别图片中的最多 10 张人脸,支持一次性跨 100 个人员库(Group)搜索。
单次搜索的人员库人脸总数量和人员库的算法模型版本(FaceModelVersion)相关。算法模型版本为2.0的人员库,单次搜索人员库人脸总数量不得超过 100 万张;算法模型版本为3.0的人员库,单次搜索人员库人脸总数量不得超过 300 万张。
本接口会将该人员(Person)下的所有人脸(Face)进行融合特征处理,即若某个 Person 下有4张 Face ,本接口会将4张 Face 的特征进行融合处理,生成对应这个 Person 的特征,使人员搜索(确定待识别的人脸图片是某人)更加准确。而人脸搜索及人脸搜索按库返回接口将该人员(Person)下的每个人脸(Face)都作为单独个体进行搜索。
- 公共参数中的签名方式请使用V3版本,即配置SignatureMethod参数为TC3-HMAC-SHA256。
- 仅支持算法模型版本(FaceModelVersion)为3.0的人员库。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:SearchPersons。 |
Version | 是 | String | 公共参数,本接口取值:2020-03-03。 |
Region | 是 | String | 公共参数,详见产品支持的 地域列表。 |
GroupIds.N | 是 | Array of String | 希望搜索的人员库列表,上限100个。数组元素取值为创建人员库接口中的GroupId。 示例值:["TencentShenZhenEmployee"] |
Image | 否 | String | 图片 base64 数据。 - base64 编码后大小不可超过5M。 - jpg格式长边像素不可超过4000,其他格式图片长边像素不可超2000。 - 所有格式的图片短边像素不小于64。 - 若图片中包含多张人脸,只选取其中人脸面积最大的人脸。 - 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 示例值:/9j/4AAQSkZJRg.....s97n//2Q== |
Url | 否 | String | 图片的 Url 。 - 对应图片 base64 编码后大小不可超过5M。 - jpg格式长边像素不可超过4000,其他格式图片长边像素不可超2000。 - 所有格式的图片短边像素不小于64。 - Url、Image必须提供一个,如果都提供,只使用 Url。 - 图片存储于腾讯云的Url可保障更高下载速度和稳定性,建议图片存储于腾讯云。 - 非腾讯云存储的Url速度和稳定性可能受一定影响。 - 支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。 示例值:http://test.image.myqcloud.com/testA.jpg |
MaxFaceNum | 否 | Integer | 最多识别的人脸数目。 - 默认值为1(仅检测图片中面积最大的那张人脸),最大值为10。 - MaxFaceNum用于,当输入的待识别图片包含多张人脸时,设定要搜索的人脸的数量。 - 例:输入的Image或Url中的图片包含多张人脸,设MaxFaceNum=5,则会识别图片中面积最大的5张人脸。 示例值:1 |
MinFaceSize | 否 | Integer | 人脸长和宽的最小尺寸,单位为像素。 - 默认为34。 - 低于34将影响搜索精度。 - 建议设置为80。 示例值:40 |
MaxPersonNum | 否 | Integer | 单张被识别的人脸返回的最相似人员数量。 - 默认值为5,最大值为100。 - 例,设MaxFaceNum为1,MaxPersonNum为8,则返回Top8相似的人员信息。 - 值越大,需要处理的时间越长。建议不要超过10。 示例值:3 |
QualityControl | 否 | Integer | 图片质量控制。 - 取值范围: 0: 不进行控制。 1:较低的质量要求,图像存在非常模糊,眼睛鼻子嘴巴遮挡至少其中一种或多种的情况。 2: 一般的质量要求,图像存在偏亮,偏暗,模糊或一般模糊,眉毛遮挡,脸颊遮挡,下巴遮挡,至少其中三种的情况。 3: 较高的质量要求,图像存在偏亮,偏暗,一般模糊,眉毛遮挡,脸颊遮挡,下巴遮挡,其中一到两种的情况。 4: 很高的质量要求,各个维度均为最好或最多在某一维度上存在轻微问题。 - 默认 0。 - 若图片质量不满足要求,则返回结果中会提示图片质量检测不符要求。 示例值:0 |
FaceMatchThreshold | 否 | Float | 出参Score中,只有大于等于FaceMatchThreshold值的结果才会返回。 - 默认为0。 - 取值范围:[0.0,100.0) 。 示例值:0 |
NeedPersonInfo | 否 | Integer | 是否返回人员具体信息。 - 取值范围:0 为关闭,1 为开启。 - 默认为 0。 - 其他非0非1值默认为0 示例值:0 |
NeedRotateDetection | 否 | Integer | 是否开启图片旋转识别支持。 - 取值范围:0为不开启,1为开启。 - 默认为0。 - 本参数的作用为,当图片中的人脸被旋转且图片没有exif信息时,如果不开启图片旋转识别支持则无法正确检测、识别图片中的人脸。 - 若您确认图片包含exif信息或者您确认输入图中人脸不会出现被旋转情况,请不要开启本参数。开启后,整体耗时将可能增加数百毫秒。 示例值:0 |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
Results | Array of Result | 识别结果。 |
PersonNum | Integer | 搜索的人员库中包含的人员数。若输入图片中所有人脸均不符合质量要求,则返回0。 示例值:5 |
FaceModelVersion | String | 人脸识别所用的算法模型版本。 注意:此字段可能返回 null,表示取不到有效值。 示例值:3.0 |
RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 错误示例
图片URL错误。
输入示例
https://iai.tencentcloudapi.com/?Action=SearchPersons
&Url=http://test.image.myqcloud.com/testA
&GroupIds.0=TencentShenZhenEmployee
&<公共请求参数>
输出示例
{
"Response": {
"Error": {
"Code": "FailedOperation.ImageDownloadError",
"Message": "图片下载错误。"
},
"RequestId": "527ecffe-4c6a-47c9-8217-4dd2e3f018da"
}
}
示例2 人员搜索接口
输入人脸图片,在人员库中识别出最相似的 TopK 人员。
输入示例
https://iai.tencentcloudapi.com/?Action=SearchPersons
&Url=http://test.image.myqcloud.com/testA.jpg
&MaxFaceNum=2
&MinFaceSize=40
&MaxPersonNum=3
&GroupIds.0=TencentShenZhenEmployee
&<公共请求参数>
输出示例
{
"Response": {
"Results": [
{
"RetCode": 0,
"Candidates": [
{
"PersonId": "person1",
"FaceId": "",
"Score": 100,
"PersonName": null,
"Gender": null,
"PersonGroupInfos": null
},
{
"PersonId": "person2",
"FaceId": "",
"Score": 60,
"PersonName": null,
"Gender": null,
"PersonGroupInfos": null
},
{
"PersonId": "person3",
"FaceId": "",
"Score": 50,
"PersonName": null,
"Gender": null,
"PersonGroupInfos": null
}
],
"FaceRect": {
"X": 139,
"Y": 59,
"Width": 124,
"Height": 162
}
},
{
"RetCode": 0,
"Candidates": [
{
"PersonId": "person2",
"FaceId": "",
"Score": 100,
"PersonName": null,
"Gender": null,
"PersonGroupInfos": null
},
{
"PersonId": "person1",
"FaceId": "",
"Score": 60,
"PersonName": null,
"Gender": null,
"PersonGroupInfos": null
},
{
"PersonId": "person3",
"FaceId": "",
"Score": 20,
"PersonName": null,
"Gender": null,
"PersonGroupInfos": null
}
],
"FaceRect": {
"X": 328,
"Y": 70,
"Width": 119,
"Height": 162
}
}
],
"PersonNum": 5,
"FaceModelVersion": "3.0",
"RequestId": "c4608852-ff60-4a01-8dc3-367f6046baaf"
}
}
5. 开发者资源
腾讯云 API 平台
腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。
API Inspector
用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。
SDK
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
- Tencent Cloud SDK 3.0 for Python: GitHub Gitee
- Tencent Cloud SDK 3.0 for Java: GitHub Gitee
- Tencent Cloud SDK 3.0 for PHP: GitHub Gitee
- Tencent Cloud SDK 3.0 for Go: GitHub Gitee
- Tencent Cloud SDK 3.0 for Node.js: GitHub Gitee
- Tencent Cloud SDK 3.0 for .NET: GitHub Gitee
- Tencent Cloud SDK 3.0 for C++: GitHub Gitee
- Tencent Cloud SDK 3.0 for Ruby: GitHub Gitee
命令行工具
6. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
错误码 | 描述 |
---|---|
AuthFailure.InvalidAuthorization | 认证失败。 |
FailedOperation.AcrossVersionsError | 该操作不支持跨算法模型版本。 |
FailedOperation.FaceSizeTooSmall | 人脸框大小小于MinFaceSize设置,人脸被过滤。 |
FailedOperation.ImageDecodeFailed | 图片解码失败。 |
FailedOperation.ImageDownloadError | 图片下载错误。 |
FailedOperation.ImageFacedetectFailed | 人脸检测失败。 |
FailedOperation.ImageResolutionExceed | 图片分辨率过大。 |
FailedOperation.ImageResolutionTooSmall | 图片短边分辨率小于64。 |
FailedOperation.ImageSizeExceed | base64编码后的图片数据大小不超过5M。 |
FailedOperation.RequestLimitExceeded | 请求频率超过限制。 |
FailedOperation.RequestTimeout | 后端服务超时。 |
FailedOperation.SearchFacesExceed | 检索人脸个数超过限制。 |
FailedOperation.ServerError | 算法服务异常,请重试。 |
InternalError | 内部错误。 |
InvalidParameter.InvalidParameter | 参数不合法。 |
InvalidParameterValue.FaceMatchThresholdIllegal | FaceMatchThreshold参数不合法。 |
InvalidParameterValue.GroupIdIllegal | 人员库ID包含非法字符。人员库ID只支持英文、数字、-%@#&_。 |
InvalidParameterValue.GroupIdNotExist | 人员库ID不存在。 |
InvalidParameterValue.GroupIdTooLong | 人员库ID超出长度限制。 |
InvalidParameterValue.GroupIdsExceed | 传入的人员库列表超过限制。 |
InvalidParameterValue.ImageEmpty | 图片为空。 |
InvalidParameterValue.ImageEmptyError | 图片为空。 |
InvalidParameterValue.NoFaceInGroups | 指定分组中没有人脸。 |
InvalidParameterValue.NoFaceInPhoto | 图片中没有人脸。 |
InvalidParameterValue.QualityControlIllegal | QualityControl参数不合法。 |
InvalidParameterValue.SearchPersonsExceed | 搜索的人员数目超过限制。 |
InvalidParameterValue.UnsupportedGroupFaceModelVersion | 该操作不支持算法模型版本2.0及以下版本。 |
InvalidParameterValue.UrlIllegal | URL格式不合法。 |
MissingParameter.ErrorParameterEmpty | 必选参数为空。 |
ResourceUnavailable.ChargeStatusException | 账号已欠费。 |
ResourceUnavailable.Freeze | 账号已被冻结。 |
ResourceUnavailable.GetAuthInfoError | 获取认证信息失败。 |
ResourceUnavailable.InArrears | 账号已欠费。 |
ResourceUnavailable.LowBalance | 余额不足。 |
ResourceUnavailable.NotExist | 计费状态未知,请确认是否已在控制台开通服务。 |
ResourceUnavailable.NotReady | 服务未开通。 |
ResourceUnavailable.Recover | 资源已被回收。 |
ResourceUnavailable.StopUsing | 账号已停服。 |
ResourceUnavailable.UnknownStatus | 计费状态未知。 |
ResourcesSoldOut.ChargeStatusException | 计费状态异常。 |
UnsupportedOperation.UnknowMethod | 未知方法名。 |