更新时间:2022-08-08 GMT+08:00

图像标签(V2.0)

功能介绍

图像标签服务准确识别自然图片中数百种场景、上千种通用物体,涉及数十种标签类别属性。让智能相册管理、照片检索和分类、基于场景内容或者物体的广告推荐等功能更加直观。使用时用户发送待处理图片,返回图片标签内容、对应标签的类别属性以及相应置信度,对于常见物体也支持返回在图像中所在的位置信息。

与V1.0版本相比,V2.0版本细化了标签类别属性,对于常见物体支持了返回物体位置信息。返回信息更加完善,模型升级,准确度更高,推荐使用V2.0版本。

前提条件

URI

URI格式

POST /v2/{project_id}/image/tagging

表1 参数说明

名称

是否必选

说明

project_id

项目ID。

请求消息

请求参数请参见表2
表2 请求参数说明

名称

是否必选

类型

说明

image

false

String

与url二选一。

图像数据,base64编码,要求base64编码后大小不超过10MB,最短边至少15px,最长边最大4096px,支持JPG、PNG、BMP格式。

url

false

String

与image二选一。

图片的URL路径,目前支持:

  • 公网HTTP/HTTPS URL
  • OBS提供的URL,使用OBS数据需要进行授权。包括对服务授权、临时授权、匿名公开授权
说明:
  • 接口响应时间依赖于图片的下载时间,如果图片下载时间过长,会返回接口调用失败。
  • 请保证被检测图片所在的存储服务稳定可靠,推荐使用OBS服务存储图片数据。
  • lmage不支持跨区域OBS,OBS的区域需要和服务保持一致。

language

false

String

zh:返回标签的语言类型为中文。

en:返回标签的语言类型为英文。

默认值为zh。

limit

false

Integer

最多返回的标签数,默认值:50。

threshold

false

Float

置信度的阈值(0~100)。默认值:60。

响应消息

响应参数请参见表3
表3 响应参数说明

名称

类型

说明

result

JSON

调用成功时为图片标签内容。

调用失败时无此字段。

tags

List

标签列表集合。

confidence

String

标签置信度,将Float型置信度转为String类型返回,Float取值范围(0~100)。

tag

String

根据所选的语言种类(目前仅支持中文和英文),返回对应语言的标签名称。

type

String

根据所选的语言种类(目前仅支持中文和英文),返回对应语言的标签类别。

i18n_tag

JSON

标签的国际化字段。(i18n只是个国际化标志,无特殊含义)。

  • zh:中文
  • en:英文

i18n_type

JSON

标签类别的国际化字段。(i18n只是个国际化标志,无特殊含义)。

  • zh:中文
  • en:英文

instances

List

为空时表示没有目标检测框。

非空时包含以下字段:
  • bounding_box:目标检测框位置。
    • width:检测框区域宽度,Float数据
    • height:检测框区域高度,Float数据
    • top_left_y:检测框左上角到垂直轴距离,Float数据
    • top_left_x:检测框左上角到水平轴距离,Float数据
  • confidence:检测标签置信度,将Float型置信度转为String类型返回,Float取值范围(0~100)。

error_code

String

调用失败时的错误码,具体请参见错误码

调用成功时无此字段。

error_msg

String

调用失败时的错误信息。

调用成功时无此字段。

示例

  • 请求示例(方式一:使用图片的BASE64编码)
    POST https://{{image的Endpoint}}/v2/{project_id}/image/tagging
    
    Request Header:   
    Content-Type:application/json 
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...    
    
    Request Body: 
    { 
     "image":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzADIwMTc6MTA6MjAgMTA6NDU6MzYAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAALIKADAAQAAAABAAAGQAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABAj...", 
      "threshold": 60 
    }  
  • 请求示例(方式二:使用图片URL)
    POST https://{{image的Endpoint}}/v2/{project_id}/image/tagging
       
    Request Header:  
    Content-Type:application/json
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...   
    
    Request Body:
    {
      "image":"",
      "url":"https://{{图片的OBS存储路径}}",
      "threshold": 60.0
    } 
  • 成功响应示例
    {
        "result":
        {
            "tags":
            [
                {
                    "confidence": "92.38",
                    "instances":
                    [
                        {
                            "bounding_box":
                            {
                                "height": 133.32496056189905,
                                "top_left_x": 53.134917332575874,
                                "top_left_y": 254.21347984900842,
                                "width": 117.5866567171537
                            },
                            "confidence": "92.38"
                        },
                        {
                            "bounding_box":
                            {
                                "height": 133.32496056189905,
                                "top_left_x": 53.134917332575874,
                                "top_left_y": 254.21347984900842,
                                "width": 117.5866567171537
                            },
                            "confidence": "90.38"
                        }
                    ],
                    "tag": "人",
                    "i18n_tag":
                    {
                        "en": "Person",
                        "zh": "人"
                    },
                    "type": "人类",
                    "i18n_type":
                    {
                        "en": "Human",
                        "zh": "人类"
                    }
                },
                {
                    "confidence": "94.38",
                    "instances":
                    [],
                    "tag": "书本",
                    "i18n_tag":
                    {
                        "en": "Book",
                        "zh": "书本"
                    },
                    "type": "教育",
                    "i18n_type":
                    {
                        "en": "Education",
                        "zh": "教育"
                    }
                },
                {
                    "confidence": "92.38",
                    "instances":
                    [
                        {
                            "bounding_box":
                            {
                                "height": 133.32496056189905,
                                "top_left_x": 53.134917332575874,
                                "top_left_y": 254.21347984900842,
                                "width": 117.5866567171537
                            },
                            "confidence": "92.38"
                        }
                    ],
                    "tag": "床",
                    "i18n_tag":
                    {
                        "en": "Bed",
                        "zh": "床"
                    },
                    "type": "家居",
                    "i18n_type":
                    {
                        "en": "Home category",
                        "zh": "家居"
                    }
                }
            ]
        }
    }
  • 失败响应示例
    {
        "error_code": "AIS.0014",
        "error_msg": "The JSON format of the input data is incorrect."
    }

返回值

  • 正常

    200

  • 失败

    返回值

    说明

    400

    • 语义有误,当前请求无法被服务器解析。除非进行修改,否则客户端不应重复提交这个请求。
    • 请求参数有误。

    401

    当前请求需要用户验证。

    403

    没有操作权限。

    404

    请求失败,在服务器上未找到请求所希望得到的资源。

    500

    服务器遇到了一个未曾预料的状况,导致无法完成对请求的处理。

错误码

错误码请参见 错误码