1. 接口描述
接口请求域名: iai.tencentcloudapi.com 。
检测给定图片中的人脸(Face)的位置、相应的面部属性和人脸质量信息,位置包括 (x,y,w,h),面部属性包括性别(gender)、年龄(age)、表情(expression)、魅力(beauty)、眼镜(glass)、发型(hair)、口罩(mask)和姿态 (pitch,roll,yaw)。
其中,人脸质量信息主要用于评价输入的人脸图片的质量。在使用人脸识别服务时,建议您对输入的人脸图片进行质量检测,提升后续业务处理的效果。该功能的应用场景包括:
1) 人员库创建人员/增加人脸:保证人员人脸信息的质量,便于后续的业务处理。
2) 人脸搜索:保证输入的图片质量,快速准确匹配到对应的人员。
3) 人脸验证:保证人脸信息的质量,避免明明是本人却认证不通过的情况。
4) 人脸融合:保证上传的人脸质量,人脸融合的效果更好。
- 本接口是人脸检测与分析的升级,具体在于:
1.本接口可以指定需要计算返回的人脸属性,避免无效计算,降低耗时;
2.本接口支持更多属性细项数,也会持续增加更多功能。
请您使用本接口完成相应的人脸检测与属性分析需求。
- 公共参数中的签名方式请使用V3版本,即配置SignatureMethod参数为TC3-HMAC-SHA256。
推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:DetectFaceAttributes。 |
Version | 是 | String | 公共参数,本接口取值:2020-03-03。 |
Region | 是 | String | 公共参数,详见产品支持的 地域列表。 |
MaxFaceNum | 否 | Integer | 最多处理的人脸数目。 - 默认值为1(仅检测图片中面积最大的那张人脸),最大值为120。 - 此参数用于控制处理待检测图片中的人脸个数,值越小,处理速度越快。 示例值:1 |
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 |
FaceAttributesType | 否 | String | 是否返回年龄、性别、情绪等属性。 - 合法值为(大小写不敏感):None、Age、Beauty、Emotion、Eye、Eyebrow、Gender、Hair、Hat、Headpose、Mask、Mouth、Moustache、Nose、Shape、Skin、Smile。 - None为不需要返回。 - 默认为 None。即FaceAttributesType属性为空时,各属性返回值为0。 - 需要将属性组成一个用逗号分隔的字符串,属性之间的顺序没有要求。 - 关于各属性的详细描述,参见下文出参。 - 最多返回面积最大的 5 张人脸属性信息,超过 5 张人脸(第 6 张及以后的人脸)的 AttributesInfo 不具备参考意义。 示例值:eye |
NeedRotateDetection | 否 | Integer | 是否开启图片旋转识别支持。 - 0为不开启,1为开启。 - 默认为0。 - 本参数的作用为,当图片中的人脸被旋转且图片没有exif信息时,如果不开启图片旋转识别支持则无法正确检测、识别图片中的人脸。 - 若您确认图片包含exif信息或者您确认输入图中人脸不会出现被旋转情况,请不要开启本参数。开启后,整体耗时将可能增加数百毫秒。 示例值:0 |
FaceModelVersion | 否 | String | 人脸识别服务所用的算法模型版本。本接口仅支持“3.0”输入 示例值:3.0 |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
ImageWidth | Integer | 请求的图片宽度。 示例值:550 |
ImageHeight | Integer | 请求的图片高度。 示例值:366 |
FaceDetailInfos | Array of FaceDetailInfo | 人脸信息列表。 |
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: DetectFaceAttributes
<公共请求参数>
{
"Url": "http://test.image.myqcloud.com/testA.jpg",
"FaceAttributesType": "eye"
}
输出示例
{
"Response": {
"ImageWidth": 550,
"ImageHeight": 366,
"FaceModelVersion": "3.0",
"FaceDetailInfos": [
{
"FaceRect": {
"X": 375,
"Y": 37,
"Width": 63,
"Height": 82
},
"FaceDetailAttributesInfo": {
"Age": 0,
"Beauty": 0,
"Emotion": {
"Type": 0,
"Probability": 0
},
"Eye": {
"Glass": {
"Type": 0,
"Probability": 0.99936753511429
},
"EyeOpen": {
"Type": 0,
"Probability": 0.99949336051941
},
"EyelidType": {
"Type": 1,
"Probability": 0.75467920303345
},
"EyeSize": {
"Type": 2,
"Probability": 0.59152442216873
}
},
"Eyebrow": {
"EyebrowDensity": {
"Type": 0,
"Probability": 0
},
"EyebrowCurve": {
"Type": 0,
"Probability": 0
},
"EyebrowLength": {
"Type": 0,
"Probability": 0
}
},
"Gender": {
"Type": 0,
"Probability": 0
},
"Hair": {
"Length": {
"Type": 0,
"Probability": 0
},
"Bang": {
"Type": 0,
"Probability": 0
},
"Color": {
"Type": 0,
"Probability": 0
}
},
"Hat": {
"Style": {
"Type": 0,
"Probability": 0
},
"Color": {
"Type": 0,
"Probability": 0
}
},
"HeadPose": {
"Pitch": 0,
"Yaw": 0,
"Roll": 0
},
"Mask": {
"Type": 0,
"Probability": 0
},
"Mouth": {
"MouthOpen": {
"Type": 0,
"Probability": 0
}
},
"Moustache": {
"Type": 0,
"Probability": 0
},
"Nose": {
"Type": 2,
"Probability": 0.75233882665634
},
"Shape": {
"Type": 0,
"Probability": 0
},
"Skin": {
"Type": 0,
"Probability": 0
},
"Smile": 0
}
}
],
"RequestId": "b2c154b9-4620-4d37-8fd1-f6af3748f998"
}
}
示例2 人脸检测与属性分析失败示例
人脸检测与属性分析失败。
输入示例
POST / HTTP/1.1
Host: iai.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: DetectFaceAttributes
<公共请求参数>
{
"Url": "http://test.image.myqcloud.com/testB.jpg",
"FaceAttributesType": "eye"
}
输出示例
{
"Response": {
"RequestId": "ab0ebc1d-7a0e-4327-808b-3d24322a97dd",
"Error": {
"Code": "InvalidParameterValue.NoFaceInPhoto",
"Message": "图片中没有人脸。"
}
}
}
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.FaceSizeTooSmall | 人脸框大小小于MinFaceSize设置,人脸被过滤。 |
FailedOperation.ImageDecodeFailed | 图片解码失败。 |
FailedOperation.ImageDownloadError | 图片下载错误。 |
FailedOperation.ImageResolutionExceed | 图片分辨率过大。 |
FailedOperation.ImageResolutionTooSmall | 图片短边分辨率小于64。 |
FailedOperation.ImageSizeExceed | base64编码后的图片数据大小不超过5M。 |
FailedOperation.RequestLimitExceeded | 请求频率超过限制。 |
FailedOperation.RequestTimeout | 后端服务超时。 |
FailedOperation.RpcFail | Rpc调用失败。 |
FailedOperation.ServerError | 算法服务异常,请重试。 |
FailedOperation.UnKnowError | 内部错误。 |
InternalError | 内部错误。 |
InvalidParameter.InvalidParameter | 参数不合法。 |
InvalidParameterValue.FaceModelVersionIllegal | 算法模型版本不合法。 |
InvalidParameterValue.ImageEmpty | 图片为空。 |
InvalidParameterValue.NoFaceInPhoto | 图片中没有人脸。 |
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 | 未知方法名。 |