图片识别功能基于图片AI技术,能够检测图片标签和置信度。
前提条件
已开通智能媒体管理IMM,并在OSS中绑定IMM。具体操作,请参见快速入门。
如果您通过RAM用户使用IMM相关功能,需确保RAM用户拥有以下权限。
系统权限:
AliyunOSSReadOnlyAccess
和AliyunIMMFullAccess
关于为RAM用户授权的具体操作,请参见为RAM用户授权。
自定义权限:
oss:ProcessImm
和ram:GetRole
为RAM用户授予自定义权限时,您需要先创建对应的自定义权限,然后为RAM用户授权。具体操作,请参见为RAM用户授予自定义的权限策略。
参数
操作名称:imm/tagimage
返回结果参数说明:
说明
标签采用分层体系结构,每个标签通常包含父标签(主标签)。目前支持的标签种类包含三十多个分类、数千个标签。更多信息,请参见内容识别。
名称 | 类型 | 描述 |
TagId | String | 标签ID。 |
TagLevel | String | 标签级别,从1开始整数编码,1为一级,2为二级,以此类推。 |
TagName | String | 标签名称。 |
ParentTagId | String | 上一级的TagId,如果为一级则ParentTagId为0。 |
ParentTagName | String | 上一级的标签名称,如果为一级则ParentTagName为空。 |
TagScore | String | 标签置信度得分,小于等于1的浮点数。 |
返回结果示例:
{
"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是imm-demo,该Bucket所在区域为华东1(杭州),对应的域名为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)
文档内容是否对您有帮助?