图普科技视频鉴黄服务
短视频鉴黄服务 tupu-video 能够帮您有效判断保存在七牛云的视频是属于色情、性感还是正常。
本服务由广州图普网络科技有限公司(以下简称图普科技)提供。启用服务后,您存储在七牛云空间的文件将在您主动请求的情况下被提供给图普科技以供其计算使用。七牛不能保证鉴别结果的正确性,请您自行评估后选择是否启用。服务价格请您参考具体的价格表及计费示例,您使用本服务产生的费用由七牛代收。启用服务则表示您知晓并同意以上内容。
如何开启
如果您的文件存储在七牛云,则需先开启本服务。点此进入七牛开发者平台,点击右上角开始使用按钮。
如果您的文件存储在其他地方,则直接调用本接口。
请求语法
这里只介绍了实时请求的规格,但是考虑到如果鉴别的是比较长(目前只支持 10 分钟以内的视频)的视频,转换时间会比较久,用 http 实时转换很容易出现超时,为达到更好的显示效果,需要使用持久化数据处理。
GET <VideoDownloadURI>?tupu-video/nrop/<Params> HTTP/1.1
Host: <VideoDownloadHost> 资源URL
Params: /f/<FrameNumber> 视频截图数量上限
/s/<FrameRate> 截图频率(x秒/张)
注意: 同时指定 FrameNumber
和 FrameRate
时,最终截图数量为:MIN ( 视频时长 / FrameRate
, FrameNumber
)
若未指定截图数量,则依照以下规则截图:
视频时长(分钟) | 默认截图数量(张) |
---|---|
< 1 | 10 |
[1, 2) | 20 |
[2, 3) | 30 |
[3, 4) | 40 |
[4, 5) | 50 |
[5, 6) | 60 |
[6, 7) | 70 |
[7, 8) | 80 |
[8, 9) | 90 |
>=9 | 100 |
**注意:**当您下载私有空间的资源时,VideoDownloadURI 的生成方法请参考七牛的下载凭证。
**示例:**资源为http://78re52.com1.z0.glb.clouddn.com/resource/sintel_trailer.mp4,处理样式为 tupu-video/nrop。
#构造下载URL
DownloadUrl = 'http://78re52.com1.z0.glb.clouddn.com/resource/sintel_trailer.mp4?tupu-video/nrop'
……
#最后得到
RealDownloadUrl = 'http://78re52.com1.z0.glb.clouddn.com/resource/sintel_trailer.mp4?tupu-video/nrop&e=×××&token=MY_ACCESS_KEY:×××'
请求头部
头部名称 | 必填 | 说明 |
---|---|---|
Host | 是 | 下载服务器域名,必须是七牛三级域名或自定义二级域名,参考七牛自定义域名绑定流程。 |
响应语法
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
{
// ...tupu-video data...
}
响应头部
头部名称 | 必填 | 说明 |
---|---|---|
Content-Type | 是 | MIME 类型,固定为 application/json。 |
Cache-Control | 是 | 缓存控制,固定为 no-store,不缓存。 |
响应内容
- 如果请求成功,返回包含如下内容的 JSON 字符串(已格式化,便于阅读):
{
// 平均分反映一组图片的整体,示例这组图片:50.0%可能性是正常;25.53%可能性是色情;24.46%可能性是性感。
avgScores: [
{score: 0.5000619335640717, label: 2}, // "label:2 -> 正常"
{score: 0.25529559658062695, label: 0}, // "label:0 -> 色情"
{score: 0.24464247275246542, label: 1}], // "label:1 -> 性感"
// 最高分反映的是某一分类图片出现时的最高分,max等于0说明没有判为该分类的图片
// 主要用于对某一分类是否出现做监控判定,例如要监控是否是“色情视频”,那么就看:{max: n, label: 0},
// 假设n大于0,就说明这组视频截图出现了疑似色情图片(max越大,越确定),否则就是没有出现过色情图片
maximums: [
{max: 0.9999999220340654, label: 0}, // 判为色情的图片中,最高分是0.999999922,说明非常肯定出现了色情图片
{max: 0.9999772906303406, label: 2}, // 判为正常的图片中,最高分是0.9999772906303406
{max: 0.9784060716629028, label: 1}], // 判为性感的图片中,最高分是0.9784060716629028
// 各分类出现图片数量的情况
statistics: [
{count: 2, label: 2}, // 判为正常的图片有2张
{count: 1, label: 1}, // 判为性感的图片有1张
{count: 1, label: 0}], // 判为色情的图片有1张
// 最终整个视频被定性判为“色情”,因为出现了色情图片
label: 0,
// 对于上述label判定,是否需要人工review
review: false,
topN: 3,
nonce: '0.809460110263899',
timestamp: 1442636213,
code: 0,
message: 'success'
}
判定的最后结果在 label、review 两个字段中体现,想要更详细的分析,可以使用其他字段完成。视频鉴黄会在视频的每分钟选取 10 张截图来做鉴别。
字段名称 | 必填 | 说明 |
---|---|---|
code | 是 | 处理状态:0 调用成功;1 授权失败;2 模型ID错误;3 没有上传文件;4 API版本号错误;5 API版本已弃用;6 secretId 错误;7 任务Id错误,您的secretId不能调用该任务;8 secretId状态异常;9 尚未上传证书;100 服务器错误;101 未知错误 |
message | 是 | 与code 对应的状态描述信息 |
label | 是 | 介于-1~2间的整数,表示该图像被机器判定为哪个分类,分别对应: 0 色情;1 性感;2 正常;-1 说明该图片格式不被支持,或者图片有损坏等异常。 |
review | 是 | 是否需要人工复审该图片,鉴黄服务是否对结果确定。true 需要false 不需要 |
- 如果请求失败,请参考以上 code 和 message 字段的说明。
示例
在 Web 浏览器中输入以下视频地址:
http://78re52.com1.z0.glb.clouddn.com/resource/sintel_trailer.mp4?tupu-video/nrop
指定截图数量上限为 5 张:
http://78re52.com1.z0.glb.clouddn.com/resource/sintel_trailer.mp4?tupu-video/nrop/f/5
指定截图频率为 10 秒 / 张:
http://78re52.com1.z0.glb.clouddn.com/resource/sintel_trailer.mp4?tupu-video/nrop/s/10
同时指定截图上限为 5 和截图频率为 10 秒 / 张:
http://78re52.com1.z0.glb.clouddn.com/resource/sintel_trailer.mp4?tupu-video/nrop/f/5/s/10
服务价格
0.01元/10张视频截图
计费示例
请求一个5分10秒(310秒)的视频,按照默认截图规则(60张截图) 价格= 60 * 0.01/10 = 0.06(元)