图片审核增强版异步检测API

API功能介绍

图片审核增强版API用于识别图像中是否有违反网络内容传播相关规定、影响平台内容秩序、影响用户体验的内容或元素,支持60+的内容风险标签和100+的风险管控项。通过内容安全的图片审核增强版,您可以根据业务所处的行业场景规范或平台内容治理规则,基于API返回的丰富的风险标签和置信分,对具体图片内容制定进一步的审核或治理措施。更多介绍,请参见图片审核增强版介绍及计费说明

接入指引

  1. 注册阿里云账号:立即注册,按照操作提示完成账号注册。

  2. 开通内容安全按量付费:请确保您已开通服务,开通不收费,接口接入使用后系统会按使用量自动出账,详情请参见计费说明您也可以购买按量抵扣资源包,资源包相较于后付费存在一定阶梯抵扣,适合使用量级可预期和较大的用户。

  3. 创建AccessKey:请确保您已通过RAM创建AccessKey,如果您使用的是子账号AccessKey,您需要通过主账号给子账号赋予AliyunYundunGreenWebFullAccess权限,具体操作,请参见RAM授权

  4. 开发接入:推荐使用SDK方式调用,具体方法请详见图片审核增强版SDK及接入指南

  5. 图片审核增强版异步检测服务包含以下2个接口:

    • ImageAsyncModeration:提交图片异步审核任务

    • DescribeImageModerationResult:获取审核任务结果

提交异步检测任务

使用说明

您可以调用该接口创建图片内容检测任务。关于如何构造HTTP请求,请参见HTTP原生调用;您也可以直接选用已构造好的HTTP请求,更多信息,请参见接入指南

  • 业务接口:ImageAsyncModeration

  • 支持的地域及接入地址

    地域

    外网接入地址

    内网接入地址

    支持服务

    华东2(上海)

    https://green-cip.cn-shanghai.aliyuncs.com

    https://green-cip-vpc.cn-shanghai.aliyuncs.com

    baselineCheck、baselineCheck_pro、tonalityImprove、aigcCheck、profilePhotoCheck、postImageCheck、advertisingCheck、liveStreamCheck

    华北2(北京)

    https://green-cip.cn-beijing.aliyuncs.com

    https://green-cip-vpc.cn-beijing.aliyuncs.com

  • 计费信息

    该接口为收费接口。仅对HTTP状态码为200的请求进行计量计费,产生其他错误码时不会计费。关于计费方式,请参见计费说明

  • 图片要求

    • 图片支持以下格式:PNG、JPG、JPEG、BMP、WEBP、TIFF、SVG、HEIC(该格式最长边需小于8192 px)、ICO(取最后一图)、GIF(默认取第一帧,支持通过参数设置多帧)。

    • 图片大小限制在20 MB以内,高或者宽不能超过16,384 px,且总像素不能超过1.67亿 px。像素建议大于200*200(px),像素过低会影响内容安全检测算法的效果。

    • 图片下载时间限制为7秒内,如果下载时间超过7秒,返回下载超时。

  • 返回结果:异步检测任务不会实时返回检测结果,您需要通过callback或者轮询的方式获取检测结果。检测结果最长保留3天。

    • callback获取检测结果:提交异步检测任务时,在请求参数中传入callback参数,用来自动接收检测结果。

    • 轮询获取检测结果:提交异步检测任务时,无需传入callback参数;提交异步检测任务后,调用结果查询接口获取检测结果。异步检测当前为排队检测,结果会在24小时内检测完毕。

QPS限制

本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。如果您业务量级较大或者有紧急扩容需求需要更大QPS,请联系您的商务经理。

调试

在接入前,您也可以通过阿里云OpenAPI在线调试图片审核增强版的接口,查看调用示例代码及SDK依赖信息,方便概览接口的使用方法和参数。

重要

在线调试能力是基于当前登录账号调用内容安全的API接口,因此调用量会计入账号的收费用量中。

请求参数

关于在请求中必须包含的公共请求参数,请参考公共参数

请求body是一个JSON结构体,包含以下字段:

名称

类型

是否必选

示例值

描述

Service

String

baselineCheck

图片检测增强版支持的检测服务。取值:

  • baselineCheck:通用基线检测

  • baselineCheck_pro:通用基线检测_专业版

  • baselineCheck_cb:通用基线检测_海外版

  • tonalityImprove:内容治理检测

  • aigcCheck:AIGC图片检测

  • profilePhotoCheck:头像图片检测

  • postImageCheck:帖子评论图片检测

  • advertisingCheck:营销素材检测

  • liveStreamCheck:视频\直播截图检测

