面向视频的人员入侵检测方法研究及应用

2022-05-10 00:02吴春香
计算机技术与发展 2022年4期
关键词:中心点行人报警

吴春香,吴 恋

(1.贵州大学 计算机科学与技术学院,贵州 贵阳 550025;2.贵州师范学院,贵州 贵阳 550018)

0 引 言

智能监控是安防中的重要组成部分,已广泛应用于变电站[1]、建筑工地[2]、监狱[3]、铁路等[4-6]场所。人员入侵作为视频监控的重要内容,越来越受行业重视。为了更高效地进行人员入侵检测,研究开发自动化、高效的智能入侵防护系统非常必要[7]。

目前主流的前景目标提取方法是基于图像处理的背景建模法[8-9],该方法易受到光照突变和树叶摆动等背景因素的干扰造成稳定性差。而基于深度学习的行人检测算法可以不受光照突变和树叶摆动等背景的影响,主要分为one-stage和two-stage[10]两类。其中one-stage类方法有SSD[11-12]系列和yolo[13]系列,two-stage类方法有faster-rcnn[14]、mask-rcnn等[15]。但two-stage类算法参数较多,无法满足实时性要求[16]。针对该问题,该文提出了一种不受光照和树叶摆动因素干扰,精度高、鲁棒性强的实时人员入侵检测算法。该算法采用数据流简单且计算速度快的yolov3[17-18]对行人进行识别与定位,并针对不同监控角度下的行人分别将行人矩形框的上边框中心点、下边框中心点和矩形框中心点作为入侵算法检测点,解决了在入侵检测中多监控角度问题和高度敏感区域的检测问题。传统的入侵检测方法是用检测到的运动目标对单帧图片建立入侵判断规则,这会引起高误报率。针对这一问题,利用目标连续多帧位置均值作为判断依据,将目标连续多帧位置分为两段,分别求位置均值作为判断依据,再与当前帧的位置点结合进行判断,当检测目标连续多帧位于禁区内启动报警。传统的点在区域内判断准则[19-20]误判率高或无法满足实时性要求,所以文中采用判断准确率较高、计算简单的向量叉积公式替代。将以上各部分整合,获得区域入侵检测算法和越线入侵检测算法。

1 入侵检测系统的总体设计

文中方法描述如下:针对多监控角度下的行人,分别采用行人矩形框的上边框中心点、下边框中心点和矩形框中心点作为入侵算法的行人位置点;将行人连续帧位置点求均值作为判断依据,即选择离当前帧最近的L个连续帧中位置点判断,对前L/2个位置点和后L/2个位置点分别求均值作为判断依据,并与判断当前帧的位置点相结合,最后根据行人连续帧处于禁区内报警;通过设计区域入侵检测算法和越线入侵检测算法达到系统智能监控的目的。

对于系统的设计与安排如下:系统设计分为服务器端和客户端,服务器端运行yolov3检测行人,并针对不同监控角度选择合适的行人位置点送入区域入侵检测算法或越线检测算法内,对入侵帧用数据库存储。浏览器作为客户端,分别设计以下模块:(1)检测相机的基本信息设置模块,如相机IP、相机用户名、相机密码。(2)检测像机数量设置模块。(3)检测线与检测区域绘制模块。(4)检测结果实时显示模块,如摄像机IP、入侵类型、入侵时间。

客户端提供检测相机信息、检测线、检测区域等数据传送给服务器,服务器执行入侵检测算法并在客户端实时显示检测结果。

2 入侵检测算法设计

2.1 多监控角度下的行人检测

针对不同监控角度下用yolov3检测的行人,分别采用矩形框上边框中心点、下边框中心点以及矩形框中心点作为行人的位置点来检测。针对禁区为窗户等离地面有一定距离的竖直区域,行人入侵初期没有完全处于禁区,若用背景建模法会出现漏报和精度低的问题,提出根据摄像角度和禁区与地面距离设置行人矩形框的上边框中心点或行人矩形框的中心点作为位置点检测;针对地面禁区采用行人矩形框中心点检测会出现行人已经进入禁区而系统判断为非入侵状态的问题,采用行人矩形框下边框中心点检测;针对高度敏感区域中摄像范围狭窄全为禁区场景,可根据需求设置行人检测框下边框中心点或上边框中心点为检测点。

2.2 利用平均位置点作为区域入侵判别依据

为解决采用单帧图片对检测到的行人进行入侵判断准确率不高和相似物干扰引起误判的问题,提出采用目标连续帧位置点求均值作为判断依据。具体规则如下:设运动目标的跟踪链长度(运动步数)为L,考虑最近的2M个位置点,根据L的大小使用分段函数来求平均位置点的值,通过实验最终选择4为断点且断点可被修改。

(a)若L<4,则目标不会有入侵发生,因为跟踪链过小。

(b)若4≤L<2M,则通过当前的第1~L/2个位置点的均值1和第L/2+1~L个位置点的均值2来判断入侵。

