创建边缘关键岗位检测作业
功能介绍
该API用于分析用户边缘节点上的RTSP视频流,当用户设置的区域中人数小于用户指定的数量,并持续超过告警时间阈值时向用户上报告警。
目前支持H264、H265编码格式的RTSP视频流。
调试
您可以在API Explorer中调试该接口。
URI
- URI格式
POST /v2/{project_id}/services/c-staffonduty-edge/tasks
- 参数说明
参数
是否必选
类型
说明
project_id
是
String
服务所在区域对应的项目ID,获取方法请参见获取项目ID。
请求
- 请求样例1(VCN输入+WEBHOOK输出)
POST /v2/6204a5bd270343b5885144cf9c8c158d/services/c-staffonduty-edge/tasks { "name": "staffonduty-task", "description": "staffonduty task test", "input": { "type": "vcn", "vcn":{ "ip":"172.100.119.6", "password":"CQeNfcRLwyMvH77AkDBaPS+BKXdFu/1bAXtIMNTx3QPbVewjipNq06nNodxWI28I1lCUsvv2+wB1joepzynLVW3g2nz0k9vaCRDoK6=", "port":"4675", "username":"testname" }, "data": [ { "index": 0, "stream_type": 1, "device_id":"07211540881586160101#f7964493ff764bbf9294d58b22e63de6" } ] }, "output": { "webhook":{ "url":"https://apigw.xx.com/api/mqs/sit", "headers":{ "content-type":"application/json" } } }, "service_version": "3.0", "resource_order_id": "840a5cf90d4a4bbaa71f251dfe8fe64e", "edge_pool_id": "8dcf5ec7bc4d4a26aa1d3e1bb5ed2b5a", "service_config": { "common": { "target_roi": "{\"polygons\":[{\"data\":[[484,465],[1850,450],[1905,1013],[515,1050]]},{\"data\":[[484,125],[1800,125],[1800,677],[495,677]]}]}", "image_compression_ratio": 90, "key_region_detection_sw": 1, "key_region_detect_interval": 2, "key_region_detect_threshold": 2, "key_region_person_count": 50 } } }
- 请求样例2(摄像头输入+DIS输出)
POST /v2/6204a5bd270343b5885144cf9c8c158d/services/c-staffonduty-edge/tasks { "name": "staffonduty-edge-task", "description": "staffonduty task test", "input": { "type": "edgecamera", "data": [ { "id": "aec5857c-222f-4aa9-be39-23654e118886", "index": 0 } ] }, "output": { "dis": { "stream_name": "dis-staffonduty-edge" } }, "service_version": "3.0", "resource_order_id": "840a5cf90d4a4bbaa71f251dfe8fe64e", "edge_pool_id": "8dcf5ec7bc4d4a26aa1d3e1bb5ed2b5a", "service_config": { "common": { "target_roi": "{\"polygons\":[{\"data\":[[484,465],[1850,450],[1905,1013],[515,1050]]}, {\"data\":[[484,125],[1800,125],[1800,677],[495,677]]}]}", "image_compression_ratio": 90, "key_region_detection_sw": 1, "key_region_detect_interval": 2, "key_region_detect_threshold": 2, "key_region_person_count": 50 } } }
- 请求样例3(edgerestful输入+DIS输出)
POST /v2/6204a5bd270343b5885144cf9c8c158d/services/c-staffonduty-edge/tasks { "name": "staffonduty-task", "description": "staffonduty task test", "input": { "type": "edgerestful", "data": [ { "index": 0, "url":"https://100.127.134.69:554/test/data", "certificate_check": false, "rtsp_path_in_response": "data/url" } ] }, "output": { "dis": { "stream_name": "dis-staffonduty-edge" } }, "service_version": "3.0", "resource_order_id": "840a5cf90d4a4bbaa71f251dfe8fe64e", "edge_pool_id": "8dcf5ec7bc4d4a26aa1d3e1bb5ed2b5a", "service_config": { "common": { "target_roi": "{\"polygons\":[{\"data\":[[484,465],[1850,450],[1905,1013],[515,1050]]},{\"data\":[[484,125],[1800,125],[1800,677],[495,677]]}]}", "image_compression_ratio": 90, "key_region_detection_sw": 1, "key_region_detect_interval": 2, "key_region_detect_threshold": 2, "key_region_person_count": 50 } } }
- 请求样例4(VCN输入+DIS输出)
POST /v2/6204a5bd270343b5885144cf9c8c158d/services/c-staffonduty-edge/tasks { "name": "staffonduty-task", "description": "staffonduty task test", "input": { "type": "vcn", "vcn":{ "ip":"172.100.119.6", "password":"CQeNfcRLwyMvH77AkDBaPS+BKXdFu/1bAXtIMNTx3QPbVewjipNq06nNodxWI28I1lCUsvv2+wB1joepzynLVW3g2nz0k9vaCRDoK6=", "port":"4675", "username":"testname" }, "data": [ { "index": 0, "stream_type": 1, "device_id":"07211540881586160101#f7964493ff764bbf9294d58b22e63de6" } ] }, "output": { "dis": { "stream_name": "dis-staffonduty-edge" } }, "service_version": "3.0", "resource_order_id": "840a5cf90d4a4bbaa71f251dfe8fe64e", "edge_pool_id": "8dcf5ec7bc4d4a26aa1d3e1bb5ed2b5a", "service_config": { "common": { "target_roi": "{\"polygons\":[{\"data\":[[484,465],[1850,450],[1905,1013],[515,1050]]},{\"data\":[[484,125],[1800,125],[1800,677],[495,677]]}]}", "image_compression_ratio": 90, "key_region_detection_sw": 1, "key_region_detect_interval": 2, "key_region_detect_threshold": 2, "key_region_person_count": 50 } } }
- 参数说明
参数
是否必选
类型
说明
name
是
String
作业名称,只能由中文、字母(a~zA~Z)、数字(0~9)、中划线(-)、下划线(_)组成,长度范围为[1,100]。
description
否
String
作业描述信息,最大长度为500字符长度。
input
是
Object
视频数据输入列表,支持从指定的边缘摄像头读取数据,即输入类型为“edgecamera”,“edgerestful”,“VCN”。
详细参数定义参见task.input(任务输入参数)。
service_version
是
String
功能版本号,版本号为3.0。边缘算法版本支持的显卡硬件为T4和华为自研Davinci芯片。
resource_order_id
是
String
购买的算法能力包ID,在服务界面购买算法能力包获取。
edge_pool_id
是
String
边缘运行池ID,获取方法参见创建边缘运行池。
output
是
Object
结果数据的输出列表,目前支持以下输出类型:- DIS:将结果输出到您指定的DIS通道 。
- Webhook:将结果输出到Webhook URL。
- Localpath:将作业的运行结果保存在边缘节点本地(节点必须为linux系统),必须为linux路径,例如“/opt/cloud/”。
详细参数定义见task.output(任务输出参数)。
service_config
否
Object
服务的算法配置,配置参数见service_config参数结构说明。
- service_config中common参数结构说明
参数
是否必选
类型
说明
key_region_detection_sw
否
Int
对应控制台的界面参数“关键岗位检测开关”。
是否开启关键岗位检测告警,取值范围:- 0:表示不开启
- 1:表示开启
默认值为1。
key_region_person_count
否
Int
对应控制台的界面参数“在岗最小人数”。
关键岗位检测区域的最少人数,取值范围为[1, 100],默认值为2。
key_region_detect_interval
否
Int
对应控制台的界面参数“检测周期”。
关键区域检测周期,单位为秒。取值范围为[1, 3600],默认值为1。当时间到达检测周期整数倍时,触发算法检测在岗人数。
key_region_detect_threshold
否
Int
对应控制台的界面参数“告警触发阈值”。
告警触发阈值,单位为检测周期个数。取值范围为[1, 3600],默认值为60。假设告警触发阈值为N,当连续N个检测周期时间内检测结果都不满足最小在岗人数,则触发告警。触发告警或满足在岗人数则重新开始计数,直到再次达到告警阈值。
image_compression_ratio
否
Int
对应控制台的界面参数“图片压缩比”。
取值范围[20,100],默认值:90,表示图片压缩比90%。
target_roi
否
String
对应控制台的界面参数“检测区域设置”。
表示检测区域,该字段为JSON格式的字符串,API调用时需要加转义符。在告警图片中区域框会用黄色画出来。详细JSON格式参见target_roi(目标区域)。
例如:
{"polygons":[{"data":[[84,389],[1840,349],[1824,526],[78,526]]}]}
参数没有携带时,默认区域为整个视频帧中间的1/4。
- 当target_roi参数未设置时,区域默认位置如图1所示,其中Wframe为帧宽度,Hframe为帧高度。
- 默认区域为矩形,假设矩形的四个端点分别为point_1、point_2、point_3、point_4,其位置默认为:
- poin_1=(¼Wframe, ¼Hframe)
- poin_2=(¾Wframe, ¼Hframe)
- poin_3=(¼Wframe, ¾Hframe)
- poin_4=(¾Wframe, ¾Hframe)
- 默认区域为矩形,假设矩形的四个端点分别为point_1、point_2、point_3、point_4,其位置默认为:
响应
- 响应样例
[ { "id": "90d0d8c40f24565c897db868e17a6hui" } ]
- 返回作业ID列表
参数
类型
说明
id
String
作业ID。
检测结果
- 输出JSON数据流到指定的DIS通道,包括结构化数据。
- 结果示例:
{ "event_type": 458752, "task_id": "01d0d8c40f24441c897db868e17a65db", "stream_id": "test", "timestamp": 1527603463, "message_id": "0DD1BEA6-634B-11E8-8B0B-407D0FAD9218", "image_base64": "/3j24AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQE...", "data": { "event_set": [{ "polygon": [ [484, 465], [1850, 450], [1905, 1013], [515, 1050] ], "counter": 1, "person_set": [{ "bounding_box": { "x": 876, "y": 446, "w": 142, "h": 147 } }] }, { "polygon": [ [484, 125], [1800, 125], [495, 677], [1800, 677] ], "counter": 1, "person_set": [{ "bounding_box": { "x": 876, "y": 446, "w": 142, "h": 147 } }] }] } }
- JSON格式说明
字段
类型
说明
stream_id
String
摄像头编号。
event_type
Uint64
快速标识离岗检测的输出消息类型,离岗检测算法其值固定为458752,对应16进制为 0x 0000 0000 0007 0000。
task_id
String
作业ID。
timestamp
Uint64
触发告警时间点的时间戳。
message_id
String
告警ID,生成的唯一告警事件UUID。
image_base64
String
告警时刻输入的视频图像的Base64编码结果。
data
Object
业务输出内容。
- data参数格式说明
字段
类型
说明
event_set
List<Object>
输出事件列表。
- event_set参数格式说明
字段
类型
说明
polygon
List<Object>
告警输出的离岗检测多边形框,例如"polygon":[[484,465],[1850,450],[1905,1013],[515,1050]]。
counter
Int
告警输出时的离岗检测人数。
person_set
List<Object>
告警输出的离岗检测到的人的bounding_box列表。
- bounding_box参数格式说明
字段
类型
说明
x
Int
矩形框左上角横坐标。
y
Int
矩形框左上角纵坐标。
w
Int
矩形框高度。
h
Int
矩形框宽度。
返回值
- 正常
- 异常
返回值
说明
400 Bad Request
请求错误,具体返回错误码请参考错误码。
401 Unauthorized
鉴权失败。
403 Forbidden
没有操作权限。
404 Not Found
找不到资源。
500 Internal Server Error
服务内部错误。
503 Service Unavailable
服务不可用。