更新时间:2024-05-21 GMT+08:00
分享

head_shoulder_data 头肩业务

功能介绍

头肩业务:人群密度,排队长度,过线计数与人数统计相关的场景的智能业务。

头肩业务消息体的message_type值为head_shoulder_data。

目前行业视频管理服务会处理以下场景:

itgt_type/target_type枚举值:

  • 12 人群密度(摄像机SDC/NVR800开启人群密度功能,会自动抓拍区域内人群,提取人群信息,如人群密度、人数等)
  • 13 排队长度(摄像机SDC/NVR800开启排队长度功能,会自动抓拍区域内的排队队列,提取排队信息,如排队人数、排队时长等)
  • 15 过线计数(摄像机SDC/NVR800开启过线计数功能,绘制一条线,指定进入和离开方向,有人通过线,则会记录过线信息,如进入总人数、离开总人数等)
表1 message_type为head_shoulder_data时,data结构体如下:

字段名

类型

说明

device_id

String

设备ID,正常情况下不为空,必传

channel_id

String

通道ID,正常情况下不为空,必传

data_id

String

数据ID:正常情况下不为空,必传。此场景没有图片上传,无法通过data_id获取图片

report_time

String

上报时间:示例:2021-03-15T16:43:00+08:00

data

Data object

业务信息

表2 Data

字段名

类型

说明

common

Common object

通用数据定义

rule

Rule object

规则数据定义

targets

Target object

目标数据定义

表3 Common

字段名

类型

说明

channel_id

Int64

通道ID

channel_id_ex

Int64

相机扩展通道ID

pts

Int64

时间戳

sdc_device_id

String

主从机设备ID

sdc_uuid

String

摄像机视频源通道号

intelligence_type

Int

智能类型

image_height

Int

图片高度

image_width

Int

图片宽度

meta_type_mask

Int

元数据类型掩码

枚举值:

  • 1 框数据
  • 2 图数据
  • 8 保活数据
  • 16 告警数据

intelligent_target_index

Int

智能目标/业务类型索引

target_time_domain_info

Int

配合索引使用,标识三层数据时域信息

枚举值:

  • 0 实时框数据(检测框,规则框数据,用于复合流请流)
  • 1 目标等其他数据(目标抓拍,定时上报,用于后端储存检索)
表4 Rule

字段名

类型

说明

rule_line_dir

Int

规则线方向

rule_line_pos

MetaLine object

规则线位置

rule_line_pos_r

MetaLine object

规则线位置(相对位置)

rule_type

Int

规则类型,参考附录规则线类型

rule_area_pos

MetaArea object

规则框位置

rule_area_pos_relative

MetaArea object

规则框位置(相对位置)

表5 MetaLine

字段名

类型

说明

x1

Int64

横坐标

x2

Int64

横坐标

y1

Int64

纵坐标

y2

Int64

纵坐标

表6 MetaArea

字段名

类型

说明

num

Int

框线坐标点数量:框线为多边形,这里表示顶点的个数

points

Array of Point Objects

每个坐标点的具体坐标

表7 Point

字段名

类型

说明

x

Int

横坐标

y

Int

纵坐标

表8 Target

字段名

类型

说明

human_count_all_in_num

Int

过线计数进入总人数

human_count_all_out_num

Int

过线计数离开总人数

human_count_in

Int

进入人数

human_count_out

Int

离开人数

human_time_start

Int64

计时开始时间:单位毫秒/ms

pic_snapshot_dst_offset

Int64

夏令时偏移时间:单位秒/s

pic_snapshot_timems

Int64

抓拍时间:单位毫秒/ms

pic_snapshot_tzone

Int64

抓拍时区:单位毫秒/ms 东区为+ 西区为-

area_ratio

Int

人群密度检测算法人群密度

head_shoulder_pos

Rect object

人群密度检测算法返回框

human_time_start

Int64

计时开始时间:单位毫秒/ms

human_time_stop

Int64

计时结束时间:单位/ms

people_num

Int

人群密度检测算法人数

queue_time

Int

排队时长

shoulder_num

Int

头肩个数

target_type

Int

智能业务场景

枚举值:

  • 12 人群密度
  • 13 排队长度
  • 15 过线计数
表9 Rect

字段名

类型

说明

x

Int

上层业务检测框左上角坐标点计算方式,x1 = x *全景图像素宽度/ 10000

y

Int

上层业务检测框左上角坐标点计算方式,y1 = y *全景图像素高度/ 10000

width

Int

上层业务检测框宽度计算方式 widht1 = widht *全景图像素宽度/ 10000

height

Int

