简介
本文档提供关于人脸识别的 API 概览以及 SDK 示例代码。
人脸检测
功能说明
检测图片中的人脸位置。
方法原型
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) |