人脸检测与属性分析

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

我的收藏

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。

命令行工具

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 未知方法名。