说明

不同服务区别请参考服务说明

ServiceParameters

JSONString

内容检测对象的相关参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters

表 1. ServiceParameters

名称

类型

是否必选

示例值

描述

imageUrl

String

是。图片审核增强版支持三种方式传入图片,请您选择其中一种:

  • 使用图片URL方式进行检测,传入imageUrl。

  • 使用OSS授权进行检测,必须同时传入ossBucketName、ossObjectName、ossRegionId。

  • 使用本地图片进行检测。上传本地图片检测,不占用您的OSS存储空间,且文件只存储30分钟。SDK接入已经集成本地图片上传功能,具体代码示例,请参见图片审核增强版SDK及接入指南

https://img.alicdn.com/tfs/TB1U4r9AeH2gK0jSZJnXXaT1FXa-2880-480.png

待检测对象的URL,请确保该URL能通过公网访问到,且URL地址长度不超过2048个字符。

说明

URL地址中不能包含中文,且一次请求请确保仅传入1条URL。

ossBucketName

String

bucket_01

已授权OSS空间的Bucket名。

说明

使用OSS图片内网地址时必须先使用阿里云账号(即主账号)访问云资源访问授权页面进行授权。

ossObjectName

String

2022023/04/24/test.jpg

已授权OSS空间的文件名。

ossRegionId

String

cn-beijing

OSS Bucket所在区域。

dataId

String

img123****

检测对象对应的数据ID。

由大小写英文字母、数字、下划线(_)、短划线(-)、英文句号(.)组成,不超过64个字符,可以用于唯一标识您的业务数据。

callback

String

http://www.aliyundoc.com

检测结果回调通知您的URL,支持使用HTTP和HTTPS协议的地址。该字段为空时,您必须定时轮询检测结果。

callback接口必须支持POST方法、UTF-8编码的传输数据,以及表单参数ReqIdChecksumContent

内容安全按照以下规则和格式设置ReqIdChecksumContent,调用您的callback接口返回检测结果。

  • ReqId:提交异步检测任务返回的请求ID。

  • Checksum:字符串格式,由用户uid + seed + content拼成字符串,通过SHA256算法生成。用户UID即阿里云账号ID,可以在阿里云控制台查询。为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与Checksum做一次校验。

    说明

    用户UID必须是阿里云账号的UID,而不是RAM用户的UID。

  • Content:JSON字符串格式,请自行解析反转成JSON对象。关于Content结果的示例,请参见查询检测结果的返回示例。

说明

您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。

seed

String

abc****

随机字符串,该值用于回调通知请求中的签名。

由英文字母、数字、下划线(_)组成,不超过64个字符。由您自定义,用于在接收到内容安全的回调通知时校验请求由阿里云内容安全服务发起。

说明

当使用callback时,该字段必须提供。

cryptType

String

SHA256

使用回调通知时(callback),设置对回调通知内容进行加密的算法。内容安全会将返回结果(由用户uid + seed + content拼接的字符串)按照您设置的加密算法加密后,再发送到您的回调通知地址。取值:

  • SHA256(默认):使用SHA256加密算法。

  • SM3:使用国密HMAC-SM3加密算法,返回十六进制的字符串,且字符串由小写字母和数字组成。例如,abc经国密SM3加密后返回。

interval

Integer

1

截帧频率,GIF图、长图检测专用。只有该值存在时,才会对GIF图和长图进行截帧。

  • GIF图可理解为图片帧数组,interval参数指定了每多少帧取一张图进行检测。

  • 长图分为长竖图和长横图。

    • 对长竖图(高大于400像素(px),高宽比大于2.5),按照(高:宽)取整来计算总图数,并进行切割。

    • 对长横图(宽大于400像素(px),宽高比大于2.5),按照(宽:高)取整来计算总图数,并进行切割。

如果不传该值,默认只会检测GIF图的第一帧、长图会压缩后检测。

说明

interval 需要与 maxFrameNum 参数组合使用。例如,设置 interval 为2, maxFrameNum 为10,在检测GIF图、长图时,将每2帧检测1张图,最多检测10张图,计费则按照实际检测的数量计算。

maxFrameNum

Integer

10

最大截帧数量,GIF图、长图检测专用,默认值为10,代表最多截取10帧。

