图像识别

最近更新时间:2020-07-09 15:03:06

内容安全图像识别API文档

目录

调用方式

请求结构

服务地址

内容安全图像识别API的服务接入地址为:http://kir.api.ksyun.com

通信协议

支持通过HTTP或HTTPS协议进行请求通信。为保证您的服务安全性,请使用HTTPS协议进行通信。

请求方式

支持GET方法发送请求,注意参数需要进行urlencode。

公共参数

公共请求header

参数名 必选 类型 说明
Authorization string 必要的请求验证信息
X-Amz-Date string 当前请求的时间戳,例如:20171129T114852Z
Host string kir.api.ksyun.com

签名参数

Region:金山云机房信息,目前仅支持cn-beijing-6

Service:固定为kir

返回结果

接口统一返回json格式数据,满足以下格式:

{
    "header":{
      "err_no":200,
      "err_msg":"success"
    },
    "cost":0.11,
    "request_id": "d679e27b-9f1b-44bf-b134-49a6d9f0adff",
    "request_time": 1234567890123
}

调用成功,err_no返回200,msg为success,否则返回对应错误码及错误信息。

cost为服务端耗时,单位秒。

每此请求会返回唯一的请求表示request_id,调用失败时提供request_id给金山云客服,方便定位问题。

request_time为每次请求时的服务器时间。

调用失败示例:

{
    "header":{
      "err_no":510,
      "err_msg":"请求太频繁"
    },
    "cost":0,
    "request_id": "d679e27b-9f1b-44bf-b134-49a6d9f0adff"
}

签名机制

详见金山云签名机制文档

内容安全图像识别接口

输入:

GET参数部分

参数名 必选 类型 说明
Action=ClassifyImageGuard string 固定此值
Version=2019-01-18 string API版本号,固定此值

POST请求示例

{
    "guard_id":"xxxx",
    "image_url":"http://xxx.jpg",
    "image_data":"base64 for image data",
    "live_stream_id":"xxx"
}

POST参数说明

参数 必选 类型 说明
guard_id string 送审计划id
image_url string 图片url
image_data string 图片内容的BASE64编码,不能超过1MB
live_stream_id string 直播流id,用户可以自定义内容

送审计划id获取路径:金睛内容识别 > 送审管理模块 > 送审计划列表/送审计划详情 > 复制送审计划id

图像识别

详见金睛内容识别平台操作手册

接口返回:

