视频内容审核

视频内容审核,用于检测视频文件中的不良信息,并给出审核结果管控建议。支持同时检测文件中的音频和视频数据。

1. 功能描述

调用方提交一个或多个审核文件,指定需要检测的类型,服务器异步回调返回检测结果。

画面支持的检测类型及对应标签如下:

检测类型 说明 action 一级label 二级label
色情识别 识别图片中的色情、性感等违规内容 v-porn
normal: 正常 normal: 正常
sexy: 性感 female_underwear: 女性内衣内裤
female_sexy_chest_l12: 女性露沟12级
female_sexy_chest_l3: 女性露沟3级
female_sexy_chest_l4: 女性露沟4级
female_backless: 女性露背
female_sexy_leg: 女性露腿过臀线
female_focus_leg: 聚焦女性长腿
bathing_suit: 女性沙滩泳衣
male_topless: 男性赤裸上半身【露出乳头位置】
male_normal_topless: 男性赤裸上半身【未到乳头位置】
other_sexy: 其他性感
porn: 色情 sex_product: 性用品
naked_private_part: 裸露敏感部位
extensive_naked: 大面积裸露,但未裸露敏感部位
sex_behavior: 性行为
naked_female_back: 女性上半身未穿【背部】
naked_hip: 露臀沟
sex_bulge: 敏感部位激凸
focus_female_crotch: 聚焦女性裆部、拍摄女性底裤
focus_male_crotch: 聚焦男性裆部及下半身
hand_on_sexy: 手抚摸、抓敏感部位
lick: 舔手舔脚舔物
kiss: 接吻
sm: SM
sperm: 精液
naked_child: 儿童裸露
other_dirty: 其他低俗
tongue_out: 吐舌头
female_focus_hip: 聚焦女性臀部
male_underwear: 男性内裤
porn_pip: 画中画小窗口色情
暴恐识别 识别图片中的血腥、暴恐等违规内容 v-terrorism normal: 正常
fire_explosion: 爆炸/烟光
gun: 枪支
knife: 刀具
crowd: 人口聚集
flag_of_terrorism: 恐怖主义旗帜
special_dress: 特殊着装
disgusted: 恶心不适
with_weapon: 武器携带
bloody: 血腥画面
uniform: 军警制服
敏感信息识别 识别图片中的敏感信息内容 v-antispam normal: 正常
special_building: 中国地标建筑
rmb: 人民币
map_of_China: 中国地图
cartoons_of_leaders: 领导人漫画
flags_of_China: 中国旗帜(原中国国旗)
Tibetan_buddhism: 藏传佛教
other_antispam: 其他敏感信息(银河邪教组织、国殇之柱\民主女神)
tank: 坦克、装甲车
fighter: 战斗机
cannon: 大炮
battleship: 战舰
敏感人物识别 识别图片中是否包含国内外政治人物、公众人物 v-sface normal: 正常
sface: 包含敏感人物
违法违规识别 识别图片中是否包含违法违规场景信息 v-illegal normal: 正常
minor: 未成年人
drug: 吸毒
drive: 开车直播
gamble: 赌博
smoke: 吸烟
id_infomation: 身份证件
tattoo: 社会纹身
inbed: 躺播
广告识别 识别图片中是否包含广告信息 v-ad normal: 正常
QR_code: 二维码
bar_code: 条形码
applet_code: 小程序码
图文违规识别 识别图片中是否包含疑似违规文字信息 v-ocr normal: 正常
ocr_politics: 涉政
ocr_terrorism: 涉暴
ocr_porn: 涉黄
ocr_illegal: 违法
ocr_abuse: 辱骂
ocr_ad: 广告

声音支持的检测类型和对应标签如下:

检测类型说明actionlabel
音频娇喘识别检测音频文件的声纹特征,识别其中的娇喘等违规特征a-pornnormal:正常
moan:娇喘
音频敏感词识别翻译音频文件的文字信息,识别其中的敏感违规内容a-antispamnormal:正常
terrorism:暴力恐怖
porn:色情低俗
illegal:违法违规
politics:涉政敏感
abuse:谩骂灌水
ad:广告欺诈
feudalism:封建迷信
religion:宗教敏感
affairs:时事舆情
contraband:违禁物品
minors:未成年人
banned-website:非法网址
音转文识别翻译音频文件的文字信息a-asrnormal: 正常

2. 使用限制