取值限制1~100。

如果interval* maxFrameNum 小于GIF图、长图所包含的图片帧数量时,截帧间隔自动修改为GIF图、长图所包含的图片帧数/ maxFrameNum,以提高整体检测效果。

referer

String

www.aliyun.com

referer请求头,用于防盗链等场景。长度不超过256个字符。

返回数据

名称

类型

示例值

描述

Code

Integer

200

状态码。更多信息,请参见Code说明

Msg

String

OK

请求消息的响应消息。

RequestId

String

ABCD1234-1234-1234-1234-123****

请求ID。

Data

Object

检测结果。

ReqId

String

ABCD1234-1234-1234-1234-123****

请求ID。可用于查询审核任务结果。

DataId

String

img123******

检测对象对应的数据ID。

示例

请求示例

{
    "Service": "baselineCheck",
    "ServiceParameters": {
        "imageUrl": "https://img.alicdn.com/tfs/TB1Mq6ZmCslXu8jSZFuXXXg7FXa-1440-568.jpg",
        "dataId": "img123******",
        "interval": 1,
        "maxFrameNum": 50
    }
}

返回示例

{
    "Msg": "OK",
    "Code": 200,
    "RequestId": "ABCD1234-1234-1234-1234-1234XYZ",
    "Data": {
        "ReqId": "ABCD1234-1234-1234-1234-1234XYZ",
        "DataId": "img123******"
    }
}

获取审核任务结果

接口说明

  • 业务接口:DescribeImageModerationResult,表示获取图片审核增强版审核任务结果。

  • 计费信息:该接口不计费。

  • 查询超时:建议您将查询间隔设置为30秒(即在提交异步检测任务30秒之后查询结果),最长不能超出3天,否则结果将会自动删除。

QPS限制

本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。

调试

在接入前,您也可以通过阿里云OpenAPI在线调试获取图片审核增强版审核任务结果的接口,查看调用示例代码及SDK依赖信息,方便概览接口的使用方法和参数。

请求参数

名称

类型

是否必选

示例值

描述

ReqId

String

ABCD1234-1234-1234-1234-123****

请求ID。是指图片审核增强版同步检测API返回的RequestId字段。

返回数据

名称

类型

示例值

描述

RequestId

String

ABCD1234-1234-1234-1234-123****

本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。

Data

Object

图片内容检测结果。更多信息,请参见Data

Code

Integer

200

状态码。更多信息,请参见Code说明

Msg

String

OK

本次请求的响应消息。

表 2. Data

名称

类型

示例值

描述

Result

Array

图片检测的风险标签、置信分等参数结果。更多信息,请参见Result

RiskLevel

String

high

风险等级,根据设置的高低风险分返回,返回值包括:

  • high:高风险

  • medium:中风险

  • low:低风险

  • none:未检测到风险

说明

高风险内容建议直接处置;中风险内容建议人工复查;低风险内容建议在高召回需求时再做处理,日常建议和未检测到风险做相同处理。风险分值可以在内容安全控制台配置。

DataId

String

img123******

检测对象对应的数据ID。

说明

如果在检测请求参数中传入了dataId,则此处返回对应的dataId。

FrameNum

Integer

10

图片返回总截帧数。

Frame

String