(c)若L≥2M,则通过当前的1~M个位置点的均值1和M+1~2M个位置点的均值2来判断入侵。

2.3 点在区域内的判断

(x2-xQ)·(y1-yQ)

(1)

2.4 报警与解除条件说明

2.4.1 区域入侵

根据离当前检测帧最近的2m帧的入侵状态进行报警与解除判断。当离检测帧最近的m帧处于入侵状态而较远的m帧处于非入侵状态且报警次数没有达到阈值时,则报警产生;当离检测帧最近的m帧处于非入侵状态而较远的m帧处于入侵状态时,则报警解除;当最近的2m帧都处于非入侵状态则不产生报警。具体的区域入侵报警与解除条件说明如表1所示。

2.4.2 越线入侵

根据离当前检测帧最近的2m帧的入侵状态进行报警与解除判断。如果离当前检测帧最近的前m帧都处于入侵状态而后m帧处于非入侵状态且报警没有达到阈值时,单向越线报警和双向越线报警产生;如果离当前检测帧最近的前m帧处于非入侵状态而后m帧处于入侵状态且报警没有达到阈值,则单线越线报警解除,双向越线报警产生;如果离当前检测帧最近的前m帧处于非入侵状态而后m帧处于入侵状态且报警达到阈值,单向越线报警与双向越线报警解除。具体的越线入侵报警解除与条件说明如表2所示。

表1 区域入侵报警与解除产生条件

表2 越线入侵报警与解除产生条件

2.5 入侵算法设计

整体的入侵检测流程为:针对具体监控角度和场景,对yolov3检测到的行人进行位置点的选取与保存,将所得位置送入区域(越线)入侵算法中判断,当被判断为入侵时对入侵结果进行存储,其流程如图1所示。

2.5.1 区域入侵算法

通过跟踪链中的位置均值点与区域入侵报警与解除产生条件可写出区域入侵检测算法如下:首先利用跟踪链中每个跟踪节点位置均值点判断入侵状态,再用当前帧的位置点进行区域入侵状态的判断,如果目标被判断为入侵状态则修改目标状态并累计入侵帧,当入侵帧数达到阈值,则不再进行报警提示。具体算法如下所示:

For 遍历跟踪链中的每个跟踪节点

If 跟踪目标没有处于入侵状态

If 跟踪目标被判断准则判断为入侵状态

修改目标为入侵状态,并累加入侵帧数

If 跟踪目标处于合并状态

在跟踪目标上显示所有参与合并的目标的信息

else //跟踪目标没有处于合并状态

在跟踪目标上显示其相关信息

End

Endif

else//跟踪目标处于入侵状态

if 跟踪目标被判断准则判断为仍处于入侵状态

if 报警次数没有达到入侵阈值

累加入侵帧数

if 跟踪目标处于合并状态

在跟踪目标上显示所有参与合并的目标的信息

else//跟踪目标没有处于合并状态

在跟踪目标上显示其相关信息

Endif

else//报警次数达到阈值

解除入侵状态

Endif

else//跟踪目标没有处于入侵状态

解除入侵状态

Endif

Endif

Endfor

图1 入侵检测流程

2.5.2 越线入侵算法

与区域入侵算法结构相似,越线入侵分为单线越线入侵与双线越线入侵。根据报警与解除条件可得越线入侵检测算法如下:首先也是遍历跟踪节点并利用位置均值点作为判断依据,判断当前帧是否处于单线越线状态或双向越线状态,最后根据目标连续帧是否入侵和是否达到报警阈值来产生和解除报警。具体算法如下所示:

For 遍历跟踪链中的每个跟踪节点

If 跟踪目标没有处于越线状态

If 使用判断准则判断跟踪目标为越线入侵状态

修改目标为越线入侵状态,并累加越线入侵帧数

If 跟踪目标处于合并状态

跟踪目标上显示所有参与合并的目标的信息

else//跟踪目标没有处于单向越线入侵状态

if 当前为双向越线模式

if 跟踪目标被判断准则判断为从入侵区域进入非入侵区域

产生双向越线报警,并累加报警帧数

If 跟踪目标处于合并状态

在跟踪目标上显示所有参与合并的目标的信息

else //跟踪目标没有处于合并状态

在跟踪目标上显示其相关信息

End

Endif

Endif

Endif

else //跟踪目标处于越线状态

if 跟踪目标被判断准则判断为仍处于越线入侵状态

if 报警次数没有达到越线入侵阈值

累加报警帧数

if 跟踪目标处于合并状态

在跟踪目标上显示所有参与合并的目标的信息

else//跟踪目标没有处于合并状态

在跟踪目标上显示其相关信息

Endif

else//报警次数达到阈值

解除越线入侵状态

Endif

else//跟踪目标没有处于单向越线入侵状态

if 当前为双向越线模式

if 报警次数没有达到阈值

