图片识别

图片识别功能基于图片AI技术,能够检测图片标签和置信度。

重要

智能媒体管理(IMM)后续新增功能、优化均以新版为主,旧版将逐步下线。为了您有更好的使用体验,建议您使用新版的智能媒体管理(IMM)提供的图片标签检测功能。关于智能媒体管理新版与旧版的对比,请参见新旧版本使用指引

前提条件

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

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

参数

操作名称:imm/tagimage

返回结果参数说明:

说明

标签采用分层体系结构,每个标签通常包含父标签(主标签)。目前支持的标签种类包含三十多个分类、数千个标签。更多信息,请参见内容识别

名称

类型

描述

RequestId

string

当次请求的 Request ID。

ImageUri

string

图片的 OSS URI。

TagConfidence

Float

标签置信度得分,小于等于1的浮点数。

TagLevel

Integer

标签级别,从1开始按整数编码,1为一级,2为二级,以此类推。

TagName

String

标签名称。

ParentTagName

String

父级标签名称,如果为一级则ParentTagName为空。

httpStatusCode

Integer

HTTP 响应状态码,表示请求的处理结果。常见的状态码如 200 表示成功。

success

Boolean

请求是否成功,true 表示成功,false 表示失败。

返回结果示例:

{
    "ImageUri":"oss://image-demo/example.jpg",
    "RequestId":"5C3D858E530E23D52CA0ED09",
    "Tags":[
        {
            "TagConfidence":0.2999534606933594,
            "TagLevel":1,
            "TagName":"自然景观"
        },
        {
            "ParentTagName":"自然景观",
            "TagConfidence":0.2999534606933594,
            "TagLevel":2,
            "TagName":"夜晚"
        },
        {
            "TagConfidence":0.2677214741706848,
            "TagLevel":1,
            "TagName":"外部场景"
        },
        {
            "ParentTagName":"外部场景",
            "TagConfidence":0.2677214741706848,
            "TagLevel":2,
            "TagName":"城市全景"
        }
    ],
    "httpStatusCode":200,
    "success":true
}

对于图片标签的格式解析,请参见内容识别

示例

当请求的Bucket位于华东1(杭州)区域,Bucket名称为imm-demo,对应的Endpointoss-cn-hangzhou.aliyuncs.com,请求预览的照片文件名为image.jpg时,未签名的请求结构应如下所示

http://image-demo.oss-cn-hangzhou.aliyuncs.com/image.jpg?x-oss-process=imm/tagimage

通过Python SDK实现接口调用如下:

# 创建存储空间实例。
bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint, bucket_name)

# 图像识别。
style = 'imm/tagimage'
resp = bucket.get_object(objectKey, process=style)

# 解析结果。
data = resp.read(resp.content_length)
result = json.loads(data)
print "requestId: " + json.dumps(result["RequestId"], indent=4, sort_keys=True)
print "SuccessDetails: " + json.dumps(result["SuccessDetails"], indent=4, sort_keys=True)
print "FailDetails: " + json.dumps(result["FailDetails"], indent=4, sort_keys=True)