实时交通监控、停车场监控等的摄像头正迅速应用于社会公共场所和地点。这些摄像头每天可以提供海量数据,然而大多数监控仍然依靠操作员来筛选视频,庞大的数据往往耗费大量的人力和财力。这就需要应用计算机视觉技术来自动监控异常行为,以协助工作人员及时做出判断,特别是像停车场这种需要全天候监控的场景,对异常行为的检测十分必要,这对维护社会治安具有重要意义。
异常行为识别的方法有很多,使用较多的是将监控视频的连续帧作为异常行为识别的主体。Cai等[1]提出了一种复杂场景下人体异常行为的多阶段分析方法,用于遗留行李检测,试验结果表明,异常行为的平均识别率为86.93%。Zhang等[2]提出了一种基于能级分布变化的人群异常检测方法,将图像中的像素作为粒子处理,通过计算粒子与摄像机之间的距离,确定人群异常发生的时间戳,从而准确地识别异常行为。除上述传统计算阈值方法外,深度学习近年来也应用在异常行为的识别上,Ma等[3]针对复杂结构化户外场景中异常目标检测困难的问题,提出了一种光流法和卷积神经网络相结合的异常目标检测方法,结果表明该方法可快速检测复杂结构化场景中的异常目标并预警。汪鸿年等[4-5]根据运动周期曲线采用动态时间规整的方法提取停车场行人行为关键帧,将行为关键帧表征为一系列关键语句进行识别,异常行为的平均识别率达到了91%。Chen等[6]提出了一种基于双向预测的框架,根据实际目标帧及其双向预测帧[7]构造损失函数,同时提出了一种基于滑动窗口的异常得分估计方法来识别视频中行人的异常行为,识别准确率达到了86.9%。
除了使用以帧为单位的图像识别异常行为,轨迹分析也是识别异常行为的一种有效的方法。无论是单独个体还是多个行人交互,实际的监控视频都可以记录大量的轨迹数据,提供丰富的数据基础。赛斌等[8]使用Hausdorff距离来描述轨迹聚类[9]得到的大数据以识别较大范围内行人的行为,得到地铁行人流量较多、人流量较少和人流量适中3个场景的噪声轨迹,占比分别为11.7%、9.9%、21.25%。Belhadi等[10]提出了群体轨迹离群点检测模型,研究人类行为数据之间的不同相关性,通过学习历史数据的不同特征来判断人类的集体异常行为,准确率为88%,得到了较好的识别效果。
目前停车场行人异常行为识别方法尚存在以下问题:只考虑利用单一轨迹特征来衡量轨迹中心与轨迹间相似性,在复杂的停车场监控场景中,轨迹模式识别率低,影响异常行为检测效果; 预处理算法效率低,检测速度慢,识别准确率低,跟踪效果差,行人特征提取效果不明显; 基于神经网络等深度学习方法的异常行为识别方法实时性差,所耗运算资源较大。在实际场景中,由于视频本身包含信息的复杂性,仅凭轨迹难以判断行人的异常行为,而监控视频中还有其他的行人信息可以利用,比如骨架信息可以提高异常行为定位精度。针对上述问题,本研究提出一种基于轨迹-骨架模型的多特征融合的停车场行人异常行为识别算法。
1 研究方法异常行为识别流程如图1所示:首先利用基于深度学习的目标检测算法和跟踪算法得到行人的轨迹特征,对行人姿态分析后得到行人的骨架特征; 然后融合行人的轨迹和骨架特征,对行为进行分类,最终识别行人在停车场中的异常行为。
1.1 视频预处理
现实中的室外停车场环境较为复杂,背景存在光照变化、树叶抖动等干扰因素,会直接影响识别的准确性和实时性。在分类过程中,预处理效果的好坏直接影响着算法的精度和最后的识别效果。为了提高算法精度,得到更好的目标检测和跟踪效果,本研究选用准确率和实时性较好的YOLOv5目标检测算法作为行人轨迹和骨架提取的基础,并在此基础上加入DeepSort行人目标跟踪法,解决了YOLOv5无法匹配近邻帧的问题。
1.1.1 行人目标检测Redmon等[11]从2016年开始陆续设计出YOLO系列算法,YOLO算法最大的特点就是在检测精度稍微降低的同时可以满足实时性要求。本研究使用YOLOv5行人目标检测算法,检测流程如图2所示。YOLOv5沿用的是YOLOv3、YOLOv4的框架,主要分为4个部分,分别是输入端、主干网络、颈部网络、输出端。具体实现过程如下: 1)对输入的停车场监控视频进行特征提取,输入端采用了马赛克数据增强的方式,通过随机播放、随机裁剪、随机排布的方式,自动计算数据集的最佳锚框值。2)通过聚焦网络和CSPNet(cross stage partials networks,跨区域局部融合网络)结构压缩特征图,其中CSP1_1和CSP1_3应用于主干网络,可增强卷积神经网络的学习能力和降低内存成本,CSP2_1应用于颈部网络,可加强网络特征融合的能力,利用不同层的特征信息来获得更为丰富的特征图。3)通过SPP(spatial pyramid pooling,空间金字塔池化)和FPN(feature pyramid networks,特征金字塔网络)进行特征信息的传递融合,从而得到预测后的特征图。4)通过PANet(path aggregation net,路径聚合网络)结构提升预测性能。5)在预训练好的YOLOv5网络中,对视频中的停车场的行人及位置进行多尺度预测,输出行人的定位框。
1.1.2 行人目标跟踪
通过YOLOv5输出行人的位置信息[12]以后,利用DeepSort算法实现停车场行人跟踪,主要分为4个步骤:
1)将停车场监控视频分成视频帧,利用非极大值抑制算法去除重叠框,进一步筛选候选框;
2)使用卡尔曼滤波计算下一帧行人目标的位置和状态,将置信度最高的行人检测框作为预测结果;
3)利用匈牙利算法进行匹配,得到行人在视频前后的轨迹,使用马哈拉诺比斯距离公式计算行人检测框和行人跟踪框之间的距离,当两者距离小于某个特定阈值时,则两者互相关联,匹配成功。否则,重新计算行人位置;
4)最后使用卡尔曼滤波对跟踪器进行参数更新,重新开始行人目标检测。
本研究在对现有的基于深度学习框架的算法进行学习和研究后,选取YOLOv5和DeepSort算法,以保证能够在停车场这种复杂场景下对行人进行检测和跟踪,获取视频中行人的每帧坐标信息,从而可以进一步分析行人的特征信息。
1.2 特征提取轨迹含有较全面的时空信息,在描述行人目标方面有其固有的优越性,而骨架特征能够更好地体现行人运动的细节,能够很好地表达行人的运动状态,所以选取轨迹和骨架作为识别异常行为的特征。
1.2.1 轨迹的特征提取在行人运动过程中,一系列质心点连接起来就会形成轨迹。提取每个行人目标的位置、即时速度、方向等信息,将这些信息组成固定长度的特征向量来描述行人轨迹[13]。具体步骤如下:
1)建立轨迹模型:
f=[(x,y),(dx,dy),(d2x,d2y)]。(1)
式(1)中:(x,y)、(dx,dy)、(d2x,d2y)分别为位置特征、方向特征、速度特征。
2)提取出每个轨迹点的位置以后,x和y方向上的差分数据中含有目标的速度和方向信息,所以引入x轴和y轴的差分信息(|dx|,|dy|),其中
dx=xt-xt-1;(2)
dy=yt-yt-1。(3)
3)场景中不同区域中目标的转向、速度往往具有规律性,为了检测出行人的突然加速异常行为[14],定义二次差分(|d2x|,|d2y|)来表示速度变化特征,为训练过程提供数据。
d2x=xt-2xt-1+xt-2;(4)
d2y=yt-2yt-1+yt-2。(5)
4)将上述特征作为后续机器学习分类算法的样本输入,表1为轨迹的位置特征、方向特征和速度特征样本。
表1 轨迹的位置特征、方向特征和速度特征样本
Table 1 Position feature, direction feature and velocity feature samples of trajectory
结合上述特征,以行人跑步为例,跑步行为与跑步轨迹如图3所示。
1.2.2 骨架特征提取
由于摔倒或者跳跃等行为不能简单地通过轨迹来识别,因此用AlphaPose模型[15]来提取人体骨架信息,得到人体骨骼关键点坐标。AlphaPose模型提取骨架信息的流程是:首先在单人姿态估计结构上引入对称空间变换网络,这个网络能够在不精准的区域框中提取到高质量的人体区域; 然后使用参数化姿态非最大抑制的方法来解决检测框定位错误和冗余检测问题,并利用数据驱动来优化姿态距离参数; 最后通过PGPG(pose-guided proposals generator,姿态引导区域框生成器)来强化训练数据,得到每个目标的骨架关键点位置数据。
跑、走、跳跃、摔倒、打架5种行为的骨架图如图4所示,利用AlphaPose模型提取停车场跑步、走路、跳跃、摔倒、打架等行为的骨架关键点,这些关键点的原始坐标不适合直接用于姿态识别中,因此需要从数据的原始特征中提取出有效的行为识别特征。
图4 跑、走、跳跃、摔倒、打架5种行为的骨架图
Fig.4 The skeleton diagram of five behaviors of running, walking, jumping, falling and fighting
当人的姿态发生变化时,各个关节也会发生变化,使用结构向量来表示各个部位的骨骼状态。假设A(x1,y1)和B(x2,y2)分别表示左膝和左脚踝的坐标,则向量VAB=(x2-x1,y2-y1)表示左小腿的骨骼姿态,命名为VLKnee-LAnkle。摔倒行为可由双腿与躯干之间的角度来表示,从监控视频的角度,躯干部分选取鼻子到髋部之间的骨骼关键点来表示,因此为了描述摔倒行为,构建4组结构向量:
VNose-LKnee=(xLKnee-xNose,yLKnee-yNose);(6)
VNose-RKnee=(xRKnee-xNose,yRKnee-yNose);(7)
VLKnee-LAnkle=(xLAnkle-xLKnee,yLAnkle-yLKnee);(8)
VRKnee-RAnkle=(xRAnkle-xRKnee,yRAnkle-yRKnee)。(9)
式(6)~(9)中:VNose-LKnee为鼻部到左膝的结构向量,(xLKnee,yLKnee)为左膝的坐标,(xNose,yNose)为鼻子的坐标; VNose-RKnee为鼻部到右膝的结构向量;(xRKnee,yRKnee)为右膝的坐标; VLKnee-LAnkle为左膝到左脚踝的结构向量;(xLAnkle,yLAnkle)为左脚踝的坐标; VRKnee-RAnkle为右膝到右脚踝的结构向量;(xRAnkle,yRAnkle)为右脚踝的坐标。
人们在运动的时候,肢体的角度会发生较大的变化,因此选用向量角度作为运动特征来反映人体不同的运动状态。分别计算上述4组结构向量中的夹角的余弦值,将其作为摔倒行为特征[16]。构建的两组向量夹角余弦值特征如下:
cosθNose-LAnkle=(VNose-LKnee·VLKnee-LAnke)/(|VNose-LKnee||VLKnee-LAnkle|);(10)
cosθNose-RAnkle=(VNose-RKnee·VRKnee-RAnkle)/(|VNose-RKnee||VRKnee-RAnkle|)。(11)
式(10)~(11)中:θNose-LAnkle为鼻部到左踝的夹角; VNose-LKnee和VLKnee-LAnke分别为鼻部到左膝的结构向量和左膝到左脚踝的结构向量; θNose-RAnkle为鼻部到右踝的夹角; VNose-RKnee和VRKnee-RAnkle分别为鼻部到右膝的结构向量和右膝到右脚踝的结构向量。
1.3 特征融合特征融合是将提取的不同特征通过某种方法生成新的特征,新特征对分类更加有效。特征融合方法可以综合利用不同特征的优势,形成特征互补,比单一特征分类更加准确。行人的异常行为复杂多样,单一的特征很难完全反映行为的类型,因此在对行人行为进行分类时,使用轨迹特征和骨架特征融合会提高分类的准确性。
1.3.1 基于轨迹的异常行为判别不足分析监控过程中,对于行进过程的每个轨迹点,除了一些坐标特征外,经过式(1)~(11)的计算,还得到一些速度和加速度的特征,将这些特征作为分类算法的输入。不同的活动可能具有相似的特征,例如走路和跑步,因此,很难产生某一种特征可以唯一地表示某种特定的活动。走路和跑步轨迹比较如图5所示,从走路行为和跑步行为的轨迹图(图5(c)与(d))可以看出,很难通过轨迹来判断行为是走路还是跑步。
仅使用轨迹作为识别行为的另一个问题是,实际生活中大部分活动都不是简单的重复性动作,而是复合性动作。大多数复合性活动都是由若干个简单动作互相关联起来的,仅凭轨迹很难描述复合性活动。可见,除轨迹特征外,还需要其他特征来表示人体行为。
1.3.2 基于骨架的异常行为判别不足分析
停车场的异常行为有很多种,比如摔倒、追逐等,这些异常行为都存在一些共同的特征,比如现实中的摔倒过程为:行走—摔倒过程—摔倒状态,且摔倒过程往往发生得非常急促,一瞬间即可发生。跳跃也是如此,其过程为:行走—跳跃—行走—跳跃。异常行为具有突发性,摔倒或跳跃过程持续时间短,并且在实际监控中,摔倒或者跳跃前,行人的行为可能是正常的走或跑,这就导致异常行为和正常行为的数量分布极不均衡。部分样本异常行为占比见表2,从表中可以看出异常行为的帧数在整个视频中所占的比例不高。从监控视频中截取不同时间段跳跃行为和摔倒行为各3帧图像,如图6所示,从图中可以看出异常行为只发生在某个特殊时间段。在监控视频中,需要同时识别出正常行为和异常行为,仅把骨架作为特征行为很难满足现实要求。
针对可能出现的异常行为,本研究定义了速度、加速度等特征组成训练样本,但是,现实中可能出现各种各样的异常行为,所以引入骨架特征作为另外一个识别异常行为的方法。单单考虑骨架特征也无法满足现实中的需求,因为像跳跃这样的异常行为发生在一瞬间,没有持续性,异常行为发生的前后,人体姿态没有明显的变化。所以,为了满足现实需要,考虑使用行人轨迹特征与骨架特征融合模型来识别异常行为和正常行为。
1.3.3 特征融合方法因为视频信息比较复杂,将轨迹作为特征较为简单,很难反映行人的行为,而骨架特征只能反映行人一瞬间的动作,因此在对异常行为分类时,使用特征融合会取得更佳的分类效果。同时,停车场监控视频中的行人异常行为往往是由复合活动组成的,单一的轨迹特征或者骨架特征无法描述行人整个活动过程,所以采用将轨迹特征和骨架特征融合的方法来识别行人的异常行为。
针对1.3.1~1.3.2节遇到的问题,提出一种将行人轨迹和行人骨架特征融合的算法,将式(1)的轨迹模型与式(10)~(11)的骨架模型与相融合来组成新的轨迹-骨架模型,如式(12)所示:
f=[x,y,dx,dy,d2x,d2y,cosθNose-LAnkle,cosθNose-RAnkle]。(12)
特征融合后的部分分类样本见表3。
2 试验环境及数据集2.1 试验环境
试验测试硬件如下:CPU为E5-2670v4处理器,内存为128 GB; 显卡为4块RTX3090,内存总共为96 GB。软件操作系统型号为Ubuntu18.04。硬件和软件都能够满足YOLOv5+DeepSort试验的要求和机器学习分类的要求。
2.2 数据集中科院行为数据库CASIA(Chinese Academy of Sciences Institute of Automation,中国科学院自动化研究所)行为分析数据库共有422条视频数据,由室外环境下分布在3个不同视角的摄像机拍摄而成,为行为分析提供试验数据。行人行为包括走、跑、跳、晕倒、打架,每类行为有24人参与拍摄,每人4次左右。
2.3 异常行为定义在基于视频的异常行为识别中,对异常的定义和描述很难有明确的定义。在研究中,行人在停车场这个运动方式比较常见的应用场景,露天停车场区域的监控中行人的正常行为包括正常路过、车前跑步。行人异常跳跃,突然摔倒及打架被划为异常行为。行人正常行为和异常行为分类如图7所示。
3 试验结果与分析
为了避免使用神经网络分类需要大量的计算资源,本研究选取了5个机器学习分类模型进行对比,分别是决策树、随机森林、多层感知机、K近邻算法和逻辑回归。以上5个模型都是分类模型中经常使用且性能较好的机器学习方法。
为了验证本研究提出的多特征融合模型的有效性,将提取的轨迹特征与骨架特征融合的异常行为识别结果,与未进行任何处理的单一数据及只有轨迹模型的行为识别结果进行对比。
在异常行为识别中,本研究主要采用准确度TA作为模型的评价指标:
TA=(TP+TN)/(TP+TN+FP+FN)。(13)
式(13)中:TP表示实际为真实类别并被预测真实类别的个数; TN表示实际为错误类别被预测为错误类别的个数; FP表示实际为错误类别被预测为真实类别的个数; FN表示实际为正确类别被预测为错误类别的个数。
在CASIA数据集中,选取跑、走、摔倒、跳跃和打架5种行为作为分类数据集,5种行为各12段视频,其中9段视频作为训练集,3段视频作为测试集。试验数据分布见表4。
采用5种分类算法进行分类,使用3种模型进行对比。
模型一:只包含行人的坐标信息,没有提取轨迹特征和骨架特征。
模型二:单独加入行人的轨迹特征(式(1))。
模型三:将轨迹特征与骨架特征融合之后的数据集,模型见式(12)。
由表5和图8可知,如果仅使用坐标信息,识别的准确率最高只有68.03%,采取单一轨迹的识别率最高只有77.64%,但使用轨迹-骨架模型,行人异常行为识别率在多层感知机算法下可以达到87.08%,基本上实现了异常行为识别。但本研究提出的算法也有缺点和不足,主要是正常行为与异常行为类别在数量上不均衡。行人在活动过程中异常行为的活动比较少,导致正常行为与异常行为的数量相差较大,在分类过程中影响了分类的准确度。
4 结 语为了降低安防带来的时间和经济成本,提高异常行为识别的准确性,本研究提出了基于轨迹和骨架特征融合的行人异常行为识别算法,首先通过YOLOv5算法快速检测行人; 然后利用基于DeepSort的目标跟踪算法实现对行人的跟踪; 最后使用机器学习方法对行人的行为进行分类。试验结果表明,在多层感知机算法下本文模型分类结果最好,并有较高的实时性和准确率,能够快速检测停车场异常行为的发生,可见本算法具有一定的应用价值。为了能够将算法应用到更多的场景中,我们将开展下一阶段的研究工作:使用树莓派作为硬件与网络摄像头连接,将停车场行人行为视频数据传输到服务器上,为后续算法提供数据基础,并根据采集的数据集,在计算机上编写用户界面,与模型算法相结合,实现离线处理; 研究多相机联合检测方法,尝试用多个相机从多个角度进行异常行为的检测,从一定程度解决大小车辆对行人的遮挡问题。
- [1] CAI L, LUO P, ZHOU G. Multistage analysis of abnormal human behavior in complex scenes[J].Journal of Sensors,2019,2019:1.
- [2] ZHANG X, QIAN Z, HU S, et al. Energy level-based abnormal crowd behavior detection[J].Sensors,2018,18(2):423.
- [3] MA J Z, XU Y L, ZHANG Y M, et al. An abnormal behavior detection method of video crowds and vehicles based on deep learning[C]//Proceedings of 2019 2nd International Conference on Artificial Intelligence and Pattern Recognition. Beijing:ACM,2019:12.
- [4] 汪鸿年,苏菡,龙刚,等.基于行为关键语句特征的停车场异常行为识别方法[J].计算机科学,2019,46(10):299.
- [5] WANG H, SU H. STAR:a concise deep learning framework for citywide human mobility prediction[C]//IEEE International Conference on Mobile Data Management. HongKong:IEEE,2019:304.
- [6] CHEN D, WANG P, YUE L, et al. Anomaly detection in surveillance video based on bidirectional prediction[J].Image and Vision Computing,2020,98:103915.
- [7] LIU W, LUO W, LIAN D, et al. Future frame prediction for anomaly detection:a new baseline[C]//CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City:IEEE,2018:684.
- [8] 赛斌,曹自强,谭跃进,等.基于目标跟踪与轨迹聚类的行人移动数据挖掘方法研究[J].系统工程理论与实践,2021,41(1):231.
- [9] MURCA M C R, HANSMAN R J, LI L, et al. Flight trajectory data analytics for characterization of air traffic flows:a comparative analysis of terminal area operations between New York, Hong Kong and Sao Paulo[J].Transportation Research, Part C. Emerging Technologies,2018,97:324.
- [10] BELHADI A, DJENOURI Y, SRIVASTAVA G, et al. Deep learning for pedestrian collective behavior analysis in smart cities:a model of group trajectory outlier detection[J].Information Fusion,2021,65:13.
- [11] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once:unified, real-time object detection[C]//Computer Vision & Pattern Recognition. Las Vegas:IEEE,2016:91.
- [12] 梁思源.基于YOLO和改进KCF的停车场行人检测研究[D].成都:西华大学,2020.
- [13] REZATOFIGHI H, TSOI N, GWAK J Y, et al. Generalized intersection over union:a metric and a loss for bounding box regression[C]//CVF Conference on Computer Vision and Pattern Recognition(CVPR). Long Beach:IEEE,2019:75.
- [14] 陆云飞.基于视频的轨迹提取及行人异常行为检测技术的研究[D].杭州:杭州电子科技大学,2015.
- [15] FANG H S, XIE S, TAI Y W, et al. RMPE:regional multi-person pose estimation[C]//2017 IEEE International Conference on Computer Vision(ICCV). Venice:IEEE,2017:256.
- [16] 朱高明.基于目标检测识别与人体姿态估计的粮库智能监控技术研究[D].南京:南京财经大学,2020.