{
    "header":{
      "err_no":200,
      "err_msg":"success"
    },
    "cost":0.11,
    "request_id": "d679e27b-9f1b-44bf-b134-49a6d9f0adff",
    "request_time": 1234567890123,
    "body":{
        "data_id":"7705a64b43f0b0778058aa2559c533a8",
        "image_url":"http://xxx.jpg",
        "err_no":400, //仅图片格式出现错误有此信息
        "err_msg":"图片格式错误", //仅图片格式出现错误有此信息
        "suggest_summary": "confirm_reject",
        "suggest_summary_code": "233000",
        "suggest_summary_message": "图像涉政",
        "results":[
            {
                "err_no":400, //仅此业务结果出现错误有此信息
                "err_msg":"模型输出错误", //仅此业务结果出现错误有此信息
                "business": "porn",
                "label": "2",
                "label_desc": "低俗",
                "suggest": "suggest_review",
                "rate": 0.59970703125,
                "label_details": {
                    "second_labels": [
                        {
                            "rate": 0.59970703125,
                            "label": "47",
                            "label_desc": "ACG穿着低俗"
                        }
                    ]
                }
            },{
                "business": "terrorism",
                "label": "2",
                "label_desc": "暴恐",
                "suggest": "suggest_review",
                "rate": 0.445998877286911,
                "label_details": {
                    "second_labels": [
                        {
                            "rate": 0.445998877286911,
                            "label": "4",
                            "label_desc": "极端旗帜"
                        }
                    ]
                }
            },{
                "business": "illegal",
                "label": "1",
                "label_desc": "正常",
                "suggest": "normal",
                "rate": 0.9939418435096741,
                "label_details": {
                    "second_labels": [
                        {
                            "rate": 9939418435096741,
                            "label": "101",
                            "label_desc": "ACG违规"
                        }
                    ]
                }
            },{
                "business": "politic",
                "label": "2",
                "label_desc": "敏感人物",
                "suggest": "confirm_reject",
                "rate": 0.990704357624054,
                "label_details": [
                    {
                        "face_position": [
                            117.89945855342201,
                            62.68863123655319,
                            363.25957166808683,
                            389.22652787715197
                        ],
                        "faces": [
                            {
                                "face_name": "陈水扁",
                                "rate": 0.990704357624054
                            }
                        ]
                    }
                ],
                "face_name": "陈水扁",
                "face_data": [
                    {
                        "face_position": [
                            117.89945855342201,
                            62.68863123655319,
                            363.25957166808683,
                            389.22652787715197
                        ],
                        "faces": [
                            {
                                "face_name": "陈水扁",
                                "rate": 0.990704357624054
                            }
                        ]
                    }
                ]
            },{
                "business": "ocr",
                "label": "1",
                "label_desc": "正常",
                "suggest": "normal",
                "rate": 0.99,
                "label_details": {
                    "word_list": [
                        "1"
                    ],
                    "text_filter": {
                        "conclusion": "正常",
                        "risk_type": "",
                        "matched_item": ""
                    }
                }
            },{
                "business": "ad",
                "label": "2",
                "label_desc": "水印",
                "suggest": "confirm_reject",
                "rate": 0.9680339694023132,
                "label_details": {
                    "second_labels": [
                        {
                            "label": "302",
                            "label_desc": "水印",
                            "rate": 0.993783712387085
                        }
                    ]
                }
            },{
                "business": "sensitive",
                "label": "4",
                "label_desc": "涉政人物",
                "suggest": "suggest_review",
                "rate": 0.739,
                "label_details": {
                     "second_labels": [
                        {
                            "face_name": "陈水扁",
                            "rate": 0.73970703125,
                            "label": "21",
                            "label_desc": "台独",
                            "face_position": [
                                117.89945855342201,
                                62.68863123655319,
                                363.25957166808683,
                                389.22652787715197
                            ]
                        }
                     ]
                }
            }
        ]
    }
}

接口输出字段解释:

字段 类型 是否必须 说明
business string 调用服务名称
色情图像识别:porn;
暴恐图像识别:terrorism;
违规违法图像识别:illegal;
敏感人物图像识别:politic;
OCR图像识别:ocr;
广告图像识别:ad;
涉政图像识别: sensitive
label string 分类标签ID
label_desc string 分类标签
rate double 分类置信度 [0, 1.0],值越大置信度越高
image_url string 对应请求中的地址
data_id string 唯一标识该图片
suggest_summary string confirm_reject:拒绝;suggest_review:疑似;normal:通过
suggest_summary_code string 295000:图像涉黄;
229000:图像涉暴;
233000:图像涉政;
245000:图像OCR违规;
237000:图像违规违法;
241000:广告图片;
349000: 图像政治敏感;
suggest_summary_message string 295000:图像涉黄;
229000:图像涉暴;
233000:图像涉政;
245000:图像OCR违规;
237000:图像违规违法;
241000:广告图片;
349000: 图像政治敏感;
results array 色情/暴恐/违规违法/敏感人物/OCR/广告/涉政识别结果,具体返回字段请参照下方图像识别服务results字段说明

内容安全批量图像识别接口

输入:

GET参数部分

参数名 必选 类型 说明
Action=ClassifyMultipleImages string 固定此值
Version=2020-06-15 string API版本号,固定此值

POST请求示例

{
    "guard_id":"xxxx",
    "image_urls":["http://xxx.jpg", "http://xxx.jpg"],
    "businesses":["porn","terrorism","illegal","ocr","ad","sensitive"],
    "live_stream_id":"xxx"
}

