更新时间:2024-04-03 GMT+08:00
分享

多区域客流分析技能

技能描述

面向智慧商超的客流统计技能。本技能使用深度学习算法,实时分析视频流,自动统计固定时间间隔的客流信息。

本技能支持:

  • 根据业务需求划定区域,只统计固定区域内的客流,技能返回区域内客流的统计信息和坐标信息。
  • 绘制客流统计线,对人形经过该线的人数进行统计,返回客流统计信息。
  • 区域客流统计还可以根据客流坐标生成人流热力图。

使用时需要提供您的业务RESTful接口和RTSP视频地址,最大支持8路网络摄像头接入,并按照接入的路数进行收费。

摄像头部署建议请参考摄像头部署

技能配置项请参见运行时配置参数

技能接口设计请参见技能结果上传接口

基本信息

表1 技能参数说明

参数

说明

技能名称

多区域客流统计

技能版本

1.0.2

适用芯片

Ascend 310

OS平台

Linux

应用场景

商超

支持固件版本

HiLens Framework 1.0.0及以上,DDK887/DDK893

最大路数

最多8路

视频流传输协议

RTSP

输入方式

外接IPC摄像头

输出方式

POST

摄像头部署

客流统计算法根据头肩检测统计客流的大小。摄像头的架设会影响头肩检测模型的准确率。在实际架设中,尽量保证拍摄画面清晰,光照充足,人形较正,无遮挡。监控视频场景下尽量保证拍摄的画面能拍到更多的人形。

摄像头参数基本设置

不同品牌的摄像头都有一些基本的视频设置,例如分辨率、帧率和码率等,具体要求如下:

  • 分辨率:建议1080P,不低于720P,不高于4K(3840*2160)。
  • 帧率:不高于25fps,不低于15fps,建议值20fps。
  • 码率:720P建议设为4096Kbps~6144Kbps,1080P建议设为6144Kpbs~8192Kbps,更高分辨率可设置更高码率。
  • 视频编码:如果支持H.265,设置为H.265。
  • 日夜切换:关闭夜间自动切换红外模式,暂不支持抓取红外模式下的人脸。
  • 宽动态:关闭宽动态。普通摄像头的宽动态无法到达专业相机的效果,人的走动速度较快时存在运动模糊,应关闭宽动态设置。

摄像头拍摄方向

摄像头拍摄方向要正向行人正反面,略成俯视角度,具体要求如下:

  • 保证行人上半身轮廓清晰可见。
  • 架设高度:4m左右。
  • 监控距离:5-10m 。
  • 监控宽度:2-5m 。
  • 俯视角度:左右偏角小于8°;俯仰角10°-20°。

光照要求

光照条件要求需要满足如下要求:

  • 行人区域正面光照强度100lux及以上;防止出现过暗或者噪点。
  • 行人左右侧光照强度差不超过一倍;防止产生阴阳脸。
  • 行人背部光照强度不超过正面强度两倍;防止产生脸部曝光不足,五官细节丢失。

如果现场的光线不满足上述要求,则需要通过强光抑制或补光来优化现场的光照条件。强光抑制可以改善“阴阳脸”、“背光”现象,即通过减弱侧面光照来改善光照条件。补光则可以通过增加额外光源的方式改善光照条件,提高人脸图像的采集效果;主要通过普通射灯、白炽灯等在不影响装修、路人视觉效果的情况下提高人脸的光照度,消除“阴阳脸”

安装补光灯时需要注意以下几点条件:

  • 避免补光不均匀。
  • 考虑不同时段设置光照。
  • 根据现场情况灵活变通。
  • 避免直射行人眼睛 。

周围环境要求

  • 镜头前方不要有遮挡的障碍物,避免漏检。
  • 不要将摄像头架在房子遮阴的挡板下,会造成光照过暗,人形模糊。
  • 室外安装摄像头,避免在露天下布置,以免雨水或者雪将摄像头的镜头盖住,造成拍摄画面模糊不清。
  • 室内安装摄像头,当部署楼道时需要注意光照,楼道里灯光明暗交替变化过快,摄像头拍摄时获取的画面可能会偏暗。

运行时配置参数

技能在运行时,需要添加运行时配置。配置完成后,参数会从华为HiLens云侧下发到端侧设备。

技能相关配置参数说明如表2所示。

表2 运行时配置参数

参数

是否必选

参数类型

说明

multi_camera

List

一个设备上多路视频的技能参数,详细的参数说明请参见表3

表3 mul_input_parameter参数说明

名称

是否必选

参数类型

说明

camera_names

List

摄像头名称。摄像头名称与设备的rtsp流配置的名称对应。可配置多个名称,表示多个摄像头采用同样的配置。

lineCountCycle

Int

过线人流量统计周期,单位为秒。取值范围为(0, +∞),默认值为10。

regionCountCycle

Int

区域人流量统计周期,单位为秒。取值范围为(0, +∞),默认值为10

enableLine

Bool

是否开启过线人流量统计,默认值为1。

0:表示不开启

1:表示开启

enableRegion

Bool

是否开启区域人流量统计,支持矩形区域统计,默认值为1。

0:表示不开启

1:表示开启

countSetting

String