[{\"Result\":[{\"Confidence\":98.88,\"Label\":\"contraband_gamble\"}],\"TempUrl\":\"http://www.aliyundoc.com/test1.jpg\"}]

图片截帧信息的JSON字符串。包含以下字段:

  • tepmUrl:图片截帧的临时存储url信息,有效期5分钟,请及时转存图片截帧。

  • Result:图片检测的风险标签、置信分等参数结果。更多信息,请参见Result

说明

当图片未截帧时仅返回当前图片信息;当动图和长图存在截帧时会返回每1张截帧的信息。

表 3. Result

名称

类型

示例值

描述

Label

String

violent_explosion

图片内容检测运算后返回的标签。同一张图片可能会检出多个标签和分值。支持的标签,请参见:

Confidence

Float

81.22

置信分值,0到100分,保留到小数点后2位。部分标签无置信分,更多信息,请参见风险标签释义表

Description

String

烟火类内容

对Labal字段的说明。

重要

该字段为Label字段的解释说明,可能会变更调整,实际处理结果时建议处理Label字段,不要基于该字段进行结果处置。

示例

请求示例

{
  "ReqId": "ABCD1234-1234-1234-1234-123****"
}

返回示例

  • 系统检测到风险内容时,返回示例:

    {
        "Msg": "success",
        "Code": 200,
        "Data": {
            "DataId": "img123****",
            "Result": [
                {
                    "Label": "pornographic_adultContent",
                    "Confidence": 81,
                    "Description": "成人色情"
                },
                {
                    "Label": "sexual_partialNudity",
                    "Confidence": 98,
                    "Description": "肢体裸露或性感"
                },
                {
                    "Label": "violent_explosion",
                    "Confidence": 70,
                    "Description": "烟火类内容"
                },
                {
                    "Label": "violent_explosion_lib",
                    "Confidence": 81,
                    "Description": "烟火类内容_命中自定义库"
                }
            ],
            "RiskLevel": "high",
            "Frame": "[{\"Result\":[{\"Confidence\":98.18,\"Label\":\"contraband_gamble\"},{\"Confidence\":96.39,\"Label\":\"pornographic_adultContent\"},{\"Confidence\":95.27,\"Label\":\"violent_explosion\"}],\"TempUrl\":\"http://www.aliyundoc.com/test1.jpg\"},{\"Result\":[{\"Confidence\":91.18,\"Label\":\"violent_explosion_lib\"}],\"TempUrl\":\"http://www.aliyundoc.com/test2.jpg\"}]",
            "FrameNum": 2
        },
        "RequestId": "ABCD1234-1234-1234-1234-123****"
    }
  • 当系统没有检测到风险内容时,返回示例:

    {
        "Msg": "success",
        "Code": 200,
        "Data": {
            "DataId": "img123****",
            "Result": [
                {
                    "Label": "nonLabel",
                    "Confidence": null,
                    "Description": "未检测出风险"
                }
            ],
            "RiskLevel": "none",
            "Frame": "[{\"Result\":[{\"Label\":\"nonLabel\"}],\"TempUrl\":\"http://www.aliyundoc.com/test1.jpg\"},{\"Result\":[{\"Label\":\"nonLabel\"}],\"TempUrl\":\"http://www.aliyundoc.com/test2.jpg\"}]",
            "FrameNum": 2
        },
        "RequestId": "ABCD1234-1234-1234-1234-123****"
    }
  • 系统检测到您传入的图片命中了您配置的免审图库时,返回示例:

    {
        "Msg": "success",
        "Code": 200,
        "Data": {
            "DataId": "img123****",
            "Result": [
                {
                    "Label": "nonLabel_lib",
                    "Confidence": 99.66,
                    "Description": "命中免审图库"
                }
            ],
            "RiskLevel": "none",
            "Frame": "[{\"Result\":[{\"Confidence\":99.66,\"Label\":\"nonLabel_lib\"}],\"TempUrl\":\"http://www.aliyundoc.com/test1.jpg\"},{\"Result\":[{\"Confidence\":81.18,\"Label\":\"nonLabel_lib\"}],\"TempUrl\":\"http://www.aliyundoc.com/test2.jpg\"}]",
            "FrameNum": 2
        },
        "RequestId": "ABCD1234-1234-1234-1234-123****"
    }
说明

文档中的请求示例和返回示例为了便于阅读,做了格式化处理,实际返回结果是没有进行换行、缩进等处理。

风险标签释义表

风险标签释义说明请查看风险标签释义表。每个风险标签均可以在控制台进行开关配置,部分风险标签会提供更细分检测范围的开关配置。具体操作,请参见控制台操作指南

说明

建议您将系统返回的风险标签和置信分做一定周期的数据存储,以便于在后续内容治理时参考,可根据风险标签设定人工审核或标注的优先级、分层分类的内容治理措施。

Code说明

以下为接口返回code的含义说明,系统仅对code返回为200的请求计量计费,其他code不会计费。

Code

说明

200

请求正常。

280

任务检测中。

400

请求参数为空。

401

请求参数错误。

402

请求参数长度不符合接口规定,请检查并修改。

403

请求超过QPS限制,请检查并调整并发。

404

传入的图片下载遇到错误,请检查或重试。

405

传入的图片下载超时,可能是因为图片无法访问,请检查调整后重试。

406

传入的图片过大,请检查调整图片大小后再重试。

407

传入的图片格式暂不支持,请检查调整后重试。

408

该账号无权限调用该接口,可能是账号未开通或者已欠费,或者调用账号未被授权访问。

500

系统异常。