POST参数说明

参数 必选 类型 说明
guard_id string 送审计划id
image_urls array 图片url列表, 数量不得大于10
businesses array 指定送审模型列表,默认走送审计划下全部开通模型
live_stream_id string 直播流id,用户自定义内容

送审计划id获取路径:金睛内容识别 > 送审管理模块 > 送审计划列表/送审计划详情 > 复制送审计划id

图像识别

详见金睛内容识别平台操作手册

接口返回:

{
    "header": {
        "err_no": 200,
        "err_msg": "success"
    },
    "cost": 0.11,
    "request_id": "d679e27b-9f1b-44bf-b134-49a6d9f0adff",
    "request_time": 1234567890123,
    "body": [{
        "err_no": 405, //仅图片识别结果出错时有此信息
        "err_msg": "ImageInvalid", //仅图片识别结果出错时有此信息
        "image_url": "http://xxx.jpg"
    }, {
        "data_id": "7705a64b43f0b0778058aa2559c533a8",
        "image_url": "http://xxx.jpg",
        "suggest_summary": "confirm_reject",
        "suggest_summary_code": "233000",
        "suggest_summary_message": "图像涉政",
        "results": [{
            "err_no": 611, //仅此业务结果出现错误有此信息
            "err_msg": "模型服务出错", //仅此业务结果出现错误有此信息
            "business": "porn",
            "model_version": "XXXXXX"
        }, {
            "business": "terrorism",
            "model_version": "XXXXXX",
            "label": "2",
            "label_desc": "暴恐",
            "suggest": "suggest_review",
            "rate": 0.445998877286911,
            "label_details": {
                "second_labels": [{
                    "rate": 0.445998877286911,
                    "label": "4",
                    "label_desc": "极端旗帜"
                }]
            }
        }, {
            "business": "illegal",
            "model_version": "XXXXXX",
            "label": "1",
            "label_desc": "正常",
            "suggest": "normal",
            "rate": 0.9939418435096741,
            "label_details": {
                "second_labels": [{
                    "rate": 9939418435096741,
                    "label": "101",
                    "label_desc": "ACG违规"
                }]
            }
        }, {
            "business": "ad",
            "model_version": "XXXXXX",
            "label": "2",
            "label_desc": "水印",
            "suggest": "confirm_reject",
            "rate": 0.9680339694023132,
            "label_details": {
                "second_labels": [{
                    "label": "302",
                    "label_desc": "水印",
                    "rate": 0.993783712387085
                }]
            }
        }, {
            "business": "sensitive",
            "model_version": "XXXXXX",
            "label": "4",
            "label_desc": "涉政人物",
            "suggest": "suggest_review",
            "rate": 0.739,
            "label_details": {
                "second_labels": [{
                    "face_name": "陈水扁",
                    "rate": 0.73970703125,
                    "label": "21",
                    "label_desc": "台独",
                    "face_position": [117.89945855342201, 62.68863123655319, 363.25957166808683, 389.22652787715197]
                }]
            }
        }]
    }]
}

接口输出字段解释:

字段 类型 是否必须 说明
business string 调用服务名称
色情图像识别:porn;
暴恐图像识别:terrorism;
违规违法图像识别:illegal;
敏感人物图像识别:politic;
OCR图像识别:ocr;
广告图像识别:ad;
涉政图像识别: sensitive
label string 分类标签ID
label_desc string 分类标签
rate double 分类置信度 [0, 1.0],值越大置信度越高
image_url string 对应请求中的地址
data_id string 唯一标识该图片
suggest_summary string confirm_reject:拒绝;suggest_review:疑似;normal:通过
suggest_summary_code string 295000:图像涉黄;
229000:图像涉暴;
233000:图像涉政;
245000:图像OCR违规;
237000:图像违规违法;
241000:广告图片;
349000: 图像政治敏感;
suggest_summary_message string 295000:图像涉黄;
229000:图像涉暴;
233000:图像涉政;
245000:图像OCR违规;
237000:图像违规违法;
241000:广告图片;
349000: 图像政治敏感;
results array 色情/暴恐/违规违法/敏感人物/OCR/广告/涉政识别结果,具体返回字段请参照下方图像识别服务results字段说明

