图片内容审核

图片内容审核用于识别图片中的不良信息,给出审核结果和处理建议。

1. 功能描述

调用方提交审核图片,指定需要检测的类型,服务器同步返回调用结果。
目前支持的检测类型包括:色情识别、暴恐识别、敏感信息识别、敏感人物识别。

检测类型及对应标签如下:

检测类型说明actionlabel
色情识别识别图片中的色情、性感等违规内容pornnormal: 正常
sexy: 性感
porn: 色情
(详细说明见下表色情识别标签示例
暴恐识别识别图片中的血腥、暴恐等违规内容terrorismnormal: 正常
flag-terror: 恐怖旗帜
riot: 聚众冲突
uniform: 军警制服
gun: 枪支
knife: 刀具
bloody: 血腥暴力
withgun: 持枪
terrorist: 恐怖分子
disgusted: 恶心画面
敏感信息识别识别图片中的敏感信息内容antispamnormal: 正常
flag: 旗帜
flag-china: 中国国旗
tank: 坦克装甲车
fighter: 战斗机
cannon: 大炮
battle-ship: 战舰
beard: 大胡子
敏感人物识别识别图片中是否包含国内外政治人物、公众人物sfacenormal: 正常
sface: 包含敏感人物

表. 色情识别标签示例

标签示例说明
porn色情:图片中包含人体敏感部位的裸露或半裸露,
以及有性行为等色情低俗信息
sexy性感:图片中包含男性裸露上身,女性露沟,
裸露部分皮肤,有色情诱惑倾向等性感信息
normal正常:无色情和性感的图片

2. 使用限制

限制类别说明
图片来源1) 以HTTP/HTTPS开头的图片URL地址
2) 图片二进制流Base64编码字符串
图片大小单张图片10MB以内,单个请求大小应该小于50MB
图片像素不低于128x128, 分辨率过低可能会影响识别效果
图片格式png、jpg、jpeg、bmp,更多图片格式支持,请联系技术支持
超时限制单张图片下载3秒超时,请保证图片存储服务稳定可靠
并发限制默认限制20qps,每次请求最多同时提交10张图片,更高qps支持,请联系技术支持
区域限制中国大陆,其他国家和地区支持,请联系技术支持
检测时长除去下载耗时,单张图片执行一种检测耗时在300ms左右,调用方可根据实际调用图片数和执行检测类型调整请求返回超时

3. 接口说明

3.1 发起请求

使用HTTP POST方式发起审核请求

事项说明
请求方法POST
请求协议 HTTPS
请求域名ai.aivacom.com
请求路径/app/{appid}/v1/image/sync?traceId=uuid-xxxx-xxxx-xxxx-xxxx
请求参数traceId为uuid字符串,用于排查问题时对账,建议每次请求使用不同值
请求头部Content-Type: application/json;charset=UTF-8
token: 鉴权token,生成方式参考身份认证
请求Bodyjson字符串,详细定义如下
名称类型是否必需描述
actions字符串数组检测类型,可选值包括:
- porn: 色情识别
- terrorism: 暴恐识别
- antispam: 敏感信息识别
- sface: 敏感人物识别
data[]JSON数组指定检测对象信息列表,JSON数组中每个元素是一个检测对象结构体(见下方请求data表)。
单次调用最多同时处理10张图片。

表. 请求data

名称类型是否必需描述
dataId字符串数据唯一标识,如:uuid-xxxx-xxxx-xxxx-xxxx
dataType字符串数据类型
- URL: http/https开头的url地址
- BASE64: 二进制流base64编码串
content字符串待检测图片内容
(如dataType字段填URL,content字段对应填写图片url地址)
contextJSON用户自定义上下文数据,返回结果时自动带上。

3.2 响应结果

响应内容为json对象,详细定义如下

