圖片識別功能基于圖片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)