人脸识别功能基于图片AI技术,能够检测图片中的人脸矩形框和属性。如果图片有多张人脸,则会把多张人脸的矩形框和属性都检测出来。基于这些元数据,可以应用于年龄、性别的统计。

说明 要使用人脸识别功能,您需要先开通智能媒体管理IMM,并在OSS中绑定IMM,详情请参见 智能媒体管理快速开始

人脸矩形框包含4个值,分别为左上角纵坐标、左上角横坐标、宽度、高度。

人脸属性包含6个值,分别为性别、年龄、人脸头部姿势、眼睛状态、人脸模糊度、人脸质量。

参数

操作名称:imm/detectface

返回内容示例:
{
    "Faces":[
        {
            "Age":29,
            "Attractive":0.95,
            "Emotion":"HAPPY",
            "EmotionConfidence":0.9875330924987793,
            "EmotionDetails":{
                "ANGRY":0.000016857109585544094,
                "CALM":0.012278525158762932,
                "DISGUSTED":0.000012325451280048583,
                "HAPPY":0.9875330924987793,
                "SAD":0.0000388074986403808,
                "SCARED":0.000006888585176056949,
                "SURPRISED":0.000054363932576961815
            },
            "FaceAttributes":{
                "Beard":"NONE",
                "BeardConfidence":1,
                "FaceBoundary":{
                    "Height":928,
                    "Left":607,
                    "Top":628,
                    "Width":894
                },
                "Glasses":"NONE",
                "GlassesConfidence":1,
                "Mask":"NONE",
                "MaskConfidence":0.9999999403953552,
            },
            "FaceConfidence":0.9704222083091736,
            "FaceId":"4199e1985b6d3bb075f0994c82e6d2fd82a274c11ce183e1fdb222dd3aa8c7ce",
            "Gender":"MALE",
            "GenderConfidence":1,
        }
    ],
    "ImageUri":"oss://image-demo/person.jpg",
    "RequestId":"5C3D854A3243A93A275E9C99",
    "httpStatusCode":200,
    "success":true
}

示例

假设请求Bucket是imm-demo,该Bucket所在区域为华东1(杭州),对应的Endpoint为oss-cn-hangzhou.aliyuncs.com,请求预览照片为person.jpg,未签名的请求结构如下:
http://image-demo.oss-cn-hangzhou.aliyuncs.com/person.jpg?x-oss-process=imm/detectface
通过Python SDK实现接口调用如下:
# 创建存储空间实例,所有文件相关的方法都需要通过存储空间实例来调用。
bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint, bucket_name)

# 人脸识别。
style = 'imm/detectface'
result = bucket.get_object(objectKey, process=style)
#解析结果。
buf = result.read(result.content_length)
print json.dumps(json.loads(buf), indent=4, sort_keys=True)