名称类型是否必需描述
code整型请求错误码,点击详细定义
message字符串错误信息描述
traceId字符串透传请求参数中的traceId内容
requestId字符串系统针对本次检查请求生成的唯一标识
timestamp整型当前unix时间戳,单位秒
data[]JSON数组检测结果数据列表(具体结构见下方返回data表),数组中每一项表示一个图片的处理结果,在出错的情况下该字段可能为空。

表. 返回data

名称类型是否必需描述
code整型数据处理错误码,点击详细定义
message字符串错误描述信息
dataId字符串对应请求中的dataId
taskId字符串针对该检查对象多个检测类型生成的唯一任务标识
contextJSON对应请求中的context
results[]数组返回结果数据。调用成功时(code==200),返回结果中包含一个或多个元素。每个元素标识一种action的处理结果,具体结构见下方result表

表. result

名称类型是否必需描述
code整型检测错误码,点击详细定义
message字符串错误信息描述
action字符串检测类型,和调用请求中的检测类型(actions)对应
label字符串检测结果标签,取值与action有关。具体取值参见上面审核类型及对应标签说明表
rate浮点数检测结果标签的概率,取值范围在[0.00 - 1.00],值越大表示可信度越高
suggestion字符串建议您执行的操作,取值范围:
- pass: 正常,无需操作;
- block: 违规,建议做违规处罚;
- review: 疑似,检测结果不确定,需要进一步人工审核;
extraData[]JSON数组当action为porn,terrorism和antispam时,该字段不存在
敏感人物识别(sface)数组元素是检测到的每个人脸信息,
元素详细请看sface-extraData表

表. sface-extraData

名称类型是否必需描述
label字符串检测到的人脸标签
rate浮点数检测结果标签的概率,取值范围在[0.00 - 1.00],值越大,表示可信度越高
name字符串检测到的敏感人物名字
x整型检测到的人脸左上角在图片中的横坐标
y整型检测到的人脸左上角在图片中的纵坐标
w整型检测到的人脸宽度
h整型检测到的人脸高度

4. 调用示例

以下是一个python3的调用示例代码:

# -*- coding: utf-8 -*-
# ! python3.6

import requests
import uuid
import base64

host = "https://ai.aivacom.com"

appid = 123456789                                 # 您的业务ID
restful_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'       # 您的证书ID
restful_secret = 'ssssssssssssssssssssssssssssss' # 您的证书秘钥
traceid = str(uuid.uuid4())                       # 本次请求的traceId
dataid = str(uuid.uuid4())                        # 请求数据的dataId
dataUrl = "http://xxxx"                           # 请求数据的URL地址

# url
url = host + '/app/%s/v1/image/sync?traceId=%s' % (appid, traceid)

# headers
headers = {
    "content-type": "application/json"
}
auth = base64.b64encode(("%s:%s" % (restful_id, restful_secret)).encode('utf-8'))
headers['token'] = 'Base ' + auth.decode()

# content
values = {
    'actions': ['porn'],
    'data': [
        {
            'dataType': 'URL',
            'content': dataUrl,
            'dataId': dataid,
            'context': {'uid': 12345}
        }
    ]
}

# request
res = requests.post(url, json=values, headers=headers)
print('code=%s, data=%s\n' % (res.status_code, res.text))

响应内容

{
  "code": 200,
  "message": "OK",
  "traceId": "3913f59e-8a93-4864-932f-c3fc1b184ad4",
  "requestId": "907590fc-2d79-4189-ad3d-2c85d99e5b6f",
  "timestamp": 1583932046,
  "data": [
    {
      "code": 200,
      "message": "OK",
      "dataId": "13878ee2-1872-4fcd-87bb-b0619bbc7572",
      "taskId": "8ccddb5d-992c-4f1d-bc38-5e6dbe97a61a",
      "context": {
        "uid": 12345
      },
      "results": [
        {
          "action": "porn",
          "code": 200,
          "label": "normal",
          "message": "OK",
          "rate": 0.9994381666183472,
          "suggestion": "pass"
        }
      ]
    }
  ]
}

5. 版本说明

版本时间说明
v1.0.02020-03-13初始版本
<