方 凯,刘玉鑫,杨恩泽,刘硕研
(中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)
针对公共场所进行群体异常行为检测对维护公共安全和保障人民群众的生命和财产安全具有重要意义[1]。然而,公共场所存在环境复杂、人员光线易遮挡等问题。如何准确地检测到异常情况,成为亟需解决的问题。目前,有两种主要的研究思路[2-4],一种是通过描述人群运动行为来判断是否存在异常情况,例如,文献[3]提出了基于agent 的行人行为模型,该模型通过分析行人的目的地和社会关系对其异常运动情况进行简单而有效地估计;文献[4]通过研究群体的集体性来衡量人群运动的异常情况。另一种研究思路[5-8]是通过使用统计学习模型,将不经常出现的行为定义为异常行为,Ching 等人[5]提出利用分裂聚类方法,挖掘群体运动异常情况;Almeida 等人[6]提出了一种基于世界坐标系中运动矢量的群体运动行为变化检测方法;Roshtkhari 等人[7]提出了一种实时学习方法,使用时空合成来检测视频中的异常;Mehran 等人[8]试图基于领域知识,建立具有特定特征的层次模型,提出使用社会力模型来检测基于粒子平流光流场的异常行为。
统计学习模型具有数据描述灵活、模型泛化能力强等特点,已逐渐成为目前异常行为检测的主流算法。然而,异常行为的训练样本数量较少,使得基于该模型的算法检测准确率较低。研究发现,人群的正常行为是其动作遵守一定的运动转换规律形成的,而异常行为则不遵守任何转换规律。
为此,本文尝试挖掘视频中的人群运动变化规律,进行异常行为的检测与定位。(1)提取视频中的人群群体运动特征“Collectiveness”,利用词包模型构建人群的主要运动模式;(2)利用视频帧的运动模式差,构建运动转换空间;(3)使用聚类方法挖掘转换空间中的运动变化规律;(4)根据与人群运动变化规律的相似性,定位异常事件可能出现的区域。正常的人群运动具有较高的相似性,而异常事件的相似性较低。该方法在UMN 数据集和客运站异常视频库上进行了测试。实验结果验证了该方法对异常行为检测的有效性。
基于人群运动变化规律的异常行为检测算法流程如图1 所示。(1)基于视频帧的“Collectiveness”特征,提取人群的主要运动模式;(2)训练阶段,在视频帧对的运动转换空间中学习正常行为的运动变化规律;(3)测试阶段,针对历史帧与当前帧对 (frame(t1),frame(t1+Δt)),学习得到其相应的运动变化规律;(4)通过运动变化规律构建相似图,相似图中差异超过阈值的区域即为异常行为出现的位置。
图1 基于人群运动变化规律的异常行为检测算法流程
本文引入“Collectiveness”运动特征来表示人群运动信息,该运动特征已经受到诸多研究领域的关注,被认为是最合适的群体运动行为描述特征之一[4]。设W是与群集C相关联的加权邻接矩阵,其中,边wt(i,j) 表示图像块i和图像块j在其邻域中的相似性。定 义 γl={p0→p1→···→pl},其中,p0=i,pl=j表示在加权邻接矩阵W中的点p0,p1,···,pl之间的路径,并用定义针对特定路径γl的路径相似性。
因在图像块i和图像块j之间存在多条路径,利用Pl来定义在图像块i和图像块j之间长度为l的所有路径,路径的相似性定义为,图像块i在γl路径下的“Collectiveness”为:
对图像进行稠密采样,随后对每个采样区域提取“Collectiveness”特征,并采用词包模型[9]生成群体运动模式。词包模型作为目前主流的图像表示方法已经在图像分类领域取得了较好的性能。受其启发,本文通过K-means 算法对训练图像区域的“Collectiveness”特征进行聚类,生成聚类中心,并将图像块根据最近邻准则量化到聚类中心上。每个聚类中心被定义为一个群体运动模式,而生成的n个运动模式单词则构成动作运动词典,分别统计每幅视频帧中运动模式的出现频率,构建nbins 的直方图。
给定 两个n-bins 直方图h、g,采用bin-ratio 信息来构造转移矩阵T∈Rn×n,定义为:
其中,每个元素gj/hi测量h的第i个元素与g的第j个元素之间的差异。
现有的异常行为一般定义为偶然发生的、不经常出现的定位动作[8],即正常的运动转换规率为转换空间中的高频事件。基于构建的运动转换空间,二次利用词包模型聚类挖掘运动规律。例如采用kmeans 或IB 聚类方法,生成运动变化规律。
测试视频帧x与其前一帧y构建形成其相应的转换矩阵,随后与运动变化规律相比较计算其相似图,根据相似图是否超过阈值,判定该帧的行为是否属于异常情况。
本文从100 帧中提取运动模式数量为30 的学习规律。如图2 所示,显示了检测异常场景的一些定性结果。在图2 的每一行中,左栏显示视频的第1 帧,右栏显示检测到的异常块的第1 帧。绿色表示正常帧,红色表示异常帧。水平条上的第1 个数字标识所示异常帧的计时。实验结果表明,估计的运动变化规律能够捕捉到异常行为的本质,即使在没有训练的场景中也是如此。该方法所需的检测时间比数据集中给出的真实情况所需的时间短。主要原因是UMN 数据集提供了事件检测的基本真实值,它们是在事件发生后的几帧内被标记出来的[10-13]。
图2 UMN 数据集3 个样本异常行为检测的定性结果
运动变化规律数对检测性能的影响,如图3 所示。图中显示了5 种不同大小运动变化规律数对应的性能变化。可以看出,运动变化规律数从10 开始增加,性能逐渐提高,当运动变化规律数为30 时,性能达到最佳,然后略有下降。结果表明,如果数值太小,很难找到运动变化的规律。这意味着异常事件可以与正常事件分组。如果运动规律的数目过大,一些正常的活动会与异常活动相匹配,从而降低检测性能。此外,使用更大的运动变化规律数需要更多的内存,且计算时间显著增加,因此在线实现将变得不可能。
图3 运动变化规律数对异常行为性能检测的影响
将本文方法的性能与文献[6]中关于UMN 数据集的现有结果进行比较,其ROC(Receiver Operating Characteristic)曲线如图4 所示。结果表明,该方法在异常检测方面优于其他方法。文献[6]中方法的主要缺点是以运动模式作为主要线索。可以观察到,不同运动方向引起的异常活动和正常活动可能映射到相同的运动模式。然而,不寻常的方向会导致人群运动行为的变化,这与正常值不相似。换言之,场景中的运动模式并不区分异常,但运动模式的变化规律却可以区分。因此,本文的方法不是生成运动模式来学习异常行为,而是比较了每一帧与前一帧的运动模式。此外,本文提出的方法对异常运动模式也是有效的。异常的运动模式很难聚类到任何视觉文字中,因此其直方图也不同于其他视觉文字,生成的传递矩阵和运动规律之间的相似性较小。综上,该方法成功地模拟了异常行为的本质。
图4 算法比较ROC 曲线
目前,主流的异常行为数据集绝大部分来源于国外,与国内铁路客运站的实际场景有较大差别。为此,本文尝试自建客运站异常图像库,该图像库中包含了不同铁路客运站所有工作时间段的监控场景,包括商铺、电梯、立柱、栅栏、横幅、广告牌和监控点等,人流密度、方向不一且行为和动作多变,能够较好地反映国内车站的真实监控场景。
客运站异常图像库包含来自190 个车站的8 105段视频,采集于4 类区域,即出/ 入口闸机、出口区域、候车室和站台。出/ 入口闸机的视频数目为1 961 段,正常行为定义为依据指定方向以正常速度进入候车室,异常行为定义为与指定方向所呈角度大于45°的运动方向,共有166 段异常行为视频;出口区域共有943 段视频,包含119 段异常视频,异常行为主要为在出口区域徘徊或错误的运行方向;候车室区域视频共有2 354 段,其中异常视频386 段,主要是一些聚集与分散、突然停止、奔跑等异常行为;站台区域共有2 847 段视频,包含589 段黄线越界、端部入侵等异常行为视频。异常数据集的示例,如图5 所示。
图5 客运站异常图像库异常行为示例
如图6 所示,为火车站异常行为定位的定性结果,异常个体(走错方向)以红色方框突出显示。结果表明,本文的异常行为检测算法能够在火车站人群聚集的区域准确定位异常行为。
图6 视频帧的异常行为定位
本文提出了一种基于人群运动变化规律的异常行为检测算法。该算法通过挖掘人群主要的运动模式,实时定位视频帧中的异常行为发生区域。实验结果表明,该算法不仅在公开数据集上取得较好的效果,还适用于铁路客运站真实环境。然而,现阶段的研究工作仍然存在一些不足,对某些光照和角度特殊的场景用本文的方法仍不能取得较好的检测效果。因此,如何综合运用多种特征来提取运动规律是下一步的研究方向。