限制类别说明
视频格式支持.avi、.mp4、.asf、.wmv、.mov,更多方式支持请联系技术支持
文件大小限制单个视频大小不超过200MB,如果您需支持更大视频,请联系技术支持
并发限制每秒最多可提交20段视频审核,同时在处理的视频数量不超过200条,如需更高并发,请联系技术支持
保存时长系统会自动保存疑似违规截图和音频片段,并将文件url连同检测结果返回给用户。
保存时间为3小时,超过3小时url可能失效,请及时做好转存。
视频分辨率不低于128x128, 分辨率过低可能会影响识别效果
区域限制目前只支持在中国大陆使用,如果您需要其他国家和地区支持,请联系技术支持

3. 接口说明

3.1 启动任务

请求接口

事项说明
请求方法POST
请求协议 HTTPS
请求域名ai.jocloud.com
请求路径/app/{appid}/v1/video/async/submit?traceId=uuid-xxxx-xxxx-xxxx-xxxx
请求参数traceId为uuid字符串,用于排查问题时对账,建议每次请求使用不同值
请求头部Content-Type: application/json;charset=UTF-8
token: 鉴权token,生成方式参考 认证鉴权
请求Bodyjson字符串,详细定义如下

请求参数

请求参数存放在请求body中,是一个json对象,具体字段说明如下:

名称类型是否必需描述
actions字符串数组检测类型,可选值包括:
v-porn: 色情识别
v-terrorism: 暴恐识别
v-antispam: 敏感信息识别
v-sface: 敏感人物识别
v-illegal: 违法违规识别
v-ad: 广告识别
v-ocr: 图文违规识别

音频检测类型,可选值包括:
a-porn: 娇喘识别
a-antispam:敏感词识别
a-asr: 音转文识别
data[]JSON数组指定检测对象信息列表,JSON数组中每个元素是一个检测任务结构体(见下方请求data表)。
单次调用最多同时处理5个视频。
callback字符串结果回调路径,支持HTTP/HTTPS回调。
允许为空,当回调地址设置空时,用户可以通过查询接口获得检测结果(建议使用回调方式接收审核结果)
sequence字符串该值用于回调通知请求中的签名。当使用回调时该字段必须提供。详细使用方法见检测结果回调说明

表. 请求data

名称类型是否必需描述
dataId字符串数据唯一标识,如:uuid-xxxx-xxxx-xxxx-xxxx
dataType字符串数据类型,必须填写URL
content字符串待检测视频文件HTTP地址
extraJSON识别的扩展参数,见下表
contextJSON用户自定义上下文数据,返回结果时自动带上

表. 扩展参数

名称类型是否必需描述
lang字符串a-antispam 敏感词检测使用的语言,默认为中文,可选值:
- chinese:中文
- bahasa:印尼语

返回结果

名称类型是否必需描述
code整型请求错误码,详见 错误码
message字符串错误信息描述
traceId字符串对应请求参数中的traceId
requestId字符串系统针对本次请求生成的唯一请求标识,用于后续结果回调和状态查询
timestamp整型当前unix时间戳,单位秒

3.2 检测结果回调

回调方式

检测完成后,系统使用HTTP POST方式访问用户提供的callback地址,将检测结果返回给用户。
为了防止内容被篡改,在http请求header增加一个checksum项用于校验内容是否合法。

checksum串的生成方式如下:

启动任务参数携带的sequence + body字符串数据,通过SHA256算法生成checksum值

回调内容

检测结果保存在body中的JSON结构中,具体字段说明如下:

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

表. 返回data

名称类型是否必需描述
code整型数据处理错误码,点击详细定义
message字符串错误描述信息
dataId字符串对应请求中的dataId
taskId字符串针对该检查对象多个检测类型生成的唯一任务标识
contextJSON对应请求中的context
results[]JSON数组返回结果数据,调用成功时存在。
返回结果包含的元素与传入的actions相对应。
每个元素是一个结构体,代表对应action的处理结果
不同action的结果结构如下表

表. result

名称类型是否必需描述
code整型检测错误码,详见 错误码
message字符串错误描述信息
action字符串检测类型,对应请求actions参数
label字符串检测结果标签,请参考上面检测类型及对应标签表
rate浮点数检测结果标签的概率,取值范围在[0.00 - 1.00],值越大表示可信度越高
suggestion字符串建议您执行的操作,取值范围:
- pass: 正常,无需操作
- review: 疑似,检测结果不确定,需要进一步人工审核
- block: 违规,建议做违规处罚
duration浮点数针对音频检测类型,返回检测音频长度
text字符串音频片段的文本内容。当action为a-antispam或a-asr时才会存在该字段。
segment[]JSON数组疑似和违规视频帧或音频段识别结果列表。不同action对应不同结构的segment参数,详见下面各action segment定义

result->segment在不同action检测中的结果结构不尽相同,具体包含以下几种情况:

