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

安全帽检测技能

技能描述

面向智慧园区的安全帽检测技能。本技能使用深度学习算法,实时分析视频流,自动检测园区工人未戴安全帽的行为。

本技能支持根据业务需求划定区域,只检测固定区域内的未戴安全帽的行为,技能返回该区域内安全帽检测的统计信息和坐标信息。

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

基本信息

表1 技能参数说明

参数

说明

技能名称

安全帽检测

技能版本

1.0.0

适用芯片

Ascend 310

OS平台

Linux

应用场景

智慧园区

支持固件版本

HiLens Framework 1.0.0及以上,DDK887

最大路数

最多8路

视频流传输协议

RTSP

输入方式

外接IPC摄像头

输出方式

POST

摄像头部署

摄像头的架设会影响安全帽检测模型的准确率。在实际架设中,尽量保证拍摄画面清晰,光照充足,人形较正,无遮挡。监控视频场景下尽量保证拍摄的画面能拍到更多的人形。

目前安全帽检测模型的训练场景主要针对工地入口。具体为摄像头距离地面三到四米左右,在安全帽检测的区域,人形不会有太严重的遮挡。为了保证检测算法的准确率,需要确保画面图像中安全帽清晰可辩。同时,摄像头画面中场景尽量干净简单、空旷,避免场景复杂造成误检。

摄像头参数基本设置

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

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

摄像头拍摄方向

摄像头拍摄方向要正向行人正反面,略成俯视角度。保证行人上半身轮廓清晰可见。

架设高度:4m左右

监控距离:2-10m

监控宽度:2-5m

俯视角度:左右偏角小于8°;俯仰角10°-20°

光照要求

光照条件要求需要满足以下几项:

  • 行人区域正面光照强度100lux及以上,防止出现过暗或者噪点。
  • 行人左右侧光照强度差不超过一倍,防止产生阴阳脸。

如果现场的光线不满足上述要求,则需要通过强光抑制或补光来优化现场的光照条件。强光抑制可以改善“背光”现象,即通过减弱侧面光照来改善光照条件。补光则可以通过增加额外光源的方式改善光照条件,提高图像的采集效果。

周围环境要求

  • 镜头前方不要有遮挡的障碍物,避免漏检。
  • 不要将摄像头架在房子遮阴的挡板下,会造成光照过暗,人形和安全帽模糊。

运行时配置参数

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

  • 配置参数说明

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

    表2 运行时配置参数说明

    名称

    是否必选

    参数类型

    说明

    heartbeat_interval

    Int

    技能心跳消息发送间隔。单位为秒,0表示不发送。技能心跳消息判断技能是否离线。

    post_url

    String

    技能消息POST请求的URL地址。心跳和技能的输出发送到指定的URL。

    multi_camera

    Array

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

    表3 “multi_camera”参数说明

    名称

    是否必选

    参数类型

    说明

    camera_names

    Array

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

    send_image

    Int

    是否发送原始图,默认值为0。

    0:表示不发送

    1:表示发送

    image_compression_ratio

    Int

    “jpeg”格式原始图压缩百分比,默认值为90,表示图片压缩比90%,取值范围[1,100]。

    use_tracking

    Int

    是否启用跟踪去重。

    0:表示不启用

    1:表示启用

    draw_rectangle

    Int

    是否对技能显示出的不戴安全帽行人画框,默认值为0,即默认不画框。

    0:表示不画框

    1:表示画框

    roi

    String

    检测区域配置。区域的设置由“Polygon”开头,其后依次为区域的坐标(按顺时针排列的x,y坐标)。默认值为“Polygon 0 0 0 0”,表示检测整个画面。

  • 示例

    HiLens Kit设备支持多路摄像头接入,如果要为不同的摄像头设置不同的技能配置,或者几个摄像头共用同一技能配置,则可在配置列表中给出相应的配置信息,示例如下:

    //constructionsite01的两个摄像头pos1和pos2配置不同参数:
    { 
         "heartbeat_interval": 30,
         "post_url": "https://abc.company.com/webhook",
         "multi_camera": 
             [{
              "camera_names": ["constructionsite01_pos01"],
              "send_image": 1,
              "image_compression_ratio": 90,     
              "use_tracking": 1,
              "roi": "Polygon 0 0 0 0"
              },
              {
              "camera_names": ["constructionsite01_pos02"],
              "send_image": 1,
              "image_compression_ratio": 80,
              "use_tracking": 0,
              "roi": "Polygon 0 0 1920 0 1920 1080 0 1080"
              }]
    }
    //constructionsite02的两个摄像头pos1和pos2配置相同参数:
    { 
         "heartbeat_interval": 60,
         "post_url": "https://abc.company.com/standard",
         "multi_camera": 
             [{
              "camera_names": ["constructionsite02_pos01"," constructionsite02_pos02"],
              "send_image": 1,
              "image_compression_ratio": 90,
              "use_tracking": 1,
              "roi": "Polygon 0 0 0 0"
              }]
    }

技能结果上传接口

  • 请求消息

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

    POST {sendUrl}

    其中sendUrl技能运行时配置中设置。

    • 请求消息头

      技能以json形式返回推理结果,因此消息头“Content-Type”类型为“application/json”。消息头其它部分,用户可根据自身的业务需求设定,如鉴权等。

      表4 请求消息头参数说明

      名称

      描述

      是否必选

      示例

      Content-Type

      消息体的类型(格式)

      application/json

    • 公共消息体

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

      表5 公共消息体参数说明

      名称

      类型

      说明

      msg_type

      Enum

      消息类型,包括“no_helmet_alert”“heatbeat”两种。

      skill_id

      String

      技能ID。

    • 技能心跳消息体

      技能心跳的json消息体包含一个时间戳信息:

      表6 技能心跳消息体参数说明

      名称

      类型

      说明

      time

      Uint64

      心跳时间戳。

    • 公共消息体示例
      { 
        "msg_type": "heartbeat",
        "skill_id": "f5c526eb6c51440c8a0ee5e3cc65f23c",
        "time": 1527603463
      }
    • 技能消息体

      安全帽检测的json消息体如表7所示:

      表7 技能消息体参数说明

      名称

      类型

      说明

      camera_name

      String

      摄像头名称。

      image_id

      String

      摄像头原始图UUID。

      time

      Uint64

      检测到未戴安全帽人头时的时间戳。

      bounding_box

      Array

      未戴安全帽人头在背景图中的位置信息,其参数说明如表8所示。

      image

      String

      原始图BASE64编码结果,如果配置不发送原始图,则为空字符串。

      表8 “bounding_box”参数说明

      字段

      类型

      说明

      x

      Int

      人头图左上角顶点x坐标值。

      y

      Int

      人头图左上角顶点y坐标值。

      h

      Int

      人头图高。

      w

      Int

      人头图宽。

      安全帽检测的消息体示例:

      { 
        "msg_type": "no_helmet_alert",
        "camera_name": "constructsite01_pos02",
        "skill_id": "f5c526eb6c51440c8a0ee5e3cc65f23c",
        "image_id": "0DD1BF0A-634B-11E8-8B0B-407D0FAD9218",
        "time": 1527603463,
        "bounding_box ": [{
                               "x": 32,
                               "y": 379,
                               "w": 49,
                               "h": 65
                               },
                               {
                               "x": 54,
                               "y": 632,
                               "w": 36,
                               "h": 95
                               }
                            ],
        "image": "4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQE...",
      }
  • 响应消息
    • 响应消息头

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

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

      • 一个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”对应,传递除响应消息头之外的内容。

相关文档