图像识别服务results字段说明

内容安全批量图像识别接口

字段 类型 是否必须 说明
suggest string confirm_reject:拒绝;suggest_review:疑似;normal:通过
label string 分类标签ID
porn: 1正常;2低俗;3色情;1001自定义图像黑名单;1002自定义图像白名单
label_desc string 分类标签
porn: 1正常;2低俗;3色情;1001自定义图像黑名单;1002自定义图像白名单
label_details.second_labels.rate double 置信度
label_details.second_labels.label string 二级标签id
label_details.second_labels.label_desc string 二级标签描述
model_version string 模型版本号,仅批量图像识别接口返回

色情图像识别二级标签映射

label_details.second_labels.label label_details.second_labels.label_desc
47 ACG穿着低俗
13 露臀线
14 露背
15 女性露乳沟
62 ACG露乳轮廓
20 穿着低俗
22 男性裸露上体
46 ACG精乳液
45 ACG亲吻
17 亲吻
18 舔舐动作
50 ACG舔舐动作
49 ACG摸胸
16 揉胸
30 床上场景
19 性用品
51 ACG性用品

暴恐图像识别对应的results字段

字段 类型 是否必须 说明
suggest string confirm_reject:拒绝;suggest_review:疑似;normal:通过
label string 分类标签ID
terrorism: 1正常;2暴恐;3血腥;1001自定义图像黑名单;1002自定义图像白名单
label_desc string 分类标签
terrorism: 1正常;2暴恐;3血腥;1001自定义图像黑名单;1002自定义图像白名单
label_details.second_labels.rate double 置信度
label_details.second_labels.label string 二级标签id
label_details.second_labels.label_desc string 二级标签描述
model_version string 模型版本号,仅批量图像识别接口返回

暴恐图像识别二级标签映射

label_details.second_labels.label label_details.second_labels.label_desc
1 武器携带
2 国内军装
3 特殊着装
4 大型武器
5 游行示威
6 暴乱场景
7 极端组织
19 ACG涉徽
20 ACG大型武器
21 ACG极端组织
22 ACG恐怖
8 血腥场景
9 车祸现场
10 肢体残缺
18 ACG血腥
23 非作战类迷彩服装
24 旧军装
25 其他聚集
26 正常刀具
100 极端旗帜
201 违法运动

违规违法图像识别对应的results字段

字段 类型 是否必须 说明
suggest string confirm_reject:拒绝;suggest_review:疑似;normal:通过
label string 分类标签ID
illegal: 1正常;2违法;3违规;4ACG违规;1001自定义图像黑名单;1002自定义图像白名单
label_desc string 分类标签
illegal: 1正常;2违法;3违规;4ACG违规;1001自定义图像黑名单;1002自定义图像白名单
label_details.second_labels.rate double 置信度
label_details.second_labels.label string 二级标签id
label_details.second_labels.label_desc string 二级标签描述
model_version string 模型版本号,仅批量图像识别接口返回

违规违法图像识别对应的results字段

label_details.second_labels.label label_details.second_labels.label_desc
101 ACG违规
15 涉毒
16 封建迷信
17 赌博场景
11 涉旗涉徽
12 吸烟持烟
14 危险驾驶
13 未成年

敏感人物图像识别对应的results字段

