视频质量检测任务接口
更新时间:2021-12-07
创建视频质检任务
接口描述
用户通过Bucket,BOS Key以及其他配置信息为指定视频做质量检测。
请求(Request)
-
请求语法:
POST /v{version}/job/video_defect_detect HTTP/1.1 accept-encoding: gzip, deflate x-bce-date: {utc-date-string} connection: keep-alive accept: */* host: media.bj.baidubce.com x-bce-request-id: {bce-request-id} content-type: application/json authorization: {bce-authorization-string}
- 请求头域:无特殊Header参数
- 请求参数:无
- 请求体:
字段名称 | 字段类型 | 必要性 | 字段描述 | 可选值 | 默认值 |
---|---|---|---|---|---|
pipelineName | String | 必选 | 任务所属的 pipelineName | —— | —— |
presetName | String | 可选 | 任务的模板名称(模板和job中重复内容以job中为准) | —— | —— |
source | Object | 必选 | 输入视频信息的集合 | —— | —— |
+ sourceBucket | String | 可选 | 输入视频文件的 BOS Bucket(用户必须有该bucket的读权限) | —— | 队列中指定的输入bucket |
+ key | String | 必选 | 输入视频的 BOS Key | —— | —— |
interval | Number | 可选 | 抽帧间隔(毫秒、ms) | —— | 1000 |
models | ModelsParm | 可选 | 需要检测的项目(使用的模型) | —— | —— |
ModelsParm
字段名称 | 字段类型 | 必要性 | 字段描述 | 可选值 | 默认值 |
---|---|---|---|---|---|
bright | ModelParm | 可选 | 亮度检测模型 | —— | —— |
color | ModelParm | 可选 | 色度检测模型 | —— | —— |
blur | ModelParm | 可选 | 模糊检测模型 | —— | —— |
noise | ModelParm | 可选 | 噪声检测模型 | —— | —— |
mosaic | ModelParm | 可选 | 马赛克检测模型 | —— | —— |
freeze | ModelParm | 可选 | 冻结检测模型 | —— | —— |
jitter | ModelParm | 可选 | 抖动检测模型 | —— | —— |
stripe | ModelParm | 可选 | 滚动条纹检测模型 | —— | —— |
blackEdge | ModelParm | 可选 | 黑边检测模型 | —— | —— |
ModelParm
字段名称 | 字段类型 | 必要性 | 字段描述 | 可选值 | 默认值 |
---|---|---|---|---|---|
enable | Boolean | 可选 | 是否使用该模型 | true、false | true |
threshold | Number | 可选 | 检测阈值, bright/color/blur/noise/mosaic/blackEdge模型需要,其他模型不需要 | 0.0~1.0 | bright模型为0.500,color模型为0.300,blur/noise模型为0.400,mosaic模型为0.001,blackEdge模型为0.200 |
模型阈值和检测逻辑解释:
模型 | 模型描述 | 有无阈值 | 默认阈值 | 阈值含义 | 模型检测逻辑 |
---|---|---|---|---|---|
bright | 亮度检测模型 | 有 | 0.500 | 表示检测每帧图像偏亮或偏暗程度(值越大程度越大)的阈值 | 某帧图像的偏亮或偏暗程度大于该阈值则认为该帧存在异常,并写入检测结果中 |
color | 色度检测模型 | 有 | 0.300 | 表示检测每帧图像偏色(红、黄、绿、蓝、紫)程度(值越大程度越大)的阈值 | 某帧图像的偏色程度大于该阈值则认为该帧存在异常,并写入检测结果中 |
blur | 模糊检测模型 | 有 | 0.400 | 表示检测每帧图像模糊程度(值越大程度越大)的阈值 | 某帧图像的模糊程度大于该阈值则认为该帧存在异常,并写入检测结果中 |
noise | 噪声检测模型 | 有 | 0.400 | 表示检测每帧图像噪声程度(值越大程度越大)的阈值 | 某帧图像的噪声程度大于该阈值则认为该帧存在异常,并写入检测结果中 |
mosaic | 马赛克检测模型 | 有 | 0.001 | 表示检测每帧图像中马赛克区域与整个图像面积比值的阈值 | 某帧图像中马赛克区域与整个图像面积比值大于该阈值则认为该帧存在异常,并写入检测结果中 |
freeze | 冻结检测模型 | 无 | —— | —— | 当前帧相对前一帧无变化,表示当前帧存在冻结或称为静帧。连续3帧图像存在冻结则认为该帧(连续3帧的最后一帧)存在异常,并写入检测结果中 |
jitter | 抖动检测模型 | 无 | —— | —— | 在前20帧中发生了整体往复运动,且单向运动幅值均超过5个像素,表示当前帧存在抖动。连续3帧图像存在抖动则认为该帧(连续3帧的最后一帧)存在异常,并写入检测结果中 |
stripe | 滚动条纹检测模型 | 无 | —— | —— | 当前帧相对前一帧运动条纹的长度大于图像边长(将图像长宽比转为1:1时)的一半,且条纹数量大于3,表示当前帧存在滚动条纹。连续3帧图像存在滚动条纹则认为该帧(连续3帧的最后一帧)存在异常,并写入检测结果中 |
blackEdge | 黑边检测模型 | 有 | 0.200 | 表示检测每帧图像中非黑边(黑边包含黑色、其他纯色和高斯模糊边界)区域与整个图像面积比值的阈值 | 某帧图像中非黑边区域与整个图像面积比值大于该阈值则认为存在该异常,并写入检测结果中 |
-
请求示例
POST /v3/job/video_defect_detect HTTP/1.1 accept-encoding: gzip, deflate x-bce-date: 2021-05-21T21:13:00Z host: media.bj.baidubce.com accept: */* connection: keep-alive x-bce-request-id: d97c57d0-ca44-4d1c-bfeb-941a92440968 content-type: application/json authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2021-05-21T21:13:00Z/1800/host;x-bce-date/7e21c9cf1e4e2cc6921a407a388fe98df122c53b9f509043d841be76eb09a1f9 { "pipelineName": "high_priority_pipe", "source": { "key": "samplefolderpath/samplevideo.mp4" }, "interval": 1000, "models": { "bright": { "enable": true, "threshold": 0.5 }, "color": { "enable": true, "threshold": 0.6 }, "mosaic": { "enable": true } } }
响应(Reponse)
- 响应头域:无特殊Header参数
- 响应参数:无
- 响应体:
字段名称 | 字段类型 | 字段描述 |
---|---|---|
jobId | String | 系统生成的任务的唯一标识 |
-
响应示例:
HTTP/1.1 200 OK Transfer-Encoding: chunked x-bce-request-id: d97c57d0-ca44-4d1c-bfeb-941a92440968 Cache-Control: no-cache Server: BWS Date: Tue, 21 May 2021 21:13:02 GMT Content-Type: application/json;charset=UTF-8 { "jobId":"job-lsdspxdastsmnbam" }
查询指定视频质检任务
接口描述
通过jobId查询视频质检任务。
请求(Request)
-
请求语法:
GET /v{version}/job/video_defect_detect/{jobId} HTTP/1.1 accept-encoding: gzip, deflate x-bce-date: {utc-date-string} host: media.bj.baidubce.com accept: */* connection: keep-alive x-bce-request-id: {bce-request-id} content-type: application/json authorization: {bce-authorization-string}
- 请求头域:无特殊Header参数
- 请求参数:
字段名称 | 字段类型 | 必要性 | 字段描述 | 可选值 | 默认值 |
---|---|---|---|---|---|
jobId | String | 必选 | 系统生成的任务的唯一标识 | —— | —— |
- 请求体:无
-
请求示例:
GET /v3/job/video_defect_detect/job-lsdspxdastsmnbam HTTP/1.1 accept-encoding: gzip, deflate x-bce-date: 2021-05-21T21:21:21Z host: media.bj.baidubce.com accept: */* connection: keep-alive x-bce-request-id: 6bae5cb3-97d1-4b1a-b8b6-0ad577c1d481 content-type: application/json authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2021-05-21T21:21:21Z/1800/host;x-bce-date/7e21c9cf1e4e2cc6921a407a388fe98df122c53b9f509043d841be76eb09a1f9
响应(Reponse)
- 响应头域:无特殊Header参数
- 响应参数:无
- 响应体:与[创建视频质检任务/请求/请求体]保持一致,增加以下字段
字段名称 | 字段类型 | 字段描述 |
---|---|---|
jobId | String | 任务的唯一标识 |
jobStatus | String | 任务状态, success/failed/pending/running |
usedTime | Number | 检测用时(毫秒、ms) |
result | ModelsResult | 结果 |
error | Object | 错误,可能无此字段 |
+ code | String | 错误码 |
+ message | String | 错误信息 |
createTime | String | 任务创建的时间 |
startTime | String | 任务开始的时间 |
endTime | String | 任务完成的时间 |
ModelsResult
字段名称 | 字段类型 | 字段描述 |
---|---|---|
bright | ModelResult | 亮度检测结果 |
color | ModelResult | 色度检测结果 |
blur | ModelResult | 模糊检测结果 |
noise | ModelResult | 噪声检测结果 |
mosaic | ModelResult | 马赛克检测结果 |
freeze | ModelResult | 冻结检测结果 |
jitter | ModelResult | 抖动检测结果 |
stripe | ModelResult | 滚动条纹检测结果 |
blackEdge | ModelResult | 黑边检测结果 |
ModelResult
字段名称 | 字段类型 | 字段描述 |
---|---|---|
success | Boolean | 该项目是否成功 |
defects | List[DefectResult] | 缺陷结果的集合(按时间段分割) |
error | Object | 错误 |
+ code | String | 错误码 |
+ message | String | 错误信息 |
DefectResult
字段名称 | 字段类型 | 字段描述 |
---|---|---|
info | String | 缺陷检测信息, bright/color模型模型有此字段,其他模型无 |
score | Number | 缺陷分值, 含义参考模型阈值的含义, bright/color/blur/noise/mosaic/blackEdge 模型有此字段,其他模型无 |
start | Number | 缺陷起始时间戳(毫秒、ms) |
end | Number | 缺陷结束时间戳 (毫秒、ms) |
info 字段解释:
bright 模型,取值为light(过亮)、dark(过暗)之一 color 模型,取值为red(红)、yellow(黄)、green(绿)、blue(蓝)、purple(紫)之一
-
响应示例:
HTTP/1.1 200 OK Transfer-Encoding: chunked x-bce-request-id: 6bae5cb3-97d1-4b1a-b8b6-0ad577c1d481 Cache-Control: no-cache Server: BWS Date: Tue, 21 May 2021 21:21:21 GMT Content-Type: application/json;charset=UTF-8 { "jobId": "job-lsdspxdastsmnbwx", "jobStatus": "success", "pipelineName": "high_priority_pipe", "source": { "key": "samplefolderpath/samplevideo.mp4" }, "usedTime": 12000, "result": { "bright": { "success": true, "defects": [ { "info": "dark", "score": 0.95, "start": 10000, "end": 20000 }, { "info": "bright", "score": 0.95, "start": 40000, "end": 50000 } ] }, "color": { "success": true, "defects": [ { "info": "red", "score": 0.95, "start": 60000, "end": 70000 }, { "info": "green", "score": 0.95, "start": 90000, "end": 100000 } ] }, "mosaic": { "success": true, "defects": [ { "start": 160000, "end": 170000 }, { "start": 190000, "end": 1100000 } ] } }, "createTime": "2021-05-20T21:13:00Z", "startTime" : "2021-05-20T21:13:01Z", "endTime": "2021-05-20T21:13:14Z" }
查询指定队列的视频质检任务
接口描述
查询指定队列下满足一定条件的所有质检任务。
请求(Request)
-
请求语法:
GET /v{version}/job/video_defect_detect?pipelineName={pipelineName}&jobStatus={jobStatus}&begin={begin}&end={end}}&marker={marker}&maxSize={maxSize} HTTP/1.1 accept-encoding: gzip, deflate x-bce-date: {utc-date-string} host: media.bj.baidubce.com accept: */* connection: keep-alive x-bce-request-id: {bce-request-id} content-type: application/json authorization: {bce-authorization-string}
- 请求头域:无特殊Header参数
- 请求参数:
字段名称 | 字段类型 | 必要性 | 字段描述 | 可选值 | 默认值 |
---|---|---|---|---|---|
pipelineName | String | 必选 | 任务所属的队列名 | —— | —— |
jobStatus | String | 可选 | 所选任务的状态 | SUCCESS, FAILED, PENDING, RUNNING | —— |
begin | String | 可选 | 任务创建时间的上限。所选任务开始时间要大于等于begin | —— | —— |
end | String | 可选 | 任务创建时间的下限,所选任务开始时间要小于等于end | —— | —— |
marker | String | 可选 | 本次请求的marker,标记查询的起始位置,此处为jobId | —— | —— |
maxSize | Number | 可选 | 本次请求返回的任务列表的最大元素个数 | 1 ~ 1000 | 1000 |
- 请求体:无
-
请求示例:
GET /v3/job/video_defect_detect?pipelineName=high_priority_pipe&jobStatus=SUCCESS&begin=2021-05-20T08%3A53%3A42Z&end=2021-05-22T08%3A53%3A42Z&marker=job-feumm9etdd5c9gqv&maxSize=2 HTTP/1.1 accept-encoding: gzip, deflate x-bce-date: 2021-05-21T21:14:00Z host: media.bj.baidubce.com accept: */* connection: keep-alive x-bce-request-id: 3807ce30-5264-45f2-9b52-26b78e24a750 content-type: application/json authorization: bce-auth-v1/46bd9968a6194b4bbdf0341f2286ccce/2021-05-21T21:14:00Z/1800/host;x-bce-date/3e1bf9f50ae1fca2d704d61567810dde946fff3ca2e455676455a6f5c8cce596
响应(Response)
- 响应头域:无特殊Header参数
- 响应参数:无
- 响应体:与[查询指定视频质检任务/响应/响应体]保持一致,增加以下字段
字段名称 | 字段类型 | 字段描述 |
---|---|---|
marker | String | 本次请求的marker,标记查询的起始位置,此处为jobId |
isTruncated | Boolean | 指明返回数据是否被截断。true表示本页后面还有数据,即数据未全部返回;false表示已是最后一页,即数据已全部返回 |
nextMarker | String | 获取下一页所需要传递的marker值(此处为jobId),仅当isTruncated为true时(数据未全部返回)出现 |
-
响应示例:
HTTP/1.1 200 OK Transfer-Encoding: chunked x-bce-request-id: 6bae5cb3-97d1-4b1a-b8b6-0ad577c1d481 Cache-Control: no-cache Server: BWS Date: Tue, 21 May 2021 21:21:21 GMT Content-Type: application/json;charset=UTF-8 { "jobs" : [ { "jobId": "job-lsdspxdastsmnbwx", "jobStatus": "success", "pipelineName": "high_priority_pipe", "source": { "key": "samplefolderpath/samplevideo.mp4" }, "usedTime": 12000, "result": { "bright": { "success": true, "defects": [ { "info": "dark", "score": 0.95, "start": 10000, "end": 20000 }, { "info": "bright", "score": 0.95, "start": 40000, "end": 50000 } ] }, "color": { "success": true, "defects": [ { "info": "red", "score": 0.95, "start": 60000, "end": 70000 }, { "info": "green", "score": 0.95, "start": 90000, "end": 100000 } ] }, "mosaic": { "success": true, "defects": [ { "start": 160000, "end": 170000 }, { "start": 190000, "end": 1100000 } ] } }, "createTime": "2021-05-20T21:13:00Z", "startTime" : "2021-05-20T21:13:01Z", "endTime": "2021-05-20T21:13:14Z" }, { "jobId": "job-feumm9etdd5c9gqv", "jobStatus": "success", "pipelineName": "high_priority_pipe", "source": { "key": "samplefolderpath/samplevideo2.mp4" }, "usedTime": 12000, "result": { "bright": { "success": true, "defects": [ { "info": "dark", "score": 0.95, "start": 11000, "end": 21000 }, { "info": "bright", "score": 0.95, "start": 41000, "end": 51000 } ] } }, "createTime": "2021-05-20T21:14:00Z", "startTime" : "2021-05-20T21:14:01Z", "endTime": "2021-05-20T21:14:14Z" } ], "marker": "job-lsdspxdastsmnbwx", "isTruncated": true, "nextMarker": "job-gfpj59idrpygsjtw" }