功能描述
图片批量审核接口支持同步、异步请求方式,您可以通过本接口对多个图片文件进行内容审核。该接口属于 POST 请求。该接口支持情况如下:
支持审核任意可访问的图片链接(包含非腾讯云存储的图片链接)。
支持审核本地图片文件,需要先进行 base64编码。
支持审核加密数据,如有需要,请 联系服务人员 咨询。
支持根据不同的业务场景 配置自定义的审核策略。
授权说明
通过子账号使用时,需要授予
ci:CreateAuditingPictureJob
权限,详情请参见 数据万象 action。子账号使用异步处理接口时,需要授予
cam:passrole
权限,异步处理接口会通过CAM的“角色”进行 COS 的资源读写操作,PassRole 权限用于传递角色,具体请查看 访问管理-写操作-PassRole 接口。服务开通
使用限制
使用该接口时,请先确认相关限制条件。详情请参见 使用限制。
图片文件大小支持:支持审核32MB以下的图片。对于大小超过5MB的图片,您需要在调用请求时,使用 large-image-detect 参数。
单次请求图片数量不可超过100张。
图片文件分辨率支持:需满足大于20x20且小于40000x40000,建议分辨率大于256x256,否则可能会影响识别效果。
图片文件支持格式:PNG、JPG/JPEG、BMP、GIF、WEBP、HEIF/HEIC 格式。
批量默认并发数量:100。
图片文件链接支持的传输协议:HTTP、HTTPS。
调用接口需携带签名,具体规则请参见 请求签名 文档。
费用说明
推荐使用 SDK
请求
请求示例
POST /image/auditing HTTP/1.1Host: <BucketName-APPID>.ci.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>Content-Length: <length>Content-Type: application/xml<body>
说明:
请求头
请求体
该请求操作的实现需要有如下请求体。
<Request><Input><DataId></DataId><Url></Url><Object></Object><Content></Content><Interval></Interval><MaxFrames></MaxFrames><LargeImageDetect></LargeImageDetect><UserInfo><TokenId></TokenId></UserInfo></Input><Input><DataId></DataId><Url></Url><Object></Object><Content></Content><Interval></Interval><MaxFrames></MaxFrames></Input><Conf><BizType>b81d45f94b91a683255e9a9506f45a11</BizType><Async></Async><Callback></Callback><Freeze><PornScore></PornScore></Freeze></Conf></Request>
具体的数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Request | 无 | 图片批量审核的具体配置项。 | Container | 是 |
Container 类型 Request 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Input | Request | 需要审核的内容,如有多个图片,请传入多个 Input 结构。 | Container Array | 是 |
Conf | Request | 审核规则配置。 | Container | 是 |
Container 类型 Input 的具体数据描述如下,使用其中一种:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Object | Request.Input | 存储在 COS 存储桶中的图片文件名称,例如在目录 test 中的文件 image.jpg,则文件名称为 test/image.jpg。Content,Object 和 Url 只能选择其中一种,传入多个时仅一个生效,按 Content,Object, Url 顺序。 | String | 否 |
Url | Request.Input | 图片文件的链接地址,例如 http://a-1250000.cos.ap-shanghai.myqcloud.com/image.jpg 。Content,Object 和 Url 只能选择其中一种,传入多个时仅一个生效,按 Content,Object, Url 顺序。 | String | 否 |
Content | Request.Input | 图片文件的内容,需要先经过 base64 编码。Content,Object 和 Url 只能选择其中一种,传入多个时仅一个生效,按 Content,Object, Url 顺序。 | String | 否 |
Interval | Request.Input | 截帧频率,GIF 图检测专用,默认值为5,表示从第一帧(包含)开始每隔5帧截取一帧。 | Int | 否 |
MaxFrames | Request.Input | 最大截帧数量,GIF 图检测专用,默认值为5,表示只截取 GIF 的5帧图片进行审核,必须大于0。 | Int | 否 |
DataId | Request.Input | 图片标识,该字段在结果中返回原始内容,长度限制为512字节。 | String | 否 |
LargeImageDetect | Request.Input | 对于超过5MB的图片,需要使用该参数进行审核。取值为: 0(不处理),1(压缩图片)。默认为0。
注意:最大可支持的图片大小为32MB,使用该参数且会收取 图片基础处理费用。对于 GIF 等动态图过大时,压缩时间较长,可能会导致审核超时失败。 | Int | 否,图片体积大于 5MB时必选。 |
UserInfo | Request.Input | 用户业务字段。 | Container | 否 |
Container 节点 UserInfo 的内容:
节点名称(关键字) | 描述 | 类型 | 是否必选 |
TokenId | 一般用于表示账号信息,长度不超过128字节。 | String | 否 |
Nickname | 一般用于表示昵称信息,长度不超过128字节。 | String | 否 |
DeviceId | 一般用于表示设备信息,长度不超过128字节。 | String | 否 |
AppId | 一般用于表示 App 的唯一标识,长度不超过128字节。 | String | 否 |
Room | 一般用于表示房间号信息,长度不超过128字节。 | String | 否 |
IP | 一般用于表示 IP 地址信息,长度不超过128字节。 | String | 否 |
Type | 一般用于表示业务类型,长度不超过128字节。 | String | 否 |
ReceiveTokenId | 一般用于表示接收消息的用户账号,长度不超过128字节。 | String | 否 |
Gender | 一般用于表示性别信息,长度不超过128字节。 | String | 否 |
Level | 一般用于表示等级信息,长度不超过128字节。 | String | 否 |
Role | 一般用于表示角色信息,长度不超过128字节。 | String | 否 |
Container 类型 Conf 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
BizType | Request.Conf | 表示审核策略的唯一标识,您可以通过控制台上的审核策略页面,配置您希望审核的场景,如涉黄、广告、违法违规等,配置指引: 设置审核策略。您可以在控制台上获取到 BizType。BizType 填写时,此条审核请求将按照该审核策略中配置的场景进行审核。BizType 不填写时,将自动使用默认的审核策略。 | String | 否 |
Async | Request.Conf | 是否异步进行审核,0:同步返回结果,1:异步进行审核。默认值为 0。 | Integer | 否 |
Callback | Request.Conf | 审核结果(Detail版本)以回调形式发送至您的回调地址,异步审核时生效,支持以 http:// 或者 https:// 开头的地址,例如:http://www.callback.com 。 | String | 否 |
Freeze | Request.Conf | 可通过该字段,设置根据审核结果给出的不同分值,对图片进行自动冻结,仅当 input 中审核的图片为 object 时有效。 | Container | 否 |
Container 类型 Freeze 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
PornScore | Request.Conf.Freeze | 取值为[0,100],表示当色情审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。 | Integer | 否 |
AdsScore | Request.Conf.Freeze | 取值为[0,100],表示当广告审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。 | Integer | 否 |
注意:
通过 Object 进行审核为内网操作,不会产生额外的外网流量。
通过 Url 进行审核,会产生图片所在源站对应的外网流量。
响应
响应头
响应体
该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
<Response><JobsDetail><DataId></DataId><Url></Url><PornInfo><HitFlag>1</HitFlag><Score>100</Score><Category>xxx</Category><SubLabel>xxx</SubLabel></PornInfo></JobsDetail><JobsDetail><Code>InvalidArgument</Code><Message>Param MaxFrames is illegal</Message><DataId></DataId></JobsDetail></Response>
响应包体具体数据内容如下:
节点名称(关键字) | 父节点 | 描述 |
Response | Container | 图片批量审核返回的具体响应内容。 |
Container 节点 Response 的内容:
参数名称 | 类型 | 描述 |
JobsDetail | Container Array | 图片审核的结果。 |
RequestId | String | 每次请求发送时,服务端将会自动为请求生成一个 ID,遇到问题时,该 ID 能更快地协助定位问题。 |
异步审核结果的 JobsDetail 节点内容如下:
节点名称(关键字) | 类型 | 描述 |
Code | String | |
Message | String | 错误描述,只有失败时返回。 |
DataId | String | 图片标识,审核结果会返回原始内容,长度限制为512字节。 |
JobId | String | 本次审核任务的 ID。 |
State | String | 审核任务的状态,值为 Submitted(已提交审核)、Failed(审核失败)其中一个。 |
Object | String | 存储在 COS 存储桶中的图片文件名称,创建任务使用 Object 时返回。 |
Url | String | 图片文件的链接地址,创建任务使用Url时返回。 |
同步审核结果的 JobsDetail 节点内容如下:
参数名称 | 类型 | 描述 |
Code | String | |
Message | String | 错误描述,只有失败时返回。 |
DataId | String | 图片标识,审核结果会返回原始内容,长度限制为512字节。 |
JobId | String | 本次审核任务的 ID。 |
State | String | 审核任务的状态,值为 Success(审核成功)、Failed(审核失败)其中一个。 |
Object | String | 存储在 COS 存储桶中的图片文件名称,创建任务使用Object时返回。 |
Url | String | 图片文件的链接地址,创建任务使用Url时返回。 |
CompressionResult | Integer | 图片是否被压缩处理,值为 0(未压缩),1(正常压缩)。 |
Label | String | 该字段用于返回检测结果中所对应的优先级最高的恶意标签,表示模型推荐的审核结果,建议您按照业务所需,对不同违规类型与建议值进行处理。 返回值:Normal:正常,Porn:色情,Ads:广告,Quality:低质量等。 |
Result | Integer | 该字段表示本次判定的审核结果,您可以根据该结果,进行后续的操作;建议您按照业务所需,对不同的审核结果进行相应处理。有效值:0(审核正常),1 (判定为违规敏感文件),2(疑似敏感,建议人工复核)。 |
Score | Integer | 该字段表示审核结果命中审核信息的置信度,取值范围:0(置信度最低)-100(置信度最高 ),越高代表该内容越有可能属于当前返回审核信息。例如:色情 99,表明该内容非常有可能属于色情内容。 |
Category | String | 该图命中的审核类别结果。 |
SubLabel | String | 该图命中的二级标签结果。 |
Text | String | 该图里的文字内容(OCR),当审核策略开启文本内容检测时返回。 |
PornInfo | Container | 审核场景为色情性感的审核结果信息。 |
AdsInfo | Container | 审核场景为广告引导的审核结果信息。 |
QualityInfo | Container | 审核场景为图片质量低不清晰的审核结果信息。 |
UserInfo | Container | 请求中设置的 UserInfo 原样返回。 |
ListInfo | Container | 账号黑白名单结果。 |
ForbidState | Integer | 若您在请求时设置了自动冻结,该字段表示图片的冻结状态。0:未冻结,1:已被冻结。 |
审核信息(PornInfo、AdsInfo、QualityInfo等)中的内容如下:
参数名称 | 类型 | 描述 |
Code | Integer | |
Msg | String | 具体错误信息,如正常则为 OK。 |
HitFlag | Integer | 用于返回该审核场景的审核结果,返回值:0:正常。1:确认为当前场景的违规内容。2:疑似为当前场景的违规内容。 |
Score | Integer | 该字段表示审核结果命中审核信息的置信度,取值范围:0(置信度最低)-100(置信度最高 ),越高代表该内容越有可能属于当前返回审核信息例如:色情 99,则表明该内容非常有可能属于色情内容。 |
Category | String | 该字段为 Label 的子集,表示审核命中的具体审核类别。例如 Sexy,表示色情标签中的性感类别。 |
SubLabel | String | 该图的二级标签结果。 |
Label | String | 历史字段,返回内容等同于 SubLabel。 |
OcrResults | Container Array | 该字段表示 OCR 文本识别的详细检测结果,包括文本坐标信息、文本识别结果等信息,有相关违规内容时返回。 |
LibResults | Container Array | 该字段用于返回基于风险库识别的结果。注意:未命中风险库中样本时,此字段不返回。 |
Container 节点 LibResults 的内容:
节点名称(关键字) | 类型 | 描述 |
ImageId | String | 该字段表示命中的风险库中的图片样本 ID。 |
Score | Integer | 该字段用于返回当前标签下的置信度,取值范围:0(置信度最低)-100(置信度最高),越高代表当前的图片越有可能命中库中的样本。例如:色情 99,则表明该数据非常有可能命中库中的色情样本。 |
OcrResults 的内容如下:
节点名称(关键字) | 类型 | 描述 |
Text | String | 有敏感信息的 Ocr 文本内容。 |
Keywords | String Array | 该段内容中的敏感文字。 |
Location | Container | 该段文字在图片中的位置信息。 |
ObjectResults 的内容如下:
节点名称(关键字) | 类型 | 描述 |
Name | String | 敏感内容的字称。 |
Location | Container | 该内容在图片中的位置信息。 |
Location 的内容如下:
节点名称(关键字) | 类型 | 描述 |
X | Float | 相对于原点(图片左上角)的 X 坐标。 |
Y | Float | 相对于原点(图片左上角)的 Y 坐标。 |
Height | Float | 敏感区域的高度。 |
Width | Float | 敏感区域的宽度。 |
Rotate | Float | 敏感区域的旋转角度。 |
UserInfo 的内容(与请求中的 UserInfo 一致):
节点名称(关键字) | 类型 | 描述 |
TokenId | String | 一般用于表示账号信息,长度不超过128字节。 |
Nickname | String | 一般用于表示昵称信息,长度不超过128字节。 |
DeviceId | String | 一般用于表示设备信息,长度不超过128字节。 |
AppId | String | 一般用于表示 App 的唯一标识,长度不超过128字节。 |
Room | String | 一般用于表示房间号信息,长度不超过128字节。 |
IP | String | 一般用于表示 IP 地址信息,长度不超过128字节。 |
Type | String | 一般用于表示业务类型,长度不超过128字节。 |
ReceiveTokenId | String | 一般用于表示接收消息的用户账号,长度不超过128字节。 |
Gender | String | 一般用于表示性别信息,长度不超过128字节。 |
Level | String | 一般用于表示等级信息,长度不超过128字节。 |
Role | String | 一般用于表示角色信息,长度不超过128字节。 |
Container 节点 ListInfo 的内容:
节点名称(关键字) | 类型 | 描述 |
ListResults | Container Array | 命中的所有名单结果。 |
Container 节点 ListResults 的内容:
节点名称(关键字) | 类型 | 描述 |
ListType | Integer | 命中的名单类型,取值为0(白名单)和1(黑名单)。 |
ListName | String | 命中的名单名称。 |
Entity | String | 命中了名单中的哪条内容。 |
实际案例
请求
POST /image/auditing HTTP/1.1Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0**********&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0e****Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comContent-Length: 166Content-Type: application/xml<Request><Input><Object>a.jpg</Object></Input><Input><Url>http://exsample.com/b.jpg</Url></Input><Conf><BizType>b81d45f94xxxxxxxxa9506f45a11</BizType></Conf></Request>
响应
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Tue, 03 Apr 2018 09:06:16 GMTStatus: 200 OKx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****<Response><JobsDetail><JobId>xxxxxxxxxx</JobId><CompressionResult>0</CompressionResult><Object>a.jpg</Object><Label>Porn</Label><Result>1</Result><Score>100</Score><SubLabel>xxx</SubLabel><PornInfo><Code>0</Code><Msg>OK</Msg><HitFlag>1</HitFlag><Score>100</Score><Label>xxx</Label><SubLabel>xxx</SubLabel></PornInfo></JobsDetail><JobsDetail><JobId>yyyyyyyyyy</JobId><CompressionResult>0</CompressionResult><Url>http://exsample.com/b.jpg</Url><Label>Porn</Label><Result>1</Result><Score>100</Score><SubLabel>xxx</SubLabel><PornInfo><Code>0</Code><Msg>OK</Msg><HitFlag>1</HitFlag><Score>100</Score><Label>xxx</Label><SubLabel>xxx</SubLabel></PornInfo></JobsDetail><RequestId>xxxxxxxxxxx</RequestId></Response>