人脸识别

最近更新时间:2023-07-20 16:06:23

我的收藏

简介

本文档提供关于人脸识别的 API 概览以及 SDK 示例代码。
API
操作描述
人脸检测功能为同步请求方式,您可以通过本接口检测图片中的人脸位置
人脸特效支持人脸美颜、人脸性别变换、人脸年龄变化、人像分割的特效功能,适用于社交娱乐、广告营销、互动传播等场景

人脸检测

功能说明

检测图片中的人脸位置。

方法原型

func (s *CIService) DetectFace(ctx context.Context, key string, opt *DetectFaceOptions) (*DetectFaceResult, *Response, error)

请求示例

obj := "pic/face.jpeg"
opt := &cos.DetectFaceOptions{
MaxFaceNum: 2,
}
res, _, err := c.CI.DetectFace(context.Background(), obj, opt)

参数说明

type DetectFaceOptions struct {
    MaxFaceNum int `url:"max-face-num,omitempty"`
}
参数名称
参数描述
是否必选
key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/pic/pic.jpg中,对象键为 pic/pic.jpg
MaxFaceNum
最多处理的人脸数目。默认值为1(仅检测图片中面积最大的那张人脸),最大值为120。此参数用于控制处理待检测图片中的人脸个数,值越小,处理速度越快

结果说明

type DetectFaceResult struct {
XMLName xml.Name `xml:"Response"`
ImageWidth int `xml:"ImageWidth,omitempty"`
ImageHeight int `xml:"ImageHeight,omitempty"`
FaceModelVersion string `xml:"FaceModelVersion,omitempty"`
RequestId string `xml:"RequestId,omitempty"`
FaceInfos []FaceInfos `xml:"FaceInfos,omitempty"`
}

type FaceInfos struct {
X int `xml:"X,omitempty"`
Y int `xml:"Y,omitempty"`
Width int `xml:"Width,omitempty"`
Height int `xml:"Height,omitempty"`
}
参数名称
参数描述
ImageWidth
请求的图片宽度
ImageHeight
请求的图片高度
FaceModelVersion
人脸识别所用的算法模型版本
RequestId
唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId
FaceInfos
人脸信息列表。包含人脸坐标信息
X
人脸框左上角横坐标。人脸框包含人脸五官位置并在此基础上进行一定的扩展,若人脸框超出图片范围,会导致坐标负值
Y
人脸框左上角纵坐标。人脸框包含人脸五官位置并在此基础上进行一定的扩展,若人脸框超出图片范围,会导致坐标负值
Width
人脸框宽度
Height
人脸框高度

人脸特效

功能说明

人脸特效支持人脸美颜、人脸性别变换、人脸年龄变化、人像分割的特效功能。

方法原型

func (s *CIService) FaceEffect(ctx context.Context, obj string, opt *FaceEffectOptions) (*FaceEffectResult, *Response, error)

请求示例

obj := "pic/self.jpeg"
opt := &cos.FaceEffectOptions{
Type: "face-segmentation",
Whitening: 50,
}
res, _, err := c.CI.FaceEffect(context.Background(), obj, opt)

参数说明

type FaceEffectOptions struct {
    Type         string `url:"type,omitempty"`
    Whitening    int    `url:"whitening,omitempty"`
    Smoothing    int    `url:"smoothing,omitempty"`
    FaceLifting  int    `url:"faceLifting,omitempty"`
    EyeEnlarging int    `url:"eyeEnlarging,omitempty"`
    Gender       int    `url:"gender,omitempty"`
    Age          int    `url:"age,omitempty"`
}
参数名称
参数描述
是否必选
key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/pic/pic.jpg中,对象键为 pic/pic.jpg
Type
人脸特效相关选项
人脸特效类型。人脸美颜:face-beautify;人脸性别转换:face-gender-transformation;人脸年龄变化:face-age-transformation;人像分割:face-segmentation
Whitening
type 为 face-beautify 时生效,美白程度,取值范围[0,100]。0表示不美白,100表示最高程度。默认值30
Smoothing
type 为 face-beautify 时生效,磨皮程度,取值范围[0,100]。0表示不磨皮,100表示最高程度。默认值10
FaceLifting
type 为 face-beautify 时生效,瘦脸程度,取值范围[0,100]。0表示不瘦脸,100表示最高程度。默认值70
EyeEnlarging
type 为 face-beautify 时生效,大眼程度,取值范围[0,100]。0表示不大眼,100表示最高程度。默认值70
Gender
type 为 face-gender-transformation 时生效,选择转换方向,0表示男变女,1表示女变男。无默认值。
注意:仅对图片中面积最大的人脸进行转换
Age
type 为 face-age-transformation 时生效,变化到的人脸年龄,范围为[10,80],无默认值。
注意:仅对图片中面积最大的人脸进行转换

结果说明

type FaceEffectResult struct {
XMLName xml.Name `xml:"Response"`
ResultImage string `xml:"ResultImage,omitempty"`
ResultMask string `xml:"ResultMask,omitempty"`
}
参数名称
参数描述
ResultImage
处理后的图片 base64 数据
ResultMask
人像分割输出参数,一个通过 Base64 编码的文件,解码后文件由 Float 型浮点数组成。这些浮点数代表原图从左上角开始的每一行的每一个像素点,每一个浮点数的值是原图相应像素点位于人体轮廓内的置信度(0-1)转化的灰度值(0-255)