字段 类型 是否必须 说明
label string 分类标签ID
politic: 1非敏感人物;2敏感人物;3无人脸;1001自定义图像黑名单;1002自定义图像白名单
label_desc string 分类标签
politic: 1非敏感人物;2敏感人物;3无人脸;1001自定义图像黑名单;1002自定义图像白名单
label_details object 敏感人物输出的特殊结果
face_name string 最相似的人物名称
face_data json array 当检测出人脸时含有该部分信息,一张图有可能返回多个敏感人脸结果
face_position json array 左上角坐标和右下角坐标
faces json array 一个人脸可能对应多个敏感人物信息
faces.face_name string 人脸名称
faces.rate double 该人物与该位置人脸的相似度
suggest string confirm_reject:拒绝;normal:通过
model_version string 模型版本号,仅批量图像识别接口返回

OCR图像识别对应的results字段

字段 类型 是否必须 说明
label string 分类标签ID
1:正常
2:涉黄
3:广告
4:涉暴
5:涉政
6:辱骂
1001:自定义图像黑名单
1002:自定义图像白名单
label_desc string 分类标签ID
1:正常
2:涉黄
3:广告
4:涉暴
5:涉政
6:辱骂
1001:自定义图像黑名单
1002:自定义图像白名单
label_details object ocr识别详情
label_details.text_filter.conclusion string 同label_desc描述
label_details.text_filter.risk_type string 同label_desc描述
label_details.text_filter.matched_item string 违规文本
label_details.word_list array 识别出的详细的文本内容
label_details.position array 文字结果对应坐标
暂时不提供
suggest string confirm_reject:拒绝;normal:通过
model_version string 模型版本号,仅批量图像识别接口返回

广告图像识别对应的results字段

字段 类型 是否必须 说明
label string 分类标签ID
1:无广告;2:水印;3:二维码;4:条形码;1001自定义图像黑名单;1002自定义图像白名单
label_desc string 分类标签
1:无广告;2:水印;3:二维码;4:条形码;1001自定义图像黑名单;1002自定义图像白名单
label_details object 广告识别详情
suggest string confirm_reject:拒绝;normal:通过
label_details.second_labels.rate double 置信度
label_details.second_labels.label string 二级标签id
label_details.second_labels.label_desc string 二级标签描述
model_version string 模型版本号,仅批量图像识别接口返回

广告图像识别二级标签映射

label_details.second_labels.label label_details.second_labels.label_desc
301 无广告
302 水印
303 二维码
304 条形码

涉政图像识别对应的results字段

字段 类型 是否必须 说明
suggest string confirm_reject:拒绝;suggest_review:疑似;normal:通过
label string 分类标签ID
1正常;2涉政运动;3涉政动漫4涉政人物;5涉政违规;1001自定义图像黑名单;1002自定义图像白名单
label_desc string 分类标签
1正常;2涉政运动;3涉政动漫4涉政人物;5涉政违规;1001自定义图像黑名单;1002自定义图像白名单
label_details.second_labels.rate double 置信度
label_details.second_labels.label string 二级标签id
label_details.second_labels.label_desc string 二级标签描述
model_version string 模型版本号,仅批量图像识别接口返回

涉政图像识别二级标签映射

label_details.second_labels.label label_details.second_labels.label_desc
1 六四运动
2 七五事件
3 占中运动
4 反送中运动
5 其他涉政运动
6 涉一号首长
7 涉其他国家领导人
8 政治事件
9 其他涉政动漫
10 现任国级副国级领导人
11 历任国级副国级领导人
12 省部级及以下领导人
13 文革相关人员
14 落马官员及涉案人员
15 港澳领导人
16 台湾领导人
17 落马官员家属
18 重要领导人家属
19 民运及异见人士
20 港独
21 台独
22 疆独
23 藏独
24 广电封杀明星
25 极端组织和邪教人员
26 革命领袖和英雄
27 主要国外领导人
28 其他国外领导人
29 国内军装
30 大型武器
31 游行示威
32 暴乱场景
33 涉旗涉徽

错误码说明

调用接口失败时,返回的HTTP消息体将中包含具体的错误信息,下表为错误码的具体说明,找不到错误原因时,可以联系我们,并提供Response中的RequestId/request_id,以便尽快解决问题。

