图片识别功能基于图片AI技术,能够检测图片标签和置信度。
前提条件
已开通智能媒体管理IMM,并在OSS中绑定IMM。具体操作,请参见快速入门。
如果您通过RAM用户使用IMM相关功能,需确保RAM用户拥有以下权限。
系统权限:
AliyunOSSReadOnlyAccess
和AliyunIMMFullAccess
。具体操作,请参见为RAM用户授权。
自定义权限:
oss:ProcessImm
和ram:GetRole
。您需要先创建对应的自定义权限,然后为RAM用户授权。具体操作,请参见为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 | 请求是否成功, |
返回结果示例:
{
"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
,对应的Endpoint为oss-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)