概述#
行为分析微服务对视觉推理元数据进行流式分析,并以时间序列指标和警报的形式生成洞察。这些时间序列指标和警报可以使用分析 Web API 微服务检索。它提供了关于摄像头监控环境的丰富的态势感知。
输入#
每帧视觉元数据的消息流,包括检测到的对象边界框。这由 Deepstream 组件 通过 Redis 流发布。
绊线、ROI 和警报规则配置
输出#
FOV、绊线和 ROI 的计数时间序列指标
基于配置的警报规则的警报
行为分析模块#
视场 (FOV):计算摄像头视场中的人数
绊线 (Tripwire):计算跨越配置的绊线线段的人数
感兴趣区域 (ROI):计算配置的感兴趣区域中的人数
FOV#
视场代表完整的摄像头视图。FOV 分析模块可以跟踪人在整个视场内的移动,并提供与此相关的时间序列指标和警报。
FOV 占用计数#
FOV 占用率按每 1 秒的时间间隔计数。可以使用 API 查询特定时间范围,并可选择聚合到更高的时间单位,如分钟、小时和天。
FOV 占用警报#
警报是关于 FOV 占用率的特定感兴趣事件。警报规则定义了触发警报需要满足的条件。
FOV 占用警报规则#
警报规则定义了触发警报需要满足的条件。
以下是 FOV 支持的警报规则类型。
增量警报规则
在一定数量的人员进入或离开 FOV 后发出警报。这针对进入/离开分别跟踪。用作阈值的人数是可配置的。
占用警报规则
在 FOV 中的人数超过某个阈值后发出警报。用作阈值的人数是可配置的。
占用阈值切换警报规则
在占用 FOV 的人数切换到高于或低于配置的阈值后发出警报。用作阈值的人数是可配置的。警报仅在占用率超过阈值或降至阈值以下时发布。
绊线#
绊线被定义为线段序列,用于计算从任一方向跨越它的人数。绊线分析模块可以跟踪人在绊线上的移动,并提供与此相关的时间序列计数指标和警报。
绊线穿越计数#
来自两个方向(进入/离开)的绊线穿越按每 1 秒的时间间隔计数。可以使用 API 查询特定时间范围,并可选择聚合到更高的时间单位,如分钟、小时和天。
绊线穿越警报#
警报是特定的感兴趣事件。警报规则定义了触发警报需要满足的条件。
绊线穿越警报规则#
警报规则定义了触发警报需要满足的条件。
以下是绊线支持的警报规则类型。
增量警报规则
在跨越绊线的人数超过某个阈值后发出警报。这针对每个方向(进入/离开)分别跟踪。用作阈值的人数是可配置的。
流速警报规则
当每秒跨越绊线的人员速率在一段时间内超过某个阈值时发出警报。这针对每个方向(进入/离开)分别跟踪。
该规则使用两个参数配置。
每秒跨越的人员速率。
维持跨越速率的时间间隔(秒)。
ROI#
ROI 代表摄像头视场内定义的感兴趣区域。ROI 分析模块可以跟踪人在配置的 ROI 内的移动,并提供与此相关的时间序列计数指标和警报。
ROI 占用计数#
ROI 占用率按每 1 秒的时间间隔计数。可以使用 API 查询特定时间范围,并可选择聚合到更高的时间单位,如分钟、小时和天。
ROI 占用警报#
警报是关于 ROI 占用率的特定感兴趣事件。警报规则定义了触发警报需要满足的条件。
ROI 占用警报规则#
警报规则定义了触发警报需要满足的条件。
以下是 ROI 支持的警报规则类型。
增量警报规则
在一定数量的人员进入或离开 ROI 后发出警报。这针对进入/离开分别跟踪。用作阈值的人数是可配置的。
占用警报规则
在占用 ROI 的人数超过给定时间间隔的某个阈值后发出警报。用作阈值的人数是可配置的。
占用阈值切换警报规则
在占用 ROI 的人数切换到高于或低于配置的阈值后发出警报。用作阈值的人数是可配置的。警报仅在占用率超过阈值或降至阈值以下时发布。
架构#
该系统采用事件驱动的微服务架构模式设计。消息传递系统用于组件之间的松耦合。视觉元数据的流处理实时执行。单独的组件用于分析计算和结果服务。
该系统被分解为以下应用级组件,作为微服务实现。
行为分析#
此组件负责
消费 DeepStream 组件通过 Redis 流通道生成的视觉元数据。
跟踪人员移动并测量占用率(FOV、ROI)和穿越(绊线)计数。
将计数持久化到 Redis 时间序列模块中。
执行警报规则并确定是否发布警报
将警报发布到 Redis 流通道。
维护每个检测到的对象(人)的状态。执行轨迹平滑处理。
将轨迹发布到 Redis 流通道。
分析 Web API#
此组件负责
提供 REST API 以检索存储在 Redis 时间序列中的计数。
将警报持久化到 SQLite DB 中,并提供 REST API 以检索它们。
将视觉元数据持久化到文件系统中,并提供 REST API 以检索它们。
将轨迹持久化到文件系统中,并提供 REST API 以检索它们。
提供 API 以创建、更新和查询警报规则、绊线和 ROI 的配置。
将配置信息持久化到 SQlite DB 中。
通过 Redis 流通道发布配置更改,以通知分析组件更改。
Redis#
Redis 时间序列模块用于存储时间序列计数。
Redis 流用于与 DeepStream 的异步通信和组件间通信。
Sqlite DB#
存储警报规则、绊线和 ROI 的配置
存储警报
文件系统#
存储视觉元数据和轨迹
文档组织结构#
文档的其余部分按如下方式组织
各种 Metropolis 分析模块的描述可以在相应的章节中找到
视场 (FOV) API 指南:视场 (FOV) 概述和 API 指南。
绊线 (Tripwire) API 指南:绊线概述和 API 指南。
感兴趣区域 (ROI) API 指南:感兴趣区域 (ROI) 概述和 API 指南。
警报 (Alerts) API 指南:警报概述和 API 指南。
元数据 (Metadata) API 指南:感知元数据概述和 API 指南。
行为 (Behaviors) API 指南:行为(轨迹)概述和 API 指南。
部署配置:部署配置。
API 规范:API 规范。