累加报警帧数

if 跟踪目标处于合并状态

在跟踪目标上显示所有参与合并的目标的信息

else//跟踪目标没有处于合并状态

在跟踪目标上显示其相关信息

Endif

else//报警次数达到阈值

解除报警状态

Endif

else//当前为单向越线模式

解除入侵状态

Endif

Endif

Endif

Endfor

3 系统实现

yolov3的微调:因训练好的yolov3模型是对20种类别进行检测与识别,其中人的类别序列号为0,所以将相机检测图片帧修改为yolov3特定输入格式并送入神经网络中,对输出进行当且仅当类别序列号为0时输出其位置框与分数的设置操作,得到的帧作为入侵算法的输入帧。

区域入侵检测模块:客户端:用户通过设置网络摄像头的相关信息并用鼠标进行区域的绘制后将信息传递给服务器端,并实时查看入侵检测结果和对入侵证据的调取。服务端:将客户端的网络摄像头获取的视频信息与禁区信息送入入侵算法执行,并将入侵证据存储于数据库中。

越线入侵检测模块:客户端:用户设置网络摄像头信息并用鼠标在视频中画出警戒线后系统自动将信息传递给服务器端,并实时查看检测结果与调取入侵证据。服务端:将客户端的信息送入入侵检测程序执行并将入侵证据存入数据库。

数据库模块:为存储入侵检测结果,利用MySQL数据库对其所用的网络摄像头信息、区域信息以及入侵信息进行区域入侵和越线入侵证据的存储,具体的系统功能结构如图2所示。

系统部署:为实现系统线上实时应用,采用Flask框架与Gunicorn代理进行系统的线上部署。

4 实验结果及分析

为验证该算法,在光照突变场景、光照不足的夜间场景、背景中树叶摆动场景和行人检测数据集(http://cvlab.epfl.ch)上进行实验。为进一步验证该算法,分别用混合高斯背景建模法、ViBe和三帧差法这三个经典算法与该算法进行对比。实验结果如图3所示。其中图(a)、(b)是光照充足的行人检测数据集上的测试结果,图(c)、(d)是光照发生突变的测试结果,图(e)、(f)是光照不足的夜间测试结果,图(g)、(h)是树叶摆动下的测试结果。本实验主要检测对象是行人,针对不同监控角度采用不同位置点的行人通过禁区或靠近警戒线,系统根据对应算法选择报警。为进一步验证该算法的有效性,在光照充足的白天状态与经典算法中的混合高斯背景法、Vibe法与三帧差法进行对比后的结果如表3所示。

图2 系统结构

图3 入侵实验结果 表3 算法对比 %

算法准确率虚警率漏警率混合高斯背景81.7321.9417.53ViBe82.8918.7315.34三帧差法84.5817.9513.86文中算法89.7315.8010.55

由表3可知,文中算法效果优于混合高斯背景建模法、ViBe和三帧差法。这是因为混合高斯背景建模只考虑了单个像素在时间上的特性,当动态场景如树叶摆动使背景发生突变时,会产生像素差值,从而导致将摆动的树叶判断为前景目标;ViBe算法中光照突然变化时会引起背景像素值发生改变,算法误将部分背景判断为前景而造成虚警现象;采用三帧差法丢掉了相互独立的目标轮廓,造成目标轮廓断裂和空洞,导致前景目标的提取不正确。

通过实验数据可以看出,文中算法检测效率更高,既能在光照突变场景下实现对行人的检测并判断,也能在光照不足的夜间场景完成入侵检测,适用性广泛。最主要的原因是文中算法用yolov3提取前景目标而没有涉及像素角度的背景建模,所以对光照突变和树叶摆动这种背景突变有强鲁棒性。但该算法也存在一定的实验误差,主要体现为以下两种现象,一是行人与行人之间高度重合,造成行人识别不完整或漏识别,二是对距离监控摄像头较远的小目标行人会出现漏检。其主要的原因是yolov3算法对遮挡度高的行人和小目标行人的检测准确率低,将来的工作也将致力于这两方面的改进。

5 结束语

研究了一种区域入侵算法和越线入侵算法,该算法选择检测到的行人框三个不同点作为位置点,扩大了不同监控角度适用性。通过行人多帧位置点取平均值作为入侵判断依据,结合当前帧行人位置点进行入侵状态判断,提高了判断准确率。实验结果表明,该算法相对传统算法有明显优势,解决了传统方法容易受到光照突变和相似物干扰引起误报这一问题,鲁棒性强、实时性高,系统结构简单,可广泛应用于各种视频监控场景。

猜你喜欢
中心点行人报警
毒舌出没,行人避让
Scratch 3.9更新了什么?
如何设置造型中心点?
磨课,一段痛苦与快乐交织的过程
路不为寻找者而设
小心,墙纸在报警
鞋子摆放透露的信息
我是行人
寻找视觉中心点
死于密室的租住者