本文提供了调用视频异步检测任务进行敏感人脸识别的具体接口和参数说明,帮助您编写程序构建HTTP调用请求。
(提交视频异步检测任务)使用说明
业务接口:/green/video/asyncscan,表示异步检测视频文件或视频流中是否包含敏感人脸信息,支持通过传入视频URL、本地视频文件、视频二进制流的方式进行检测。
- 计费信息:
该接口为收费接口。关于计费方式,请参见内容安全产品定价。
- 返回结果:
- callback获取审核结果:提交视频异步检测任务时,在请求参数中传入callback参数,用来自动接收检测结果。更多信息,请参见请求参数。
- 轮询获取审核结果:提交视频异步检测任务时,无需传入callback参数。提交视频异步检测任务后,调用结果查询接口获取检测结果。更多信息,请参见(查询视频异步检测结果)使用说明。
- 视频要求:
- 视频文件链接支持以下协议:HTTP和HTTPS。
- 视频文件支持以下格式:AVI、FLV、MP4、MPG、ASF、WMV、MOV、WMA、RMVB、RM、FLASH、TS。
- 视频大小限制:单个视频大小不超过200 MB。
- 视频流支持以下协议:RTMP、HLS、HTTP-FLV、RTSP。
- 视频流时长限制:单个视频流检测任务最长支持24小时,超过24小时任务自动结束。
- 视频检测的时间依赖于视频的下载时间。请保证被检测的视频文件所在的存储服务稳定可靠,建议您使用阿里云OSS存储服务存储视频文件。
QPS限制
本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
bizType | String | 否 | default | 该字段用于标识您的业务场景。您可以通过内容安全控制台创建业务场景(具体操作,请参见自定义机审标准)。 |
scenes | StringArray | 是 | ["sface"] | 指定视频检测的应用场景,唯一取值:sface。 |
live | Boolean | 否 | false | 是否直播。默认为false,表示为普通视频检测;若为直播检测,该值必须传入true。 |
offline | Boolean | 否 | false | 是否近线检测模式。
说明 该参数仅作用于视频文件检测,不支持流式检测。 |
callback | String | 否 | http://www.aliyundoc.com | 异步检测结果回调通知您的URL,支持使用HTTP和HTTPS协议的地址。该字段为空时,您必须定时轮询检测结果。 callback接口必须支持POST方法、UTF-8编码的传输数据,以及表单参数checksum和content。内容安全按照以下规则和格式设置checksum和content,调用您的callback接口返回检测结果。
说明 您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。 |
seed | String | 否 | abc_123 | 该值用于回调通知请求中的签名。当使用callback时,该字段必须提供。 |
cryptType | String | 否 | SHA256 | 使用回调通知时(callback),设置对回调通知内容进行加密的算法。内容安全会将返回结果(由用户uid + seed + content 拼接的字符串)按照您设置的加密算法加密后,再发送到您的回调通知地址。取值:
|
tasks | JSONArray | 是 | 指定检测对象,JSON数组中的每个元素是一个检测任务结构体。最多支持100个元素,即每次提交100条内容进行检测,支持100个元素的前提是需要将并发任务调整到100个以上。关于每个元素的具体结构描述,请参见task。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
clientInfo | JSONObject | 否 | {"userId":"120234234","userNick":"Mike","userType":"others"} | 客户端信息,请参见公共参数中的公共查询参数。 服务器会把全局的clientInfo和此处独立的clientInfo合并。 说明 独立的clientInfo优先级更高。 |
dataId | String | 否 | videoId xxx | 数据ID。需要保证在一次请求中所有的ID不重复。 |
liveId | String | 否 | liveId123 | 视频直播流的ID。 该参数用于视频直播任务去重,防止重复检测,如果传递该参数,会根据 |
url | String | 否 | http://www.aliyundoc.com/test.avi | 检测对象的URL。
说明 传入本字段时按照传URL方式计费。不能和frames同时为空,也不能和frames同时有值。 |
frames | JSONArray | 否 | 截帧信息。frames中的每个元素是个结构体(Frame表),每个元素的具体结构描述请参见frame。 说明 传入本字段时按照传图片序列的方式计费。 | |
framePrefix | String | 否 | http://www.aliyundoc.com/video/ | 当frames存在时,截帧的完整URL为:framePrefix + frame.url 。 |
interval | Integer | 否 | 1 | 视频截帧间隔,单位为秒,取值范围为1~600。默认值为1秒。 |
maxFrames | Integer | 否 | 200 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
url | String | 否 | http://www.aliyundoc.com/0B860000586C0A0300038A0460000 | 检测对象的URL。
|
offset | Integer | 否 | 10 | 该截帧距离片头的时间戳,单位为秒。 |
content结果示例
{
"code": 200,
"msg": "OK",
"dataId": "videoId xxx",
"taskId": "taskId xxx",
"results": [
{
"label": "porn",
"rate": 99.2,
"scene": "porn",
"suggestion": "block"
}
]
}
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
taskId | String | taskId xxx | 该检测任务的ID。 |
dataId | String | videoId xxx | 检测对象对应的数据ID。 说明 如果在检测请求参数中传入了dataId,则此处返回对应的dataId。 |
示例
请求示例
- 视频截帧图片序列检测
http(s)://[Endpoint]/green/video/asyncscan &<公共请求参数> { "scenes": [ "sface" ], "tasks": [ { "dataId": "videoId xxx", "frames": [ { "offset": 10, "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460000" }, { "offset": 20, "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460001" }, { "offset": 30, "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460002" }, { "offset": 40, "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460003" }, { "offset": 50, "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460003" }, { "offset": 60, "url": "http://www.aliyundoc.com/0B860000586C0A0300038A046000x" } ] } ] }
- 普通视频文件检测
http(s)://[Endpoint]/green/video/asyncscan &<公共请求参数> { "scenes": [ "sface" ], "tasks": [ { "dataId": "videoId xxx", "url": "http://www.aliyundoc.com/a.mp4", "interval": 1, "maxFrames": 200 } ] }
- 视频直播流检测
http(s)://[Endpoint]/green/video/asyncscan &<公共请求参数> { "scenes": [ "sface" ], "live": true, "tasks": [ { "dataId": "videoId xxx", "url": "http://www.aliyundoc.com/a.flv", "interval": 1, "maxFrames": 200 } ] }
返回示例
{
"code": 200,
"msg": "OK",
"requestId": "requestID xxx",
"data": [
{
"dataId": "videoId xxx",
"taskId": "taskId xxx"
}
]
}
(查询视频异步检测结果)使用说明
业务接口:/green/video/results
查询视频异步检测的结果。建议您将查询间隔设置为30秒,最长不能超过4个小时,否则结果将会消失。
说明 该接口为免费接口。
QPS限制
本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
body | JSONArray | 是 | ["taskId xxx"] | 要查询的taskId列表。最大长度不超过100。 |
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | Integer | 200 | 错误码,和HTTP状态码一致。 更多信息,请参见公共错误码。 |
msg | String | OK | 请求信息的响应信息。 |
dataId | String | videoId xxx | 检测对象对应的数据ID。 说明 如果在检测请求参数中传入了dataId,则此处返回对应的dataId。 |
taskId | String | taskId xxx | 该检测任务的ID。 |
results | Array | 返回结果,调用成功时(code=200),返回结果中包含一个或多个元素。每个元素是个结构体。关于具体结构描述,请参见result。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
scene | String | sface | 视频检测场景,唯一取值:sface。 |
label | String | sface | 检测结果的分类,取值:
|
suggestion | String | block | 建议您执行的操作,取值:
|
rate | Float | 97.03 | 结果为该分类的概率,取值范围为0.00~100.00。值越高,表示越有可能属于该分类。 |
frames | JSONArray | 判断为该分类的一些截帧检测结果(FrameScanResult)。截帧检测结果表的具体结构描述,请参见frame。 | |
extras | JSONObject | {"hitCustomLibName":"customLib"} | 附加信息。 |
sfaceData | Array | 识别出来的人脸信息。关于具体结构描述,请参见sfaceData。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
url | String | http://www.aliyundoc.com/0B860000586C0A0300038A0460003 | 检测对象的URL。
|
offset | Integer | 50 | 该截帧距离片头的时间戳,单位为秒。 |
label | String | sface | 该视频截帧的风险分类,取值范围:
|
rate | Float | 99.1 | 该视频截帧结果为label所述分类的概率,取值范围为0.00~100.00。值越高,表示越有可能属于该分类。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
x | Float | 444 | 以图片左上角为坐标原点,人脸区域左上角到y轴距离。 |
y | Float | 174 | 以图片左上角为坐标原点,人脸区域左上角到x轴距离。 |
w | Float | 467 | 人脸区域宽度。 |
h | Float | 467 | 人脸区域高度。 |
smileRate | Float | 0 | 微笑的概率。 |
glasses | Boolean | false | 是否戴眼镜。 |
faces | Array | 识别出的人脸信息。关于具体结构描述,请参见下表face。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
name | String | xxxx | 相似人物的名称。 |
rate | Float | 97.03 | 相似概率。 |
id | String | AliFace_0018177 | 人脸Id。 |
示例
请求示例
http(s)://[Endpoint]/green/video/results
&<公共请求参数>
[
"taskId xxx"
]
返回示例
{
"code": 200,
"msg": "OK",
"requestId": "requestID xxx",
"data": [
{
"code": 200,
"msg": "OK",
"dataId": "videoId xxx",
"taskId": "taskId xxx",
"results": [
{
"label": "sface",
"rate": 97.03,
"scene": "sface",
"sfaceData": [
{
"faces": [
{
"detail": "基地首领",
"id": "AliFace_0018177",
"name": "xxxx",
"rate": 97.03
}
],
"glasses": false,
"h": 467,
"smileRate": 0,
"w": 467,
"x": 444,
"y": 174
},
"frames": [
{
"offset": 50,
"url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460003",
"label": "sface",
"rate": 99.1
}
]
}
]
}
]
}