智能多媒体 API

  • 视频敏感人物识别

    最近更新时间:2018-10-23 17:44:55

    视频敏感人物识别提供视频内容检测,识别视频中是否有敏感人物。

    • 支持存储在七牛云 bucket(支持华东、华北和华南 bucket)或 非七牛云 bucket 中的视频进行视频敏感人物识别。
    • 支持实时处理和异步处理两种方式:实时处理时,视频敏感人物识别结果会在识别完成后立即返回;异步处理时,会立即返回job_id,视频敏感人物识别结果通过job_id获得。
    • 视频敏感人物识别结果会返回所有视频片段是否有敏感人物的识别结果。同时为了让用户知道一个视频整体的分类,返回的结果会包含视频片段中出现过的敏感人物,并显示这个敏感人物的视频片段的最高的置信度。
    • 可以通过设置请求参数,仅返回满足客户需求的视频片段(例如:用户仅需要返回包含某些特定敏感人物的视频片段,以便对这部分内容做人工审核)。
      • 支持一次调用同时请求鉴黄、鉴暴恐、敏感人物识别。请查看视频鉴黄文档中三鉴(鉴黄、鉴暴恐和敏感人物识别)同时调用的示例。

    请求语法

    POST /v1/video/<vid>
    Host: ai.qiniuapi.com
    Content-Type: application/json
    
    {
        "data": {
            "uri": "http://www.qiniu.com/video.mp4"
        },
        "params": {
            "async": <async:bool>,
            "vframe": {
                "mode": <mode:int>,
                "interval": <interval:float>
            },
            "save": {
                "bucket": <bucket:string>,
                "prefix": <prefix:string>
            },
            "hookURL": "http://yy.com/yyy"
        },
        "ops": [
            {
                "op": <op:string>,
                "hookURL": "http://yy.com/yyy",
                "params": {
                    "labels": [
                        {
                            "label": <label:string>,
                            "select": <select:int>,
                            "score": <score:float>
                        },
                        ...
                    ]
                }
            },
            ... 
        ]
    }
    

    注意: 需要在 POST 请求的 head 部分添加七牛鉴权,以进行用户身份验证。

    参数 类型 必选 说明
    vid string 调用者设置的视频唯一标识,异步处理的返回结果中会带上该信息
    data.uri string 视频地址
    params.async boolean true是异步处理,false是同步处理,不填则取默认值false
    params.vframe.mode int 截帧逻辑,可选值为[0, 1]0表示每隔固定时间截一帧,固定时间在vframe.interval中设定;1表示截关键帧。不填表示取默认值1
    params.vframe.interval int params.vframe.mode0时,用来设置每隔多长时间截一帧,单位s, 不填则取默认值5s
    params.save.bucket string 保存截帧图片的Bucket名称
    params.save.prefix string 截帧图片名称的前缀,图片名称的格式为<prefix>/<video_id>/<offset> (图片命名格式仅供参考,业务请不要依赖此命名格式)
    params.hookURL string 视频检测结束后的回调地址
    ops.op string 视频检测执行的命令,支持多种视频检测操作。目前,视频敏感人物识别的命令就是politician
    ops.op.hookURL string 单个命令的回调地址
    ops.op.params.labels.label string 对某个命令返回label进行过滤,与ops.op.params.labels.selectops.op.params.labels.score一起使用。
    ops.op.params.labels.select int ops.op.params.labels.label中设置的label,设置过滤条件,1表示忽略不选,2表示只选该类别。
    ops.op.params.labels.score float 过滤返回label结果的置信度参数,当ops.op.params.labels.select=1时表示忽略不选小于该设置的结果,当select=2时表示只选大于等于该设置的结果

    响应语法

    返回结果按照请求参数params.async分为两种:

    • params.async == false:实时处理请求,视频鉴黄完成后就返回结果
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        <op:string>: {
            "labels": [
                {
                    "label": <label:string>,
                    "score": <score:float>
                },
                ...
            ],
            "segments": [
                {
                    "offset_begin": <offset:int>,
                    "offset_end": <offset:int>,
                    "labels": [
                        {
                            "label": <label:string>,
                            "score": <score:float>
                        },
                        ...
                    ],
                    "cuts": [
                        {
                            "offset": <offset:int>,
                            "uri": <uri:string>,
                            "result": {}
                        },
                        ...
                    ]    
                },
                ...
            ]
        }
    }
    
    参数 类型 说明
    op string 视频检测命令
    op.labels.label string 视频维度的标签,与op.lables.score 成对返回。
    op.lables.score float 显示的是op.labels.label这类标签的置信度。这个值取的是该视频中属于这类的所有视频片断的置信度的最大值。
    op.segments.offset_begin int 视频片段起始的时间位置。
    op.segments.offset_end int 视频片段结束的时间位置。
    op.segments.labels.label string 视频片断所属的标签,一个视频片断只会有一个标签。
    op.segments.labels.score float 视频片断所属标签的置信度。这个值取的是该视频片断中所有帧的置信度的最大值。
    op.segments.cuts.offset int 视频截帧的时间位置
    op.segments.cuts.uri string 视频截帧的保存路径
    op.segments.cuts.result interface 视频截帧得到的图片的检测标签,结果与具体的命令有关。
    • params.async == true:异步处理请求,立即返回job_id
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "job": <job_id>
    }
    
    参数 类型 必选 说明
    job_id string 服务器返回的,唯一标识该视频任务的ID。

    异步处理的结果

    * 异步处理后,获取单个视频敏感人物识别的结果

    请求语法

    GET /v1/jobs/video/<job-id> HTTP/1.1
    
    
    参数 类型 必选 说明
    job_id string 服务器返回的,唯一标识该视频任务的ID。

    响应语法

    {
        "id": <job_id:string>,
        "vid": <string>,
        "request": {},
        "status": <string>,
        "result": {
            <op>: {
            },
            ...
        },
        "error": <string>,
        "created_at": <string>,
        "updated_at": <string>
    }
    
    参数 类型 说明
    id string 服务器返回的,唯一标识该视频任务的ID
    vid string 视频唯一标识,申请任务时传入的vid
    request object 视频分析请求
    status string 任务状态,WAITING/DOING/RESCHEDULED/FAILED/FINISHED,RESCHEDULED是指等待重试中
    result object 详细解释见实时处理请求返回结果
    error string 处理视频的过程中遇到的错误,会返回相应的错误信息,详细解释见错误代码含义
    created_at string 任务创建时间,like: 2006-01-02T15:03:04
    updated_at string 任务更新时间,like: 2006-01-02T15:03:04

    错误代码含义

    Error Code Error Message Desc
    400 "bad op" 输入的op值不支持
    400 "invalid interval, allow mode is [0, 10]" 输入的vframe的interval值不在[0-10]的范围
    400 "invalid mode, allow mode is [0, 1]" 输入的vframe的mode值不在[0-1]的范围
    424 "cannot find the video" 找不到输入的视频文件
    400 "cannot open the file" 打不开输入的视频文件
    500 "cannot allow memory" 发生内存不足等情况

    * 异步处理时,获取视频处理任务列表

    请求语法

    GET /v1/jobs/video?status=<string> HTTP/1.1
    
    
    参数 类型 必选 说明
    status string 任务状态,WAITING/DOING/RESCHEDULED/FAILED/FINISHED,RESCHEDULED是指等待重试中

    响应语法

    [
        {
            "id": <string>,
            "status": <string>,
            "created_at": <string>,
            "updated_at": <string>
        },
        ...
    ]
    
    参数 类型 说明
    id string 服务器返回的,唯一标识该视频任务的ID
    status string 任务状态,WAITING/DOING/RESCHEDULED/FAILED/FINISHED,RESCHEDULED是指等待重试中
    created_at string 任务创建时间,like: 2006-01-02T15:03:04
    updated_at string 任务更新时间,like: 2006-01-02T15:03:04

    视频处理的结果回调

    • 单op处理结束后的结果回调CALLBACK /v1/video/op-result

    请求语法

    POST /xxxxx HTTP/1.1
    Content-Type: application/json
    
    {
        "id": <vid:string>,
        "op": <op:string>,
        "result": {
            "labels": [
                {
                    "label": <label:string>,
                    "score": <score:float>
                },
                ...
            ],
            "segments": [
                {
                    "offset_begin": <offset:int>,
                    "offset_end": <offset:int>,
                    "labels": [
                        {
                            "label": <label:string>,
                            "score": <score:float>
                        },
                        ...
                    ],
                    "cuts": [
                        {
                            "offset": <offset:int>,
                            "uri": <uri:string>,
                            "result": {}
                        },
                        ...
                    ]    
                },
                ...
            ]
        }
    }
    
    参数 类型 必选 说明
    id string 调用者设置的视频唯一标识
    op string 视频检测命令
    result.labels.label string 视频维度的标签,与result.lables.score 成对返回。例如,某个视频进行视频敏感人物识别,视频片断中出现 {"label": "王胜俊","score": 0.73151815}。
    result.lables.score float 显示的是result.labels.label这类标签的置信度。这个值取的是该视频中属于这类的所有视频片断的置信度的最大值。
    result.segments.offset_begin int 视频片段起始的时间位置。
    result.segments.offset_end int 视频片段结束的时间位置。
    result.segments.labels.label string 视频片断所属的标签,一个视频片断只会有一个标签。
    result.segments.labels.score float 视频片断所属标签的置信度。这个值取的是该视频片断中所有帧的置信度的最大值。
    result.segments.cuts.offset int 视频截帧的时间位置
    result.segments.cuts.uri string 视频截帧的保存路径
    result.segments.cuts.result interface 视频截帧得到的图片的检测标签,结果与具体的命令有关。
    • 所有op处理结束后的结果回调CALLBACK /v1/video/result

    请求语法

    POST /xxxxx HTTP/1.1
    Content-Type: application/json
    
    {
        "id": <vid:string>,
        "result": {
            <op>: {
            },
            ...
        }
    }
    
    参数 类型 说明
    id string 调用者设置的视频唯一标识
    result object 详细解释见实时处理请求返回结果

    请求示例

    {
        "data": {
            "uri": "http://foo.com/foo.mp4"
        },
        "params": {
            "vframe": {
                "interval": 5
            }
        },
        "ops": [
            {
                "op": "politician",
                "params": {
                    "labels": [
                        {
                            "label": "0"
                        }
                    ]
                }
            }
        ]
    }
    
    {
        "politician": {
            "labels": [
                {
                    "label": "李岚清",
                    "score": 0.763143
                },
                {
                    "label": "宋楚瑜",
                    "score": 0.7174549
                }
            ],
            "segments": [
                {
                    "offset_begin": 4767,
                    "offset_end": 4767,
                    "labels": [
                        {
                            "label": "李岚清",
                            "score": 0.763143
                        },
                        {
                            "label": "宋楚瑜",
                            "score": 0.68354243
                        }
                    ],
                    "cuts": [
                        {
                            "offset": 4767,
                            "result": {
                                "detections": [
                                    {
                                        "boundingBox": {
                                            "pts": [
                                                [
                                                    58,
                                                    172
                                                ],
                                                [
                                                    119,
                                                    172
                                                ],
                                                [
                                                    119,
                                                    244
                                                ],
                                                [
                                                    58,
                                                    244
                                                ]
                                            ],
                                            "score": 0.99748707
                                        },
                                        "value": {
                                            "name": "李岚清",
                                            "score": 0.763143,
                                            "review": false
                                        },
                                        "sample": {
                                            "url": "http://p4wgdf8lr.bkt.clouddn.com/politician/sample/img-05a77a0308aaa5a786ec8f57079029fa.jpg",
                                            "pts": [
                                                [
                                                    85,
                                                    38
                                                ],
                                                [
                                                    125,
                                                    38
                                                ],
                                                [
                                                    125,
                                                    97
                                                ],
                                                [
                                                    85,
                                                    97
                                                ]
                                            ]
                                        }
                                    },
    
                                    {
                                        "boundingBox": {
                                            "pts": [
                                                [
                                                    153,
                                                    17
                                                ],
                                                [
                                                    205,
                                                    17
                                                ],
                                                [
                                                    205,
                                                    72
                                                ],
                                                [
                                                    153,
                                                    72
                                                ]
                                            ],
                                            "score": 0.9949202
                                        },
                                        "value": {
                                            "name": "宋楚瑜",
                                            "score": 0.68354243,
                                            "review": true
                                        },
                                        "sample": {
                                            "url": "http://p4wgdf8lr.bkt.clouddn.com/politician/sample/img-433f6ac9dd14668d3f5be0dfe06ff912.jpg",
                                            "pts": [
                                                [
                                                    61,
                                                    21
                                                ],
                                                [
                                                    107,
                                                    21
                                                ],
                                                [
                                                    107,
                                                    88
                                                ],
                                                [
                                                    61,
                                                    88
                                                ]
                                                                                               ]
                                                  }
                                    }
                                ]
                            }
                        }
                    ]
                }
            ]
        }
    }
    

    价格

    视频敏感人物识别的工作流程如下:
    1)按照API里面的设置对视频进行截帧,截帧不额外收费
    2)对截帧进行图片敏感人物识别
    所以,视频敏感人物识别的价格最终还是图片敏感人物识别的价格,具体价格请参考

    服务价格

    视频政治人物识别是对视频截帧后,对截帧进行图片政治人物识别,所以视频政治人物识别价格实际使用的是截帧图片政治人物识别的价格,与图片政治人物识别共用范围。

    例:
    某月视频文件使用视频政治人物识别服务,视频截帧的数量为400万,即视频政治人物识别产生的图片政治人物识别量为400万;当月图片文件使用政治人物识别服务,其调用量为106万。则这个月总的图片政治人物识别调用量为506万,账单金额则为:
    图片政治人物识别:

    3000000*0.155/100+2000000*0.145/100=4650+2900=7550元

    以上内容是否对您有帮助?
  • Icon free helper
    Close