本文介绍了调用图片同步检测接口(/green/image/scan)进行图片内容审核的方法。图片审核帮助您检测图片中的风险或违规内容,具体包括以下场景:图片智能鉴黄、图片暴恐涉政、图文违规、图片二维码、图片不良场景、图片logo。
使用说明
业务接口:/green/image/scan,表示图片同步检测。
您可以调用该接口创建图片同步检测任务。关于如何构造HTTP请求,请参见请求结构;您也可以直接选用已构造好的HTTP请求,更多信息,请参见SDK概览。
- 计费信息:
该接口为收费接口。关于计费方式,请参见内容安全产品定价。
- 检测超时:
同步检测允许的最长检测时间是6秒,如果检测在该时间限制内没有完成,系统会强制返回超时错误码。如果您对实时性要求不高,可以选择异步检测,其他情况下请选择同步检测,同步检测接口的调用相对简单些。对于同步检测接口的调用,建议您将超时时间设置为6秒。
- 返回结果:
同步检测请求一般会在一秒内同步返回结果,但在一些特殊场景(例如系统繁忙导致堆积严重、图片较大、含有OCR内容较多等),耗时可能会增加。
- 图片要求:
- 图片链接支持以下协议:HTTP和HTTPS。
- 图片支持以下格式:PNG、JPG、JPEG、BMP、GIF、WEBP。
- 图片大小限制为20 MB以内(适用于同步和异步调用)。
- 图片下载时间限制为3秒内,如果下载时间超过3秒,返回下载超时。
- 图片像素建议不低于256*256(px),像素过低可能会影响识别效果。
- 图片检测接口的响应时间依赖图片的下载时间。请保证被检测图片所在的存储服务稳定可靠,建议您使用阿里云OSS存储或者CDN缓存等。
场景名称 | 描述 | 检测结果分类 |
---|---|---|
图片智能鉴黄 | 检测图片是否包含色情、性感内容。 | 正常、色情、性感 |
图片暴恐涉政 | 检测图片是否包含暴恐或涉政类内容。 | 正常、血腥、爆炸烟光、特殊装束、特殊标识、武器、涉政、打斗、聚众、游行、车祸现场、旗帜、地标 |
图文违规 | 检测图片是否包含广告和文字违规信息。 | 正常、文字含涉政内容、文字含涉黄内容、文字含辱骂内容、文字含暴恐内容、文字含违禁内容、文字含其他垃圾内容、牛皮癣广告、含二维码、含小程序码、其他广告 说明 请根据实际情况,设置您需要的检测分类。更多信息,请参见自定义机审标准。 |
图片二维码 | 检测图片是否包含二维码或小程序码。 | 正常、含二维码、含小程序码 说明 请根据实际情况,设置您需要的检测分类。更多信息,请参见自定义机审标准。 |
图片不良场景 | 检测图片是否包含黑屏、黑边、昏暗画面、画中画、吸烟、车内直播等不良场景。 | 正常、图片中无内容(例如黑屏、白屏)、画中画、吸烟、车内直播 |
图片logo | 检测图片是否包含logo信息,例如台标,商标等。 | 正常、含受管控的logo、含商标 |
QPS限制
本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
bizType | String | 否 | default | 该字段用于标识您的业务场景。您可以通过内容安全控制台创建业务场景(具体操作,请参见自定义机审标准)。 |
scenes | StringArray | 是 | ["porn","terrorism","ad","live","qrcode","logo"] | 指定检测场景。取值:
支持指定多个场景,例如, ["porn", "terrorism"] 表示对图片同时进行智能鉴黄和暴恐涉政检测。说明 同时检测多个场景的情况下,将按照每个场景的检测图片数量×每个场景的单价进行累加计费。 |
tasks | JSONArray | 是 | 指定检测对象,JSON数组中的每个元素是一个检测任务结构体。最多支持100个元素,即每次提交100条内容进行检测,支持100个元素的前提是需要将并发任务调整到100个以上。关于每个元素的具体结构描述,请参见task。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
clientInfo | JSONObject | 否 | {"userId":"12023****","userNick":"Mike","userType":"others"} | 客户端信息,请参见公共参数中的公共查询参数。 服务器会把全局的clientInfo和此处独立的clientInfo合并。 说明 独立的clientInfo优先级更高。 |
dataId | String | 否 | cfd33235-71a4-468b-8137-a5ffe323**** | 检测对象对应的数据ID。 由大小写英文字母、数字、下划线(_)、短划线(-)、英文句号(.)组成,不超过128个字符,可以用于唯一标识您的业务数据。 |
url | String | 是 | http://www.aliyundoc.com/xxx.jpg | 公网HTTP/HTTPS URL,且长度不超过2048个字符。 |
extras | JSONObject | 否 | {"hitLibInfo":[{"context":"好看视频","libCode":"2144002","libName":"预发测试广告相似文本库a"}]} | 额外调用参数。图片审核场景下无需传入该参数。 |
interval | Integer | 否 | 2 | 截帧频率,GIF图、长图检测专用。
默认只会检测GIF图、长图的第一帧,interval参数用于指示后台在检测时可按照该间隔跳着检测,以节省检测成本。 说明 interval需要与maxFrames参数组合使用。例如,设置interval为2,maxFrames为10,在检测GIF图、长图时,将每间隔1帧检测一次,最多检测10帧,计费则按照实际检测的数量计算。 |
maxFrames | Integer | 否 | 10 | 最大截帧数量,GIF图、长图检测专用,默认值为1。 当 |
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | Integer | 200 | 错误码,和HTTP状态码一致。 更多信息,请参见公共错误码。 |
msg | String | OK | 请求信息的响应信息。 |
dataId | String | cfd33235-71a4-468b-8137-a5ffe323**** | 检测对象对应的数据ID。 说明 如果在检测请求参数中传入了dataId,则此处返回对应的dataId。 |
taskId | String | img4wlJcb7p4wH4lAP3111111-123456 | 检测任务的ID。 |
url | String | http://www.aliyundoc.com/xxx.jpg | 公网HTTP/HTTPS URL,且长度不超过2048个字符。 |
storedUrl | String | http://www.aliyundoc.com | 如果用户开启了证据转存到OSS存储空间的功能,并且检测任务符合配置的规则,则会把图片转存到用户的OSS存储空间,并返回对应的HTTP URL。 |
extras | JSONObject | {"hitLibInfo":[{"context":"好看视频","libCode":"2144002","libName":"预发测试广告相似文本库a"}]} | 额外附加信息。 图文违规(ad)场景中,该参数可能返回以下内容。 hitLibInfo:如果图片中的文字命中了自定义文本库,则返回命中的文本库信息。格式为数组,具体结构描述请参见hitLibInfo。 |
results | JSONArray | 返回结果。调用成功时(code=200),返回结果中包含一个或多个元素。每个元素是个结构体,具体结构描述请参见result。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
scene | String | porn | 图片检测场景,和调用请求中的场景对应。取值:
|
label | String | sexy | 检测结果的分类。不同检测场景的结果分类不同,具体如下:
|
sublabel | String | porn | 如果检测场景包含智能鉴黄(porn)和暴恐涉政(terrorism),则该字段可以返回检测结果的细分类标签。 该字段默认不会返回。 |
suggestion | String | block | 建议您执行的后续操作。取值:
|
rate | Float | 91.54 | 置信度分数,取值范围:0(表示置信度最低)~100(表示置信度最高)。 如果suggestion为pass,则置信度越高,表示内容正常的可能性越高;如果suggestion为review或block,则置信度越高,表示内容违规的可能性越高。 重要 建议您参考suggestion和label(或者部分接口返回的sublabel)结果用于内容违规判定。 |
frames | JSONArray | 如果待检测图片因为过长被截断,该参数返回截断后的每一帧图像的临时访问地址。具体结构描述请参见frame。 | |
hintWordsInfo | JSONArray | 图片中含有广告或文字违规信息时,返回图片中广告文字命中的风险关键词信息。具体结构描述,请参见hintWordsInfo。 说明 只有图文违规(ad)场景会返回该结果。 示例值:
| |
qrcodeData | StringArray | ["http://www.aliyundoc.com/01ZZOliO"] | 图片中含有二维码时,返回图片中所有二维码包含的文本信息。 说明 只有图片二维码(qrcode)场景会返回该结果。 |
qrcodeLocations | JSONArray | 返回图片中识别到的二维码的坐标信息,关于具体的结构描述,请参见qrcodeLocation。 | |
programCodeData | JSONArray | 图片中含有小程序码时,返回小程序码的位置信息。关于具体结构的描述,请参见programCodeData。 说明 只有图片二维码(qrcode)场景会返回该结果,且必须已经开启小程序码识别。 | |
logoData | JSONArray | 图片中含有logo时,返回识别出来的logo信息。关于具体结构的描述,请参见logoData。 说明 只有图片logo(logo)场景会返回该结果。 | |
sfaceData | JSONArray | 图片中包含暴恐识涉政内容时,返回识别出来的暴恐涉政信息。关于具体结构的描述,请参见sfaceData。 说明 只有图片暴恐涉政(terrorism)场景会返回该结果。 | |
ocrData | Array | 好看视频 | 识别到的图片中的完整文字信息。 说明 默认不返回。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
rate | Float | 89.85 | 置信度分数,取值范围:0~100,置信度越高表示检测结果的可信度越高。建议您不要在业务中使用该分数。 |
url | String | http://www.aliyundoc.com/xxx-0.jpg | 被截断的图片的临时访问URL,地址有效期是5分钟。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
x | Float | 11.0 | 以图片左上角为坐标原点,小程序码区域左上角到y轴距离,单位:像素。 |
y | Float | 0.0 | 以图片左上角为坐标原点,小程序码区域左上角到x轴距离,单位:像素。 |
w | Float | 402.0 | 小程序码区域宽度,单位:像素。 |
h | Float | 413.0 | 小程序码区域高度,单位:像素。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
type | String | TV | 识别出的logo类型,取值为TV(台标)。 |
name | String | xxx台 | 识别出的logo名称。 |
x | Float | 140 | 以图片左上角为坐标原点,logo区域左上角到y轴距离,单位:像素。 |
y | Float | 68 | 以图片左上角为坐标原点,logo区域左上角到x轴距离,单位:像素。 |
w | Float | 106 | logo区域宽度,单位:像素。 |
h | Float | 106 | logo区域高度,单位:像素。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
x | Float | 49 | 以图片左上角为坐标原点,人脸区域左上角到y轴距离,单位:像素。 |
y | Float | 39 | 以图片左上角为坐标原点,人脸区域左上角到x轴距离,单位:像素。 |
w | Float | 97 | 人脸区域宽度,单位:像素。 |
h | Float | 131 | 人脸区域高度,单位:像素。 |
faces | JSONArray | [{"name":"命中人名","rate":91.54,"id":"AliFace_0123****"}] | 识别出的人脸信息,具体结构如下:
|
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
context | String | 好看视频 | 文字命中的自定义文本内容。 |
libCode | String | 123456 | 文字命中的自定义文本内容对应的库code。 |
libName | String | abc | 文字命中的自定义文本内容对应的库名称。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
context | String | 好看视频 | 文字命中的风险关键词内容。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
x | Float | 11.0 | 以图片左上角为坐标原点,二维码区域左上角到y轴距离,单位:像素。 |
y | Float | 0.0 | 以图片左上角为坐标原点,二维码区域左上角到x轴距离,单位:像素。 |
w | Float | 402.0 | 二维码区域宽度,单位:像素。 |
h | Float | 413.0 | 二维码区域高度,单位:像素。 |
qrcode | String | http://www.aliyundoc.com/0.ZZOliO | 识别到的二维码链接。 |
示例
http(s)://[Endpoint]/green/image/scan
&<公共请求参数>
{
"scenes": [
"porn",
"terrorism",
"ad",
"live",
"qrcode",
"logo"
],
"tasks": [
{
"dataId": "uuid-xxxx-xxxx-1234",
"url": "http://www.aliyundoc.com/xxx.jpg"
}
]
}
{
"msg": "OK",
"code": 200,
"data": [
{
"msg": "OK",
"code": 200,
"dataId": "cfd33235-71a4-468b-8137-a5ffe323****",
"extras": {
},
"results": [
{
"rate": 99.63,
"suggestion": "block",
"label": "sexy",
"scene": "porn"
},
{
"label": "politics",
"rate": 91.54,
"scene": "terrorism",
"sfaceData": [
{
"faces": [
{
"id": "AliFace_0123****",
"name": "命中人名",
"rate": 91.54
}
],
"h": 131,
"w": 97,
"x": 49,
"y": 39
}
],
"suggestion": "block"
},
{
"extras": {
"qrcodes": "http://www.aliyundoc.com/0.ZZOliO",
"npx": "72.01",
"hitCustomLibCode": "8012345000",
"hitCustomLibName": "自定义图库名",
"hitLibInfo": [
{
"context": "命中的文本",
"libCode": "123456",
"libName": "文本库名"
}
]
},
"programCodeData": [
{
"w": 402.0,
"h": 413.0,
"x": 11.0,
"y": 0.0
}
],
"frames": [
{
"rate": 89.85,
"url": "http://www.aliyundoc.com/xxx-0.jpg"
},
{
"rate": 68.06,
"url": "http://www.aliyundoc.com/xxx-1.jpg"
}
],
"rate": 99.91,
"suggestion": "block",
"label": "ad",
"scene": "ad"
},
{
"rate": 99.91,
"suggestion": "block",
"label": "drug",
"scene": "live"
},
{
"qrcodeData": [
"http://www.aliyundoc.com/01ZZOliO"
],
"rate": 99.91,
"suggestion": "review",
"label": "qrcode",
"scene": "qrcode"
},
{
"logoData": [
{
"name": "xxx台",
"type": "TV",
"x": 140,
"y": 68,
"w": 106,
"h": 106
}
],
"rate": 99.9,
"suggestion": "block",
"label": "TV",
"scene": "logo"
}
],
"taskId": "img4wlJcb7p4wH4lAP3111111-123456",
"url": "http://www.aliyundoc.com/xxx.jpg"
}
],
"requestId": "69B41AE8-1234-1234-1234-12D395695D2D"
}