自定义线与区域列表。采用竖线(|)分隔封闭或直线区域,例如:“Polygon 0 0 0 1000 1000 1000 1000 0|Line 500 0 500 1000 side1 side2”

  • 封闭区域:由Polygon开头,其后接的依次为区域的端点的坐标。其中端点坐标由x坐标与y坐标组成。
  • 直线区域:位置由Line开头,其后接的四个整型分别为线两端点坐标,最后以side1与side2结尾。side1与side2标志着直线两侧,对于非水平线,左侧为side1,右侧为side2,对于水平线上侧为side1,下侧为side2,其名称可自定义。

sendUrl

String

发送技能消息POST请求的URL地址。

技能结果上传接口

  • 请求消息

    技能推理结果将以HTTPS POST请求方法推送到应用系统server的指定URL地址。

    POST {sendUrl}/

    其中sendUrl技能运行时配置中为每个设备设置的推理结果上传地址。

    • 请求消息头

      技能以json形式返回推理结果,因此消息头Content-Type类型为“application/json”

      表4 请求消息头参数说明

      参数

      是否必选

      说明

      示例

      Content-Type

      消息体的类型(格式)。

      application/json

    • 公共消息体

      华为HiLens 公共消息体包含了技能的公共消息内容,如表5所示。

      表5 公共消息体参数说明

      参数

      类型

      说明

      msg_type

      Enum

      技能类型,如“flow_count_result”

      cam_name

      String

      摄像头名称。

      skill_id

      String

      技能ID。

    • 技能消息体

      过线统计的json消息体如表6所示。

      表6 过线统计消息体参数说明

      参数

      类型

      说明

      event_type

      Int

      事件类型,过线统计的事件类型为0,区域统计为1。

      start_time

      Uint64

      过线统计开始的时间戳。

      end_time

      Uint64

      过线统计结束的时间戳。

      counter

      List

      输出结果列表。每组数据对应一条自定义直线,包含:

      • x、y:直线两个点的x、y坐标。
      • id:直线的ID。
      • side1_name、side2_name:直线两侧的标识名。
      • side1、side2:人流穿过直线到side1_name与side2_name侧的统计量。

      过线统计的消息体示例如下:

      { 
        "msg_type": "flow_count_result",
        "cam_name": "store001_pos2",
        "skill_id": "f5c526eb6c51440c8a0ee5e3cc65f23c",
           "event_type": 0,
           "start_time": 1535546730,
           "end_time": 1535546732,
           "counter": [{
                               "x": [480, 1440],
                               "y": [540, 540],
                               "id": 0,
                               "side1": 0,
                               "side2": 0,
                               "side1_name": "side1",
                               "side2_name": "side2"
                               },
                               {
                               "x": [490, 1500],
                               "y": [640, 340],
                               "id": 0,
                               "side1": 7,
                               "side2": 3,
                               "side1_name": "in", 
                               "side2_name": "out"
                               }]
      }

      区域统计的json消息体如表7所示。

      表7 区域统计消息体参数说明

      参数

      类型

      说明

      event_type

      Int

      事件类型,过线统计的事件类型为0,区域统计为1。

      time

      Uint64

      进行区域统计的时间戳。

      occupy

      List

      输出结果列表。每组数据对应一个自定义的封闭区域,包含:

      • x、y:封闭区域所有点x,y坐标。
      • person_list:客流位置信息。详细的位置参数说明请参见表8
      • counter:当前时刻,区域的人流统计量。
      表8 person_list参数说明

      参数

      类型

      说明

      x

      Int

      客流头肩区域的中心点x坐标。

      y

      Int

      客流头肩区域的中心点y坐标。

      区域统计的消息体示例如下所示:

      {
           'time': 1588927220,
           'msg_type': 'flow_count_result', 
           'event_type': 1, 
           'cam_name': 'store001_pos2', 
           'skill_id': 'ff8080826dd4b10d016e20fbb8ae0405', 
           'device_id': '8366e510ed8b4f94bb9a567e9cc21d23', 
           'occupy': [{
                            'x': [0, 1920, 1920, 0], 
                            'y': [0, 0, 1080, 1080],
                            'person_list': 
                            {
                               'x': [1155], 
                               'y': [217]
                            }, 
                            'counter': 1
                            }]
      }
  • 响应消息
    • 响应消息头

      响应消息头由服务器端(应用系统)收到请求消息后返回。

      响应消息头可包含如下两部分。

      • 一个HTTP状态代码,从2xx成功代码到4xx或5xx错误代码。或者可以返回服务定义的状态码。
      • 附加响应头字段,如支持请求的响应所需,如Content-type响应消息头。

      详细的公共响应消息头参数说明如表9所示。

      表9 公共响应消息头参数说明

      名称

      描述

      示例

      Date

      HTTP协议标准报头。表示消息发送的时间,时间的描述格式由rfc822定义。

      Mon, 12 Nov 2007 15:55:01 GMT

      Server

      HTTP协议标准报头。包含了服务器用来处理请求的软件信息。

      Apache

      Content-Length

      HTTP协议标准报头。用于指明实体正文的长度,以字节方式存储的十进制数字来表示。

      xxx

      Content-Type

      HTTP协议标准报头。用于指明发送给接收者的实体正文的媒体类型。

      application/json

    • 响应消息体(可选)

      响应消息体通常以结构化格式(如json或xml)返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。

相关文档