创建边缘人流量统计作业
功能介绍
该API用于在边缘节点上分析RTSP视频流,检测穿过自定义线与区域的人流量,以及视频帧中的热点分布信息。
- 目前支持H264、H265编码格式的RTSP视频流。
调试
您可以在API Explorer中调试该接口。
URI
- URI格式
POST /v2/{project_id}/services/c-flowcount-edge/tasks
- 参数说明
参数
是否必选
类型
说明
project_id
是
String
服务所在区域对应的项目ID,获取方法请参见获取项目ID。
请求
- 请求样例(摄像头输入+DIS输出)
POST /v2/6204a5bd270343b5885144cf9c8c158d/services/c-flowcount-edge/tasks
- 请求样例(VCN输入+WEBHOOK输出)
POST /v2/6204a5bd270343b5885144cf9c8c158d/services/c-flowcount-edge/tasks { "name":"flowcount-task", "description":"flowcount 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.huawei.com/api/event/callback", "headers": { "content-type": "application/json" } } }, "service_version":"3.0", "resource_order_id":"840a5cf90d4a4bbaa71f251dfe8fe64e", "edge_pool_id":"9358ac0425b24a07b3258cffa2f0f0d6", "service_config":{ "common":{ "line_count_interval":2, "region_count_interval":2, "line_detection_sw":1, "region_detection_sw":1, "target_roi":"{\"lines\":[{\"data\":[[560,680],[1185,506]],\"properties\":{\"side1_name\":\"Side1\",\"side2_name\":\"Side2\"}}],\"polygons\":[{\"data\":[[0,0],[0,1080],[1920,1080],[1920,0]]}]}", "heatmap_detection_sw":0, "heatmap_detection_interval":60, "heatmap_point_interval":4 } } }
- 参数说明
参数
是否必选
类型
说明
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参数说明
字段
是否必选
类型
说明
line_count_interval
否
Int
过线人流量统计周期,单位为秒,统计的是一段时间的人流量结果。取值范围为(0, 86400],默认值为2。
region_count_interval
否
Int
区域人流量统计周期,单位为秒,统计的是当前时刻的区域人流量结果。取值范围为(0, 86400],默认值为2。
line_detection_sw
否
Int
过线人流量统计开关。
- 0:表示不开启。
- 1:表示开启。
默认值为1
region_detection_sw
否
Int
区域人流量统计开关。
- 0:表示不开启。
- 1:表示开启。
默认值为1
target_roi
否
string
对应控制台的界面参数“检测区域设置”。
表示检测区域,该字段为JSON格式的字符串,API调用时需要加转义符。详细JSON格式参见target_roi(目标区域)。
例如:
{"lines":[{"data":[[560,680],[1185,506]],"properties":{"side1_name":"Side1","side2_name":"Side2"}}],"polygons":[{"data":[[0,0],[0,1080],[1920,1080],[1920,0]]}]}
参数没有携带时,默认位置请参见直线与区域默认位置。
heatmap_detection_sw
否
Int
热力图检测开关
- 0:表示不开启。
- 1:表示开启。
默认值为0
heatmap_detection_interval
否
Int
热力图检测周期,单位为秒。取值范围为[10, 86400],默认值为10。依据热力图检测周期内的热点值进行更新。
heatmap_point_interval
否
Int
热点更新周期,单位为帧。取值范围为[1, 10000],默认值为4。在热力图检测周期内,热点值逐渐累加。
- 当target_roi参数未设置时,直线与区域默认位置如图1所示,其中Wframe为帧宽度,Hframe为帧高度。
- 直线两端点point_1与point_2默认值为:
- point_1=(¼Wframe, ½Hframe)
- point_2=(¾Wframe, ½Hframe)
- 默认区域为矩形,假设矩形的四个端点分别为point_1、point_2、point_3、point_4,其位置默认为:
- point_1=(¼Wframe, ¼Hframe)
- point_2=(¾Wframe, ¼Hframe)
- point_3=(¼Wframe, ¾Hframe)
- point_4=(¾Wframe, ¾Hframe)
- 直线两端点point_1与point_2默认值为:
响应
- 响应样例
[ { "id": "ee7d7f5c7ba24839b6abaf5b81607496" } ]
- 返回作业ID列表
参数
类型
说明
id
String
作业ID。
统计结果
- 边缘过线人流量统计结果
- 结果示例
{ "task_id":"ee7d7f5c7ba24839b6abaf5b81607496", "stream_id":"test", "event_type":131073, "timestamp":1535546730, "message_id":"849D1326-4FC8-11EA-8F73-0242AC110004", "data":{ "interval":2, "event_set":[ { "line":[ [ 480, 1440 ], [ 540, 540 ] ], "line_id":0, "side1_count":1, "side2_count":0, "side1_name":"side1", "side2_name":"side2" }, { "line":[ [ 490, 1500 ], [ 640, 340 ] ], "line_id":1, "side1_count":1, "side2_count":2, "side1_name":"in", "side2_name":"out" } ] } }
- 区域人流量统计结果实例
{ "task_id":"ee7d7f5c7ba24839b6abaf5b81607496", "stream_id":"test", "event_type":131074, "timestamp":1535546604, "message_id":"849D1326-4FC8-11EA-8F73-0242AC110004", "data":{ "event_set":[ { "polygon":[ [ 480, 270 ], [ 1440, 270 ], [ 1440, 810 ], [ 480, 810 ] ], "count":2, "region_id":0 }, { "polygon":[ [ 480, 200 ], [ 1110, 170 ], [ 1040, 510 ], [ 280, 310 ] ], "count":1, "region_id":1 } ] } }
- 热力图检测结果示意图
{ "task_id":"ee7d7f5c7ba24839b6abaf5b81607496", "stream_id": "test1", "event_type": 131075, "timestamp": 5, "message_id":"849D1326-4FC8-11EA-8F73-0242AC110004", "data":{ "interval":1, "heat_image_base64": "/9j/4AAQSkZJRgABAJDA...", "heatpoint_image_base64": "/9j/2wBDAAMCAgMCAgMD..." } }
- JSON格式说明
字段
类型
说明
task_id
String
作业ID。
stream_id
String
摄像头ID。
event_type
Uint64
快速标识人流量统计服务的输出消息类型。
JSON格式说明:
- 过线统计事件其值固定为131073,对应16进制为 0x 0000 0000 0002 0001
- 区域统计事件其值固定为131074,对应16进制为 0x 0000 0000 0002 0002
- 热力图统计事件其值固定为131075,对应16进制为 0x 0000 0000 0002 0003
message_id
String
告警ID,生成的唯一告警事件UUID。
timestamp
Uint64
过线、区域或者热力图统计结束的时间戳。
data
Object
过线、区域或者热力图统计业务输出内容。
- 过线统计的data参数格式说明
字段
类型
说明
interval
Int
过线检测周期,单位秒。
event_set
List<Object>
输出事件列表。
event_set参数格式说明字段
类型
说明
line
List<Object>
组成线的起点和终点构成的集合,例如[[50,60],[1000,1000]]。则第一个点表示起始点,第二个点表示终止点。
line_id
Int
直线的ID号。
side1_count
Int
人流穿过直线到side1_name的计数。
side2_count
Int
人流穿过直线到side2_name的计数。
side1_name
String
side1侧对应的标识名。
side2_name
String
side2侧对应的标识名。
- 区域统计的data参数格式说明
字段
类型
说明
event_set
List<Object>
输出事件列表。
event_set参数格式说明字段
类型
说明
polygon
List<Object>
区域对应的多边形框,例如"polygon":[[484,465],[1850,450],[1905,1013],[515,1050]]。
region_id
Int
区域的ID号。
count
Int
当前时刻,区域的人流统计量。
- 热力图检测的data参数格式说明
字段
类型
说明
interval
Int
热力图检测周期,单位时间秒。
heat_image_base64
Object
检测热力图Base64编码结果。
heatpoint_image_base64
Object
检测热点并绘制图后输出Base64编码结果,热点图中像素值表示该处目标出现的次数。
- 结果示例
返回值
- 正常
- 异常
返回值
说明
400 Bad Request
请求错误,具体返回错误码请参考错误码。
401 Unauthorized
鉴权失败。
403 Forbidden
没有操作权限。
404 Not Found
找不到资源。
500 Internal Server Error
服务内部错误。
503 Service Unavailable
服务不可用。