上层业务检测框长度计算方式 height1 = height *全景图像素高度/ 10000

  • 示例一、人群密度
{
    "message_id": 1676823431368569189,
    "message_type": "head_shoulder_data",
    "data": {
        "device_id": "HOLO123***",
        "channel_id": "0",
        "data_id": "167682343135900410410000rwnwv040",
        "report_time": "2023-02-20T00:17:11+08:00",
        "data": {
            "common": {
                "channel_id": 101,
                "channel_id_ex": 101,
                "intelligent_target_index": 9223372036854775808,
                "meta_type_mask": null,
                "pts": 15360490474,
                "sdc_uuid": "e15ee2b3-83c2-073a-28e1-378e9612aa71",
                "target_time_domain_info": 1
            },
            "rule": {
                "rule_line_dir": 1,
                "rule_line_pos": {
                    "x1": 20,
                    "y1": 144,
                    "x2": 340,
                    "y2": 144
                },
                "rule_line_pos_r": {
                    "x1": 568,
                    "y1": 5000,
                    "x2": 9659,
                    "y2": 5000
                },
                "rule_type": 9
            },
            "targets": [
                {
                    "area_ratio": 0,
                    "head_shoulder_pos": {
                        "x": 5795,
                        "y": 4270,
                        "width": 653,
                        "height": 1006
                    },
                    "human_count_all_in_num": 12,
                    "human_count_all_out_num": 0,
                    "human_count_in": 0,
                    "human_count_out": 0,
                    "human_time_start": 18446744073696131378,
                    "human_time_stop": 18446744073696136378,
                    "people_num": 1,
                    "pic_snapshot_dst_offset": 0,
                    "pic_snapshot_timems": 51767620,
                    "pic_snapshot_tzone": 28800000,
                    "queue_time": 0,
                    "shoulder_num": 0,
                    "target_type": 12
                }
            ]
        }
    },
    "test": false
}
  • 示例二、排队长度
{
    "message_id": 1676874817394175412,
    "message_type": "head_shoulder_data",
    "data": {
        "device_id": "123456TEST***",
        "channel_id": "0",
        "data_id": "167687481124123400400000ayhea040",
        "report_time": "2023-02-20T14:33:37+08:00",
        "data": {
            "common": {
                "channel_id": 101,
                "channel_id_ex": 101,
                "intelligent_target_index": 4611686018427387904,
                "meta_type_mask": 3,
                "pts": 1194366429599,
                "sdc_uuid": "asdzxq4ad-3d12-1dcc-e88a-60242fc39ab9",
                "target_time_domain_info": 1
            },
            "rule": {
                "rule_area_pos": {
                    "num": 7,
                    "points": [
                        {
                            "x": 0,
                            "y": 133
                        },
                        {
                            "x": 159,
                            "y": 59
                        },
                        {
                            "x": 210,
                            "y": 41
                        },
                        {
                            "x": 238,
                            "y": 55
                        },
                        {
                            "x": 174,
                            "y": 85
                        },
                        {
                            "x": 133,
                            "y": 128
                        },
                        {
                            "x": 1,
                            "y": 243
                        }
                    ]
                },
                "rule_area_pos_relative": {
                    "num": 7,
                    "points": [
                        {
                            "x": 0,
                            "y": 4618
                        },
                        {
                            "x": 4517,
                            "y": 2048
                        },
                        {
                            "x": 5965,
                            "y": 1423
                        },
                        {
                            "x": 6761,
                            "y": 1909
                        },
                        {
                            "x": 4943,
                            "y": 2951
                        },
                        {
                            "x": 3778,
                            "y": 4444
                        },
                        {
                            "x": 28,
                            "y": 8437
                        }
                    ]
                },
                "rule_type": 11
            },
            "targets": [
                {
                    "human_time_start": 1676874816265,
                    "human_time_stop": 1676874817273,
                    "pic_snapshot_dst_offset": 0,
                    "pic_snapshot_tzone": 28800000,
                    "queue_time": 0,
                    "shoulder_num": 0,
                    "target_type": 13
                }
            ]
        }
    },
    "test": false
}
  • 示例三、过线计数
{
    "message_id": 1676713666444641343,
    "message_type": "head_shoulder_data",
    "data": {
        "device_id": "210123456SMY***",
        "channel_id": "0",
        "data_id": "167671366643600420420000kcxdq090",
        "report_time": "2023-02-18T17:46:41+08:00",
        "data": {
            "common": {
                "channel_id": 101,
                "channel_id_ex": 101,
                "intelligent_target_index": 2305843009213693952,
                "meta_type_mask": 3,
                "pts": 0,
                "sdc_uuid": "d5b7fae2-d83e-c441-d1ae-b699d3d84a74",
                "target_time_domain_info": 1
            },
            "rule": {
                "rule_line_dir": 1,
                "rule_line_pos": {
                    "x1": 95,
                    "y1": 203,
                    "x2": 271,
                    "y2": 210
                },
                "rule_line_pos_r": {
                    "x1": 2698,
                    "y1": 7048,
                    "x2": 7698,
                    "y2": 7291
                },
                "rule_type": 9
            },
            "targets": [
                {
                    "human_count_all_in_num": 0,
                    "human_count_all_out_num": 0,
                    "human_count_in": 0,
                    "human_count_out": 0,
                    "human_time_start": 1676713541166,
                    "pic_snapshot_dst_offset": 0,
                    "pic_snapshot_timems": 1676713601160,
                    "pic_snapshot_tzone": 28800000,
                    "target_type": 15
                }
            ]
        }
    },
    "test": false
}

相关文档