人脸识别

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

前提条件

  • 已开通智能媒体管理IMM,并在OSS中绑定IMM。具体操作,请参见快速入门

  • 如果您通过RAM用户使用IMM相关功能,需确保RAM用户拥有以下权限。

    • 系统权限:AliyunOSSReadOnlyAccessAliyunIMMFullAccess

      关于为RAM用户授权的具体操作,请参见为RAM用户授权

    • 自定义权限:oss:ProcessImmram:GetRole

      为RAM用户授予自定义权限时,您需要先创建对应的自定义权限,然后为RAM用户授权。具体操作,请参见为RAM用户授予自定义的权限策略

功能概述

  • 人脸矩形框

    人脸矩形框包含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)