签名错误码

错误代码(Code) 错误消息(Message) 状态码 说明
IncompleteSignature Date must be in ISO-8601 'basic format'. Got '%s'. See http://en.wikipedia.org/wiki/ISO_8601. 400 Date必须符合ISO_8601基本格式,参考:http://en.wikipedia.org/wiki/ISO_8601
IncompleteSignature KSC query-string parameters must include %s. Re-examine the query-string parameters. 400 查询条件中缺少签署信息,查询条件中必须包含”X-Amz-Algorithm“、”X-Amz-Credential“、”X-Amz-SignedHeaders“、”X-Amz-Date“信息
IncompleteSignature Unsupported ksc 'algorithm': %s. 400 只支持如下签名算法:AWS4-HMAC-SHA256
IncompleteSignature Authorization header requires 'Credential' parameter. Authorization=%s. 400 请求Authorization header中需要包含“Credential”参数
IncompleteSignature Credential must have exactly 5 slash-delimited elements, e.g. accesskeyid/date/region/service/aws4_request, got: %s. 400 请求Authorization header中中“Credential”至少包含5项以斜杠分隔的元素,如:keyid/date/region/service/aws4_request
IncompleteSignature Authorization header format error. 400 请求Authorization header的格式错误
IncompleteSignature Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header, Authorization=%s 400 请求中缺少“X-Amz-Date”或者“Date” header信息
IncompleteSignature Authorization header requires 'Signature' parameter. Authorization=%s 400 请求Authorization header中缺少“Signature”信息
IncompleteSignature Authorization header requires 'SignedHeaders' parameter. Authorization=%s 400 请求Authorization header中缺少“SignedHeaders”信息
MissingAuthenticationToken Request is missing 'Host' header. 403 请求header中缺少Host
MissingAuthenticationToken Request is missing Authentication Token. 403 请求header中缺少认证token
MissingAuthenticationToken %s not in Http Header. 403 %s不在Http header中
SignatureDoesNotMatch Host' must be a 'SignedHeader' in the Authorization. 403 请求的SignedHeader中必须包含Host
SignatureDoesNotMatch Credential should be scoped with a valid terminator: 'aws4_request', not: %s. 403 请求Authorization header中的“Credential”末尾必须是“aws4_request”
SignatureDoesNotMatch Credential should be scoped to a valid region, not:%s. 403 请求Authorization header中的“Credential”中的Region信息无效
SignatureDoesNotMatch Credential should be scoped to correct service: %s. 403 请求Authorization header中的“Credential”中的Service信息无效
SignatureDoesNotMatch The request signature we calculated does not match the signature you provided. 403 请求中提供的签名与实际计算结果不匹配
SignatureDoesNotMatch Signature expired:%s. 403 签名已过期
SignatureDoesNotMatch Date in Credential scope does not match YYYYMMDD from ISO-8601 version of date from HTTP. 403 请求Authorization header中的“Credential”中的Date应该是ISO8601基本格式,形如”YYYYMMDD“
InvalidClientTokenId The security token included in the request is invalid. 403 请求中提供的AccessKeyId无效

业务层级错误码

err_msg err_no 说明
请求参数有误 400 检查参数
图片格式不合法 405 检查图片格式、大小
图片太大 421 检查图片大小
图片为空 422 检查图片参数
下载图片超时 508 检查图片大小
请求太频繁 510 请求QPS超过限制

其他说明

图片大小限制为5M,长宽像素不大于10000,图片下载时间限制为2.5s内,如果下载时间超过2.5s返回下载超时;

图片像素建议不小于256*256,太小可能会影响识别效果;

图片检测接口响应时间依赖图片的下载时间,请保证所检测图片所在的存储服务的稳定,图片建议使用金山云对象存储或者cdn做缓存等;

建议客户端超时时间设置为4-5s;

接口regionId仅支持cn-beijing-6;

金山云,开启您的云计算之旅

免费注册