(1)当action为v-porn、v-terrorism、v-antispam、v-sface、v-illegal、v-ad、v-ocr时,result->segment的结构如下:

名称类型是否必需描述
label字符串检测标签,检测到所有人脸标签中rate最大的标签
rate浮点数检测结果标签的概率,取值范围在[0.00 - 1.00],值越大表示可信度越高
suggestion字符串建议您执行的操作
url字符串截图地址
timeOffset浮点数截图距离视频开始的时间点
extraData[]JSON数组action为v-porn或v-sface时才存在该字段。
为v-porn时,该数组保存识别到的二级label信息,元素结构见下面porn表
为v-sface时,该数组保存截图中识别到的所有人脸信息,元素结构见下面face表

表. face

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

表. porn

名称类型是否必需描述
label字符串检测到的二级标签
rate浮点数检测结果标签的概率,取值范围在[0.00 - 1.00],值越大表示可信度越高

(2)当action为a-porn时,result->segment的结构如下

名称类型是否必需描述
begin浮点数音频片段开始时间,单位秒
end浮点数音频片段结束时间,单位秒
score浮点数声音娇喘匹配程度,取值[0~100],分数越高匹配程度越高

(3)当action为a-antispam时,result->segment的结构如下

名称类型是否必需描述
begin浮点数音频片段开始时间,单位秒
end浮点数音频片段结束时间,单位秒
extraData[]JSON数组该音频分段的敏感词识别结果列表,元素结构见下面antispam-extraData表

表. antispam-extraData

名称类型是否必需描述
hintJSON数组命中的关键字
label字符串命中的关键字所属类型
rate浮点数无意义,恒为"1.0"

3.3 结果同步查询

由于是异步处理,所以建议使用以上的异步回调方式接收处理结果,如有必要可以通过轮训同步接口的方式获取结果,具体说明如下:

请求方式

事项说明
请求方法GET
请求协议 HTTPS
请求域名ai.jocloud.com
请求路径app/{appid}/v1/video/async/results?traceId=uuid-xxxx-xxxx-xxxx-xxxx&requestId=yyyy
请求参数traceId为uuid字符串,用于排查问题时对账,建议每次请求使用不同值
requestId为需要查询的请求id,即在提交检测任务返回结果中携带的requestId
请求头部Content-Type: application/json;charset=UTF-8
token: 鉴权token,生成方式参考 认证鉴权

返回参数

body中的数据是JSON,具体字段说明如下:

名称类型是否必需描述
code整型请求错误码,详见 错误码
message字符串错误信息描述
traceId字符串透传请求参数中的traceId内容
requestId字符串本次查询对应的requestId,与请求参数一致
status字符串任务状态 (received-待处理, processing-处理中,completed-已完成)
timestamp整型当前unix时间戳,单位秒
data[]数组返回结果数据。调用成功时(code==200),元素定义见上面表返回data

4. 调用示例

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

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

import requests
import uuid
import base64

host = "https://ai.jocloud.com"
appid = 123456789  # 您的业务ID
restful_id = '********************'  # 您的证书ID
restful_secret = '********************'  # 您的证书秘钥
traceid = str(uuid.uuid4())
dataid = str(uuid.uuid4())

# url
url = host + '/app/%s/v1/video/async/submit?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()

# 需要识别的视频文件url地址
file_url = 'http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d67f1b655f0b49be87fdcc84f7f06029/7.ts'

# 业务放需要使用到的上下文信息,便于在回调消息中协助后续处理,例如:
context = {
    'myid': 123,
    'myname': 'test'
}

# 识别结果及状态的回调地址,识别结果及状态通知将会通过http POST回调
callback_addr = 'http://mydomain.com/callback'

# content
values = {
    'actions': ['v-sface', 'v-porn'],
    'data': [
        {
            'dataId': dataid,
            'dataType': 'URL',
            'content': file_url,
            'extra': {},
            'context': context
        }
    ],
    'callback': callback_addr,
    'sequence': 'test'
}

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

5. 更新历史

版本
时间
说明
v2.2.32020-10-15图文违规识别增加标签
V2.2.22020-10-14增加a-asr功能支持
v2.2.12020-10-13违法违规识别增加inbed标签
v2.2.02020-08-31增加广告识别、图文违规识别类型; 更新暴恐识别和敏感信息识别的label
v2.1.02020-08-24增加违法违规识别类型
v2.0.02020-08-17色情识别类型增加二级标签
v1.1.02020-06-30移除启动请求参数extra中的interval和maxframes,改为智能截帧审核
v1.0.02020-03-13初始版本

文档是否有解决您的问题?

有帮助 没帮助
提交成功,非常感谢您的反馈!

反馈

TOP