一种基于无监督学习的监控视频异常检测方法转让专利

申请号 : CN201910133470.8

文献号 : CN109902612B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 付利华彭硕冯羽葭卢中山王宇鹏

申请人 : 北京工业大学

摘要 :

本发明提供了一种基于无监督学习的监控视频异常检测方法。该方法首先提取视频中的运动块,然后从局部和全局两个不同的角度进行异常检测,通过多样化的检测角度使得检测结果更加准确。在局部异常检测中,首先对视频中的运动块进行扩展,然后以扩展后的运动块为基本检测单位,分别从时间维度、空间维度以及时空维度上比较该运动块与其邻域运动块之间的差异性;在全局异常检测中,首先对视频中的运动块进行聚类提取运动目标,然后在运动目标序列上使用滑动窗口,比较窗口内两个运动目标之间的差异性,最后基于一致性对检测结果进行优化。本发明适用监控视频的异常检测,计算复杂度低,检测结果准确,鲁棒性好。本发明在视频分析技术领域有着广泛的应用。

权利要求 :

1.一种基于无监督学习的监控视频异常检测方法,其特征在于对给定场景下的监控视频集合,进行如下操作:

1)提取视频中的运动块,并计算运动块的3D梯度特征;

2)在局部异常检测中,首先对视频中的运动块进行扩展,然后以扩展后的运动块为中心,分别从时间维度、空间维度以及时空维度上比较该运动块与其邻域块之间的差异性,从而找到异常的运动块并输出;

3)在全局异常检测中,首先对视频中的运动块进行聚类提取运动目标,然后在运动目标序列上使用滑动窗口,比较窗口内两个运动目标之间的差异性,最后基于一致性对检测结果进行优化并输出;

所述的步骤1)具体为:

1.1)对输入视频使用帧差法,将视频中连续的两帧之间进行逐像素相减:ft(x,y)=It(x,y)-It-1(x,y)

其中,ft(x,y)为视频第t帧与第t-1帧之间对应坐标(x,y)处像素值的差值,It(x,y)为视频第t帧上坐标(x,y)处的像素值;

1.2)对于使用帧差法后得到的视频数据,将其中的每一帧划分为尺寸为w×h的不重叠区域,每个区域大小为wb×hb,在每个区域内取连续的k帧组成一个时空块,时空块大小为wb×hb×k;

1.3)对时空块进行筛选,提取其中的运动块,具体为设定运动阈值σ,遍历视频中的所有时空块,如果一个时空块内包含的所有像素点的像素值之和大于运动阈值σ,4.5≤σ≤6,则判断该时空块为一个运动块,运动块的判断公式为:其中,αi为第i个时空块的判断结果,其值为0表示该时空块不是运动块,值为1表示该时空块是一个运动块;si为第i个时空块内所有像素点的像素值之和;

1.4)计算视频中运动块的3D梯度特征χ'i,具体为:对于每个运动块ui,将块内包含的所有像素点的像素值串联起来形成特征向量χi,并对其进行L2归一化,形成运动块ui的3D梯度特征,计算3D梯度特征χ'i的公式为:其中,χi=(χi1,χi2,...,χim)表示将运动块ui内像素点的像素值串联起来形成的特征向量,norm(χi)为特征向量χi的L2范数,m为特征向量χi的维度,χ'i表示将特征向量χi进行L2归一化后得到的结果。

2.根据权利要求1所述的一种基于无监督学习的监控视频异常检测方法,其特征在于所述步骤2)具体为:

2.1)将视频中的运动块进行扩展,扩大其覆盖范围,具体为:对于每个运动块ui,以ui为中心,寻找其周围一圈的8个块进行组合,形成扩展后的运动块Ui,经过扩展后每个运动块的大小为9×wb×hb×k;

2.2)在空间维度上,以每个运动块Ui为中心,寻找其空间邻域内的4个块,分别为运动块Ui左方、右方、上方、下方空间邻域内的4个块;

2.3)分别计算Ui以及 中包含的9个块的3D梯度特征,将Ui内包含的3D梯度特征数据标记为1, 内包含的3D梯度特征数据标记为0;

2.4)利用分类器比较Ui与 之间的差异性,用di,s1表示,具体为:使用Ui和 内标记好的3D梯度特征数据训练分类器,得到分类器模型fi,s1;使用训练好的分类器模型fi,s1对Ui中标记为1的特征数据进行预测,将分类器的预测准确率作为Ui与 之间的差异度di,s1,差异度的计算公式为:其中,wi,s1为分类器模型fi,s1输出的权重向量,βi,k为运动块Ui内包含的第k个3D梯度特征向量,p为运动块Ui内包含的特征向量总个数;

2.5)计算运动块Ui的空间异常度es,具体为:按步骤2.4)分别比较Ui与之间的差异性,得到Ui与 之间的差异度di,s2、di,s3、di,s3,取差异度的均值作为运动块Ui的空间异常度es,空间异常度的计算公式为:

2.6)计算运动块Ui的时间异常度et,具体为:在时间维度上,以运动块Ui为中心,寻找其时间邻域内的4个块, 分别为运动块Ui空间邻域内前1帧、前2帧、后1帧、后2帧的4个块;

按步骤2.3)分别计算Ui与 内包含的9个块的3D梯度特征并对特征数据进行标记;按步骤2.4)分别计算Ui与 之间的差异度di,t1、di,t2、di,t3、di,t4,取差异度的均值作为运动块Ui的时间异常度et,时间异常度的计算公式为:

2.7)计算运动块Ui的时空异常度est,具体为:在时空维度上,以运动块Ui为中心,寻找其空间邻域内的4个块以及其时间邻域内的2个块, 分别为运动块Ui左方、右方、上方、下方空间邻域内的4个块, 分别为运动块Ui时间邻域内前1帧、前2帧的2个块;

按步骤2.3)分别计算Ui与 内包含的9个块的3D梯度

特征并对特征数据进行标记;按步骤2.4)分别计算Ui与 之间的差异度di,s1、di,s2、di,s3、di,s4,以及Ui与 之间的差异度di,t1、di,t2,取差异度的均值作为运动块Ui的时空异常度est,时空异常度的计算公式为:

2.8)计算运动块Ui的局部异常度 具体为:将运动块Ui的时间异常度、空间异常度以及时空异常度进行融合,将融合后的结果作为运动块Ui的局部异常度 异常度融合公式为:其中,es、et、est分别为运动块Ui的空间异常度、时间异常度以及时空异常度;

2.9)根据视频中每个运动块Ui的局部异常度 对其进行异常判断,异常的运动块Ui即为监控视频异常检测结果,所述的异常判断标准为:设定一个局部异常阈值T1,如果运动块Ui的异常度 超过阈值T1,0.4≤T1≤0.55,则判断Ui为异常的,局部异常判断公式为:其中,CL(Ui)表示运动块Ui是否局部异常。

3.根据权利要求1所述的一种基于无监督学习的监控视频异常检测方法,其特征在于步骤3)具体如下:

3.1)根据视频中运动块的位置信息使用AP聚类算对运动块进行聚类,提取运动目标,对覆盖在运动目标上的运动块进行调整,使运动目标的形状统一;经过调整后,计算每个运动目标中包含的所有块的3D梯度特征;

3.2)在运动目标序列上使用一个滑动窗口,滑动窗口的大小覆盖视频中的两个运动目标,窗口内的第一个运动目标为A1,第二个运动目标为A2,滑动窗口从运动目标序列的起始位置开始不停向后滑动,直到运动目标序列的末尾,视频中的滑动窗口序列为:B={b1,b2,...,bz}

其中,b1表示处于运动目标序列起始位置处的滑动窗口,bz表示滑动到运动目标序列末尾位置处的窗口,z=l-1,l为视频中运动目标的个数;

3.3)利用分类器初步比较滑动窗口b1中两个运动目标之间的差异性,差异性用分类器初始预测准确率 表示,具体为:将滑动窗口b1中的第一个运动目标b1(A1)内包含的3D梯度特征数据标记为0,第二个运动目标b1(A2)内包含的3D梯度特征数据标记为1,使用标记好的特征数据训练分类器,得到分类器模型 使用训练好的分类器模型 对b1(A2)内标记为1的3D梯度特征数据进行预测,计算分类器的初始预测准确率 分类器初始预测准确率的计算公式为:其中, 为分类器模型 输出的权重向量, 为运动目标b1(A2)内包含的第j个3D梯度特征向量,q为运动目标b1(A2)内包含的特征向量总个数;

3.4)加入unmasking操作进一步比较滑动窗口b1中两个运动目标之间的差异性,差异性用分类器的多次预测准确率表示,该操作具体为:(3.4.1)根据分类器模型 输出的权重向量 从 中找出m个权重值最大的维度以及m个权重值最小的维度,将此2m个维度定义为显著维度;滑动窗口b1内包含的3D梯度特征数据维度为n,从窗口内包含的每个3D梯度特征中剔除对应的2m个显著维度;

(3.4.2)使用窗口b1内包含的(n-2m)维3D特征数据重新训练分类器,得到分类器模型使用训练好的分类器模型 对运动目标b1(A2)内标记为1的3D梯度特征数据进行预测,计算分类器的预测准确率(3.4.3)根据分类器模型 输出的权重向量 按步骤(3.4.1)重新寻找2m个显著维度,继续从窗口b1内包含的每个3D梯度特征中剔除对应的2m个显著维度;按步骤(3.4.2)使用窗口b1内包含的(n-4m)维3D特征数据重新训练分类器并计算分类器的预测准确率;

(3.4.4)重复进行上述剔除显著特征维度的操作,总共进行k次,每次剔除2m个显著维度,一共从滑动窗口b1内包含的n维3D梯度特征数据中剔除2km个显著维度;每次都使用窗口b1内剔除显著维度后的3D梯度特征数据重新训练分类器并计算分类器的预测准确率,分类器预测准确率的计算公式为:其中,r为分类器的训练次数,r=2,...,k+1; 为使用滑动窗口b1内的特征数据第r次训练分类器得到的分类器预测准确率; 为分类器模型 输出的权重向量; 为第r次训练分类器时运动目标b1(A2)内包含的第j个3D梯度特征向量;q为运动目标b1(A2)内包含的特征向量总个数;

3.5)计算滑动窗口b1中的第二个运动目标b1(A2)的全局异常度 即将k+1次训练分类器得到的预测准确率均值作为运动目标b1(A2)的全局异常度 具体计算公式为:其中, 为使用滑动窗口b1内的3D梯度特征数据第r次训练分类器得到的分类器预测准确率;k+1为分类器的训练总次数;

3.6)判断滑动窗口b1内的第二个运动目标b1(A2)是否异常,具体为:其中, 表示运动目标b1(A2)的全局异常度;CG(b1(A2))表示运动目标b1(A2)是否全局异常,0.4≤T2≤0.5;

3.7)滑动窗口向后滑动,步长为1个运动目标,得到滑动窗口b2,按步骤4.3)-4.6)计算窗口b2中的第二个运动目标b2(A2)的全局异常度

3.8)根据滑动窗口b1中运动目标b1(A2)的异常判断结果,判断b2(A2)是否异常,具体判断规则为:如果b1(A2)是正常的,则b2(A2)是否异常的标准为:

如果b1(A2)为异常,则b2(A2)是否异常的标准为:

其中, 表示运动目标b2(A2)的全局异常度;CG'(b2(A2))表示运动目标b2(A2)是否全局异常;

3.9)滑动窗口继续向后滑动,直到到达运动目标序列的末尾,按步骤3.7)和3.8)判断所有窗口中每个运动目标bi(A2)i=3、4、…、z是否异常,得到视频中的异常目标序列:A={a1(x1,y1,t1),a2(x2,y2,t2),...,an(xn,yn,tn)}其中,n为异常目标总数,ai(xi,yi,ti)表示视频中坐标位置(xi,yi,ti)处的异常目标,xi、yi表示异常目标在视频帧上的空间位置,ti表示异常目标所在的帧序号;

3.10)基于一致性对全局异常检测结果进行优化,具体步骤为:

(1)基于时间一致性对全局异常检测结果进行优化,得到删除误检后的异常目标序列E={e1,e2,...,em},具体步骤为:(1.1)根据异常目标所在的帧序号,将异常目标序列A中处于连续帧上的异常目标划分到同一个子集中;

(1.2)经过划分后,如果一个子集中包含的异常目标数量小于3个,则判断该子集中包含的异常目标是误检,将该子集删除;经过划分并删除误检后的异常目标序列为:E={e1,e2,...,em}

其中, 表示一个子集,其中包含处于连续帧上的异常目标,

表示子集em中的第km个异常目标,m为子集的总数,m<n;

(2)基于空间一致性对全局异常检测结果进行优化,其具体步骤为:

(2.1)遍历异常目标序列E,对于其中的每个子集 记录ei中异常目标所在的帧序号:

其中,di1为子集ei中异常目标的起始帧序号, 为子集ei中异常目标的结束帧序号;

(2.2)根据异常帧序号Di,将子集ei中处于同一帧上的异常目标进行合并,经过合并后的子集为:其中, 表示子集ei中处于第 帧上的异常目标集

合, 表示处于第 帧上的第j个异常目标;

(2.3)对子集e'i使用最大路径搜索算法,从e'i中寻找一条最优路径,最优路径上链接的异常目标即为子集e'i基于空间一致性的优化结果,其具体步骤为:(2.3.1)将子集e'i中的每个异常目标视为一个节点,对第di1帧上的每个节点aj(di1)进行初始化,将这些节点作为路径的起始节点,对每个节点计算节点异常权重M(aj,di1)以及累积异常权重S(aj,di1),令S(aj,di1)=M(ar,di1),M(aj,di1)的值等于节点aj(di1)的全局异常度;

(2.3.2)对于第di2帧上的每个节点aj(di2),寻找其在第di1帧上对应的空间邻域内累积异常权重最大的节点amax(di1),令S(aj,di2)=M(amax,di1)+M(aj,di2),并将节点aj(di2)和amax(di1)之间用路径链接起来,路径的权重等于节点aj(di2)的累积异常权重S(aj,di2);如果节点aj(di2)在第di1帧上对应的空间邻域内无法找到节点,则对其进行初始化,令S(aj,di2)=M(aj,di1),并将该节点作为新的路径起始节点;

(2.3.3)按步骤(2.3.2)对子集e'i中处于第di3至 帧上的节点进行路径链接并计算路径权重;

(2.3.4)从子集e'i中选择一条权重最大的路径作为最优路径,最优路径上面连接着的节点即为优化后的异常目标,从每个子集中都选择出一条最优路径,最终输出所有异常目标。

4.根据权利要求1所述的一种基于无监督学习的监控视频异常检测方法,其特征在于:步骤1)中所述的视频是固定位置摄像头拍摄得到的视频,视频中同一物体在不同位置的存在运动差异,训练分类器时使用的视频中包含正常和异常的物体,正常和异常的运动模式。

说明书 :

一种基于无监督学习的监控视频异常检测方法

技术领域

[0001] 本发明属于视频分析技术领域,涉及监控视频中异常物体及运动模式检测方法,具体为一种基于无监督学习的监控视频异常检测方法。

背景技术

[0002] 监控视频的异常检测是计算机视觉中的一个重要研究领域,它可以对监控视频进行智能分析,相对于人工分析的方式,大大提高了检测效率及检测精准度,节省了大量的人力物力。目前监控视频异常检测技术在交通违章检测、地铁逃票检测、火灾预警、入侵监测等方面都得到了广泛的应用。
[0003] 目前,监控视频异常检测算法大多都是基于监督学习和半监督学习的。基于监督学习的异常检测方法需要根据异常样本事先定义异常特征,在检测时先提取检测目标的特征,如果检测目标的特征与事先定义好的异常特征相符,则判断该检测目标是异常的,这种方法虽然准确度较高,但是只能检测监控视频中特定的异常行为,例如跌倒事件、人群暴力事件等,场景适应能力差,具有很大的局限性。基于半监督学习的异常检测方法需要利用正常样本训练模型,在检测时通过比较测试样本与模型之间的差异性,如果测试样本与模型之间存在很大差异,则判断该测试样本是异常的,这种方法虽然可以检测视频中的多种异常行为,但是存在模型依赖问题,如果构建的模型存在偏差则会导致误检和漏检的产生。因此,基于监督学习和半监督学习的异常检测方法在检测准确率以及场景适应性方面有很大的局限性。
[0004] 综上所述,在监控视频异常检测中,需要使用基于无监督学习的异常检测方法。基于无监督学习的异常检测方法既不需要根据异常样本提前定义异常特征,也不需要利用正常样本来训练模型,直接对测试样本进行分析处理,具有高度的灵活性。目前,虽然有少数基于无监督学习的异常检测方法,但是这些方法检测角度单一,无法保证检测准确率;在检测时大多只考虑了检测目标与其空间邻域内其他目标之间的差异性,忽略了时间和时空信息,无法保证检测准确率;仅使用阈值化方法对检测结果进行异常判断,如果阈值选取不当很可能造成误检。因此,当前需要一种新的基于无监督学习的异常检测方法,以解决以上问题。

发明内容

[0005] 传统异常检测方法的检测角度过于单一,无法保证检测准确率;通常仅在空间维度上进行异常检测,比较检测目标与其空间邻域内其他目标之间的差异性,并没有考虑时间和时空维度信息,无法保证检测准确率;仅使用阈值化方法进行异常判断,如果阈值选取不当很可能产生误检。为了解决上述问题,本发明提供了一种基于无监督学习的监控视频异常检测方法。该方法从局部和全局两个不同的角度进行监控视频异常检测,通过多样化的检测角度使得检测结果更加准确;在局部异常检测中从时间、空间和时空多个维度进行检测,提高了局部异常检测的准确率;基于一致性对全局异常检测结果进行优化,减少了由于阈值选取不当而造成的误检,使得全局异常检测结果更加准确,该方法包括以下步骤:
[0006] 1)提取视频中的运动块,并计算运动块的3D梯度特征;
[0007] 2)在局部异常检测中,首先对视频中的运动块进行扩展,然后以扩展后的运动块为中心,分别从时间维度、空间维度以及时空维度上比较该运动块与其邻域块之间的差异性,从而找到异常的运动块并输出;
[0008] 3)在全局异常检测中,首先对视频中的运动块进行聚类提取运动目标,然后在运动目标序列上使用滑动窗口,比较窗口内两个运动目标之间的差异性,最后基于一致性对检测结果进行优化并输出。
[0009] 进一步,所述步骤1)中的提取视频中的运动块,具体是:
[0010] 获取测试视频,所述测试视频是通过固定位置摄像头拍摄的视频,并且视频中包含正常和异常的物体及运动模式。
[0011] 由于异常事件大多都发生在存在运动的区域,静止区域往往都是背景,如果使用全部的视频数据则会耗费大量时间处理背景数据,降低检测效率,因此需要提取视频中的运动块,仅对运动块进行异常检测,以提高检测效率,步骤1)具体如下:
[0012] 1.1)对输入视频使用帧差法,将视频中连续的两帧进行逐像素相减:
[0013] ft(x,y)=It(x,y)-It-1(x,y)
[0014] 其中,ft(x,y)为视频中第t帧与第t-1帧对应坐标(x,y)处像素值的差值,It(x,y)为视频中第t帧上坐标(x,y)处的像素值;
[0015] 1.2)对于使用帧差法后得到的视频数据,将其中的每一帧划分为尺寸为w×h的不重叠区域,每个区域大小为wb×hb,在每个区域内取连续的k帧组成一个时空块,时空块大小为wb×hb×k;
[0016] 图3完整的展示了帧差法,对使用帧差法得到的视频数据的每一帧进行均匀分割,以及在每个分割区域上取连续的k帧组成一个时空块的过程。
[0017] 1.3)对时空块进行筛选,提取其中的运动块。设定运动阈值σ,遍历视频中的所有时空块,如果一个时空块内包含的所有像素点的像素值之和大于运动阈值σ,则判断该时空块为一个运动块。运动块的判断公式为:
[0018]
[0019] 其中,αi为第i个时空块的判断结果,其值为0表示该时空块不是运动块,为1表示该时空块是一个运动块;si为第i个时空块内所有像素点的像素值之和。
[0020] 1.4)计算视频中运动块的3D梯度特征χi'。对于每个运动块ui,将块内所有像素点的像素值串联起来形成特征向量χi,并对其进行L2归一化,得到运动块ui的3D梯度特征χi':
[0021]
[0022]
[0023] 其中,χi=(χi1,χi2,...,χim)表示将运动块ui内像素点的像素值串联起来形成的特征向量,norm(χi)为特征向量χi的L2范数,m为特征向量χi的维度,χi'表示将特征向量χi进行L2归一化后得到的3D梯度特征。
[0024] 在监控视频中事件的异常度往往与其所在的环境密切相关,例如一辆车在公路上行驶是正常的,而车在人行道上行驶则是异常的,将这种与周围环境存在明显差异的事件定义为局部异常事件,使用局部异常检测算法对视频中的局部异常事件进行检测。在局部异常检测中首先对视频中的每个运动块进行扩展,然后以扩展后的运动块为中心,分别从时间维度、空间维度以及时空维度上比较该运动块与其邻域内其他块之间的差异性。步骤2)具体如下:
[0025] 2.1)由于在视频中运动块只能覆盖运动目标的一小部分区域,对单个运动块提取特征不能很好地描述目标的运动信息,因此需要将每个运动块进行扩展,进一步扩大其覆盖范围,使其包含更丰富的信息。对于视频中的每个运动块ui,以ui为中心,寻找其周围一圈的8个运动块进行组合,形成扩展后的运动块Ui,经过扩展后每个运动块的大小为9×wb×hb×k,图4表示了以运动块ui为中心寻找其周围一圈的8个块进行扩展的过程,左边一组三个标出的白色方块为扩展前的运动块,右边一组三个标出的白色方块为扩展后的运动块。
[0026] 2.2)在空间维度上,以每个运动块Ui为中心,寻找其空间邻域内的4个块,分别为运动块Ui左方、右方、上方、下方空间邻域内的4个块;
[0027] 2.3)按步骤1.4)分别计算Ui以及 中包含的9个块的3D梯度特征,将Ui内包含的3D梯度特征数据标记为1, 内包含的3D梯度特征
数据标记为0,图5表示了以运动块Ui为中心寻找其空间邻域内4个块并对块内特征数据进行标记的过程;
[0028] 2.4)利用分类器比较Ui与 之间的差异性。使用Ui和 内标记好的3D梯度特征数据训练分类器,得到分类器模型fi,s1;使用训练好的分类器模型fi,s1对Ui中标记为1的特征数据进行预测,将分类器的预测准确率作为Ui与 之间的差异度di,s1,差异度的计算公式为:
[0029]
[0030] 其中,wi,s1为分类器模型fi,s1输出的权重向量,βi,k为运动块Ui内包含的第k个3D梯度特征向量,p为运动块Ui内包含的特征向量总个数;
[0031] 2.5)计算运动块Ui的空间异常度。按步骤2.4)分别比较Ui与 之间的差异性,得到Ui与 之间的差异度di,s2、di,s3、di,s3,取差异度的均值作为运动块Ui的空间异常度es,空间异常度的计算公式为:
[0032]
[0033] 2.6)计算运动块Ui的时间异常度。在时间维度上,以运动块Ui为中心,寻找其时间邻域内的4个块, 分别为运动块Ui空间邻域内前1帧、前2帧、后1帧、后2帧的4个块;
[0034] 按步骤2.3)分别计算Ui与 内包含的9个块的3D梯度特征并对特征数据进行标记,图6表示了以运动块Ui为中心寻找其时间邻域内4个块并对块内特征数据进行标记的过程;按步骤2.4)分别计算Ui与 之间的差异度di,t1、
di,t2、di,t3、di,t4,取差异度的均值作为运动块Ui的时间异常度et,时间异常度的计算公式为:
[0035]
[0036] 2.7)计算运动块Ui的时空异常度。在时空维度上,以运动块Ui为中心,寻找其空间邻域内的4个块以及其时间邻域内的2个块, 分别为运动块Ui左方、右方、下方、上方空间邻域内的4个块, 分别为运动块Ui时间邻域内前1帧、前2帧的
2个块;
[0037] 按步骤2.3)分别计算Ui与 内包含的9个块的3D梯度特征并对特征数据进行标记,图7表示了以运动块Ui为中心寻找其空间邻域内4个块及时间邻域内2个块并对块内特征数据进行标记的过程;按步骤2.4)分别计算Ui与之间的差异度di,s1、di,s2、di,s3、di,s4,以及Ui与 之间的差异
度di,t1、di,t2,取差异度的均值作为运动块Ui的时空异常度est,时空异常度的计算公式为:
[0038]
[0039] 2.8)计算运动块Ui的局部异常度。将运动块Ui的时间异常度、空间异常度以及时空异常度进行融合,将融合后的结果作为运动块Ui的局部异常度 异常度融合公式为:
[0040]
[0041] 其中,es、et、est分别为运动块Ui的空间异常度、时间异常度以及时空异常度;
[0042] 2.9)根据视频中每个运动块Ui的局部异常度对其进行异常判断。设定一个局部异常阈值T1,如果运动块Ui的异常度 超过阈值T1,0.4≤T1≤0.55,判断Ui为异常的,局部异常判断公式为:
[0043]
[0044] 其中,CL(Ui)表示运动块Ui是否局部异常。
[0045] 在监控视频中,某些事件与其周围环境进行比较虽然是正常的,但是考虑到它与视频中其他事件之间的交互作用时,该事件可能是异常的。例如一个人在公园中跑步,如果仅仅考虑该跑步的人与其周围环境之间的差异性,一般会认为该人在锻炼身体,判断其行为是正常的,但是如果该人正快速跑向其他行人,则可能发生了紧急事件,判断其行为是异常的。将这种由于不同事件之间发生交互作用而产生的异常定义为全局异常事件,使用全局异常检测算法对视频中的全局异常事件进行检测。在进行全局异常检测时,首先对视频中的运动块进行聚类提取运动目标,然后在运动目标序列上使用滑动窗口,比较窗口内两个运动目标之间的差异性,最后基于一致性对检测结果进行优化,步骤3)具体如下:
[0046] 3.1)将视频中的运动目标作为全局异常检测的基本单位,保证检测单位的统一,提高检测效率。根据视频中运动块的位置信息使用AP聚类算对运动块进行聚类,提取运动目标,对覆盖在运动目标上的运动块进行调整,使运动目标的形状统一,图8表示了使用一个固定的“凸”字型模板对运动目标的形状进行调整的过程;经过调整后,计算每个运动目标中包含的所有块的3D梯度特征;
[0047] 3.2)在运动目标序列上使用一个滑动窗口,滑动窗口的大小覆盖视频中的两个运动目标,窗口内的第一个运动目标为A1,第二个运动目标为A2,滑动窗口从运动目标序列的起始位置开始不停向后滑动,直到运动目标序列的末尾,视频中的滑动窗口序列为:
[0048] B={b1,b2,...,bz}
[0049] 其中,b1表示处于运动目标序列起始位置处的滑动窗口,bz表示滑动到运动目标序列末尾位置处的窗口,z=l-1,l为视频中运动目标的个数;
[0050] 3.3)利用分类器初步比较滑动窗口b1中两个运动目标之间的差异性,差异性用分类器初始预测准确率 表示。由于异常事件一般不会出现在视频的起始时刻,因此对于运动目标序列起始位置的滑动窗口b1,假设其中的第一个运动目标b1(A1)一定是正常的,将b1(A1)内包含的3D梯度特征数据标记为0,窗口中第二个运动目标b1(A2)内包含的3D梯度特征数据标记为1,图9表示了对滑动窗口b1内两个运动目标包含的特征数据进行标记的过程。使用标记好的特征数据训练分类器,得到分类器模型 使用训练好的分类器模型对b1(A2)内标记为1的3D梯度特征数据进行预测,计算分类器的初始预测准确率分类器初始预测准确率的计算公式为:
[0051]
[0052] 其中, 为分类器模型 输出的权重向量, 为运动目标b1(A2)内包含的第j个3D梯度特征向量,q为运动目标b1(A2)内包含的特征向量总个数;
[0053] 3.4)由于视频中正常目标和正常目标之间可能存在差异,直接根据分类器的初始预测准确率进行异常检测可能产生误检,因此加入unmasking操作进一步比较滑动窗口b1中两个运动目标之间的差异性,提高检测准确率,
[0054] 该操作具体为:
[0055] (3.4.1)根据分类器模型 输出的权重向量 从 中找出m个权重值最大的维度以及m个权重值最小的维度,将此2m个维度定义为显著维度。滑动窗口b1内包含的3D梯度特征数据维度为n,从窗口内包含的每个3D梯度特征中剔除对应的2m个显著维度,图10表示了根据权重向量 确定2m个显著维度并删除滑动窗口b1内特征对应的显著维度的过程;
[0056] (3.4.2)使用窗口b1内包含的(n-2m)维3D特征数据重新训练分类器,得到分类器模型 使用训练好的分类器模型 对运动目标b1(A2)内标记为1的3D梯度特征数据进行预测,计算分类器的预测准确率
[0057] (3.4.3)根据分类器模型 输出的权重向量 按步骤(3.4.1)重新寻找2m个显著维度,继续从窗口b1内包含的每个3D梯度特征中剔除对应的2m个显著维度;按步骤(3.4.2)使用窗口b1内包含的(n-4m)维3D特征数据重新训练分类器并计算分类器的预测准确率;
[0058] (3.4.4)重复进行上述剔除显著特征维度的操作,总共进行k次,每次剔除2m个显著维度,一共从滑动窗口b1内包含的n维3D梯度特征数据中剔除2km个显著维度;每次都使用窗口b1内剔除显著维度后的3D梯度特征数据重新训练分类器并计算分类器的预测准确率,分类器预测准确率的计算公式为:
[0059]
[0060] 其中,r为分类器的训练次数,r=2,...,k+1; 为使用滑动窗口b1内的特征数据第r次训练分类器得到的分类器预测准确率; 为分类器模型 输出的权重向量;为第r次训练分类器时运动目标b1(A2)内包含的第j个3D梯度特征向量;q为运动目标b1(A2)内包含的特征向量总个数;
[0061] 3.5)计算滑动窗口b1中的第二个运动目标b1(A2)的全局异常度,即将k+1次训练分类器得到的预测准确率均值作为运动目标b1(A2)的全局异常度 全局异常度的计算公式为:
[0062]
[0063] 其中, 为使用滑动窗口b1内的3D梯度特征数据第r次训练分类器得到的分类器预测准确率;k+1为分类器的训练总次数;
[0064] 3.6)判断滑动窗口b1内的第二个运动目标b1(A2)是否异常,具体为:
[0065]
[0066] 其中, 表示运动目标b1(A2)的全局异常度;CG(b1(A2))表示运动目标b1(A2)是否全局异常,0.4≤T2≤0.5。
[0067] 3.7)滑动窗口向后滑动,步长为1个运动目标,得到滑动窗口b2,按步骤3.3)-3.6)计算窗口b2中的第二个运动目标b2(A2)的全局异常度
[0068] 3.8)根据滑动窗口b1中运动目标b1(A2)的异常判断结果,判断b2(A2)是否异常,具体判断规则为:
[0069] 如果b1(A2)是正常的,则b2(A2)是否异常的标准为:
[0070]
[0071] 如果b1(A2)为异常,则b2(A2)是否异常的标准为:
[0072]
[0073] 其中, 表示运动目标b2(A2)的全局异常度;CG'(b2(A2))表示运动目标b2(A2)是否全局异常;
[0074] 3.9)滑动窗口继续向后滑动,直到到达运动目标序列的末尾,按步骤3.7)和3.8)判断所有窗口中每个运动目标bi(A2)i=3、4、…、z是否异常,得到视频中的异常目标序列:
[0075] A={a1(x1,y1,t1),a2(x2,y2,t2),...,an(xn,yn,tn)}
[0076] 其中,n为异常目标总数,ai(xi,yi,ti)表示视频中坐标位置(xi,yi,ti)处的异常目标,xi、yi表示异常目标在视频帧上的空间位置,ti表示异常目标所在的帧序号;
[0077] 3.10)基于一致性对全局异常检测结果进行优化,具体步骤为:
[0078] (3.10.1)在监控视频中异常事件往往是连续发生的,因此异常事件中的异常目标通常会分布在视频中连续的多个帧上,如果异常目标仅仅出现在某一个单独的视频帧上或者少量几个视频帧上,则很可能是误检。根据异常事件的发生具有时间连续性这一特点,基于时间一致性对全局异常检测结果进行优化,得到删除误检后的异常目标序列E={e1,e2,...,em},具体步骤为:
[0079] (3.10.1.1)根据异常目标所在的帧序号,将异常目标序列A中处于连续帧上的异常目标划分到同一个子集中;
[0080] (3.10.1.2)经过划分后,如果一个子集中包含的异常目标数量小于3个,则判断该子集中包含的异常目标是误检,将该子集删除,图11表示了对异常目标序列A进行子集划分并删除误检的过程;经过划分并删除误检后的异常目标序列为:
[0081] E={e1,e2,...,em}
[0082] 其中, 表示一个子集,其中包含处于连续帧上的异常目标, 表示子集em中的第km个异常目标,m为子集的总数,m<n;
[0083] (3.10.2)在监控视频中,同一个异常目标在连续视频帧上其空间位置不会发生剧烈的改变,该异常目标通常会在某一邻域范围内进行移动。根据连续帧上的异常目标存在空间关联性这一特点,基于空间一致性对全局异常检测结果进行优化,其具体步骤为:
[0084] (3.10.2.1)遍历异常目标序列E,对于其中的每个子集 记录ei中异常目标所在的帧序号:
[0085]
[0086] 其中,di1为子集ei中异常目标的起始帧序号, 为子集ei中异常目标的结束帧序号;
[0087] (3.10.2.2)根据异常帧序号Di,将子集ei中处于同一帧上的异常目标进行合并,图12表示了对子集中的异常目标按照帧序号进行合并的过程,经过合并后的子集为:
[0088]
[0089] 其中, 表示子集ei中处于第 帧上的异常目标集合, 表示处于第 帧上的第j个异常目标;
[0090] (3.10.2.3)对子集ei'使用最大路径搜索算法,从ei'中寻找一条最优路径,最优路径上链接的异常目标即为子集ei'基于空间一致性的优化结果,其具体步骤为:
[0091] (3.10.2.3.1)将子集ei'中的每个异常目标视为一个节点,对第di1帧上的每个节点aj(di1)进行初始化,将这些节点作为路径的起始节点,对每个节点计算节点异常权重M(aj,di1)以及累积异常权重S(aj,di1),令S(aj,di1)=M(ar,di1),M(aj,di1)的值等于节点aj(di1)的全局异常度;
[0092] (3.10.2.3.2)对于第di2帧上的每个节点aj(di2),寻找其在第di1帧上对应的空间邻域内累积异常权重最大的节点amax(di1),令S(aj,di2)=M(amax,di1)+M(aj,di2),并将节点aj(di2)和amax(di1)之间用路径链接起来,路径的权重等于节点aj(di2)的累积异常权重S(aj,di2);如果节点aj(di2)在第di1帧上对应的空间邻域内无法找到节点,则对其进行初始化,令S(aj,di2)=M(aj,di1),并将该节点作为新的路径起始节点;
[0093] (3.10.2.3.3)按步骤(3.10.2.3.2)对子集ei'中处于第di3至dihi帧上的节点进行路径链接并计算路径权重;
[0094] (3.10.2.3.4)从子集ei'中选择一条权重最大的路径作为最优路径,最优路径上面连接着的节点即为优化后的异常目标,图13表示了从子集中选择最优路径的过程。从每个子集中都选择出一条最优路径,最终输出所有异常目标。
[0095] 有益效果
[0096] 本发明提供了一种基于无监督学习的监控视频异常检测方法,该方法首先提取视频中的运动块,然后从局部和全局两个不同的角度进行异常检测。在局部异常检测中,首先对视频中的运动块进行扩展,然后将扩展后的运动块作为基本检测单位,分别从时间维度、空间维度以及时空维度上比较该运动块与其邻域内其他块之间的差异性;在全局异常检测中,首先对视频中的运动块进行聚类提取运动目标,然后在运动目标序列上使用滑动窗口,比较窗口内两个运动目标之间的差异性,最后基于一致性对检测结果进行优化。应用本发明,解决了过去基于无监督学习的异常检测方法由于检测角度和检测维度过于单一所导致的检测准确率较低的问题,以及仅使用阈值化方法进行异常判断所导致的误检问题。本发明适用于监控视频的异常检测,计算复杂度低,检测结果准确,算法鲁棒性好。

附图说明

[0097] 图1、本发明基于无监督学习的监控视频异常检测方法的流程图;
[0098] 图2、本发明基于无监督学习的监控视频全局异常检测方法的流程图;
[0099] 图3、视频时空块示意图;
[0100] 图4、视频运动块的扩展示意图;
[0101] 图5、在空间维度上的特征标记示意图;
[0102] 图6、在时间维度上的特征标记示意图;
[0103] 图7、在时空维度上的特征标记示意图;
[0104] 图8、运动目标的形状调整示意图;
[0105] 图9、滑动窗口内的特征标记示意图;
[0106] 图10、删除显著特征维度示意图;
[0107] 图11、子集划分及误检删除示意图;
[0108] 图12、经过合并后的子集示意图;
[0109] 图13、子集中的最优路径示意图;
[0110] 图14、运动目标识别示意图;

具体实施方式

[0111] 本发明在视频分析技术领域有着广泛的应用,例如:公共场所的骚乱检测、地铁站入口的逃票检测、火灾预警和入侵监测等。下面参照附图,对本发明进行详尽的描述。
[0112] (1)在本发明的实施例中,使用Avenue数据集提供的测试视频进行测试,将测试视频每一帧的大小调整为240×320。对于数据集中的每个测试视频,首先提取运动块,其具体步骤为:
[0113] (1.1)对输入视频使用帧差法,将视频中连续的两帧之间进行逐像素相减;
[0114] (1.2)对于使用帧差法得到的视频数据,将其中的每一帧划分为尺寸为24×32的不重叠区域,每个区域大小为10×10,在每个区域上取连续5帧形成一个时空块,每个时空块的大小为10×10×5;
[0115] (1.3)对时空块进行筛选,提取其中的运动块。设定一个运动阈值σ,4.5≤σ≤6,在本实施例中σ取值为6,如果一个时空块内像素点的像素值之和大于σ则认为其是运动块;
[0116] (1.4)对视频中的每个运动块计算3D梯度特征,特征维度为500。
[0117] (2)在局部异常检测中,首先对视频中的运动块进行扩展,然后将扩展后的运动块作为基本检测单位,分别从时间维度、空间维度以及时空维度上比较该运动块与其邻域运动块之间的差异性,其具体步骤为:
[0118] (2.1)以视频中的每个运动块为中心,寻找其周围一圈内的8个块进行组合,形成扩展后的运动块,经过扩展后每个运动块的大小为9×10×10×5,将扩展后的运动块作为局部异常检测的基本单位;
[0119] (2.2)在空间维度上,以每个扩展后的运动块为中心,寻找其空间邻域内的4个块;
[0120] (2.3)分别计算中心运动块以及其空间邻域内4个块中包含的9个块的3D梯度特征,特征维度为500。将中心运动块内包含的3D梯度特征数据标记为1,其空间邻域内4个块内包含的3D梯度特征数据标记为0;
[0121] (2.4)训练分类器比较中心运动块与其空间邻域内上方块之间的差异性,并计算它们之间的差异度。在本实施例中分类器使用liblinear工具箱提供的L2正则化逻辑回归模型,分类器设置类型参数s为0,即使用L2逻辑回归,设置迭代终止条件容忍度参数e为0.1,设置偏置项参数B为1;
[0122] (2.5)计算中心运动块的空间异常度。按步骤(2.4)训练分类器分别比较中心运动块与其空间邻域内下方、左方、右方块之间的差异性,并计算它们之间的差异度。取中心运动块与其空间邻域内4个块之间的差异度均值,将该值作为中心运动块的空间异常度;
[0123] (2.6)在时间维度上,以每个扩展后的运动块为中心,寻找其时间邻域内的4个块,分别计算中心运动块以及其时间邻域内4个块中包含的9个块的3D梯度特征,将中心运动块包含的3D梯度特征数据标记为1,其时间邻域内的4个块包含的3D梯度特征数据标记为0;按步骤(2.4)和(2.5)计算中心运动块的时间异常度;
[0124] (2.7)在时空维度上,以每个扩展后的运动块为中心,寻找其空间邻域内的4个块以及时间邻域内的2个块,分别计算中心运动块以及其空间邻域内4个块、时间邻域内2个块中包含的9个块的3D梯度特征,将中心运动块内包含的3D梯度特征数据标记为1,其空间邻域内的4个块和时间邻域内的2个块包含的3D梯度特征数据标记为0;按步骤(2.4)和(2.5)计算中心运动块的时空异常度;
[0125] (2.8)将空间异常度、时间异常度以及时空异常度进行融合,将融合后的结果作为中心运动块的局部异常度;
[0126] (2.9)设定局部异常阈值T1,0.4≤T1≤0.55,在本实施例中T1取值为0.55,如果中心运动块的局部异常度大于T1则判断其是局部异常的;
[0127] (3)在全局异常检测中,首先对视频中的运动块进行聚类提取运动目标,然后在运动目标序列上使用滑动窗口,比较窗口内两个运动目标之间的差异性,最后基于一致性对检测结果进行优化,其具体步骤为:
[0128] (3.1)对于视频每一帧上的运动块,记录运动块的坐标位置,根据坐标位置信息使用AP聚类算法对处于同一帧上的运动块进行聚类。在本实施例中,对于AP聚类算法中的相似度矩阵S,S中非对角线上的元素s(i,j)表示运动块i与j之间的相似度,计算处于同一帧上的每两个运动块i与j之间的欧氏距离O(i,j),取欧式距离的负值作为运动块i与j之间的相似度,即令s(i,j)=-O(i,j);S中对角线上的元素s(i,i)表示运动块i适合作为聚类中心的程度,取S中除对角线外所有元素的中值作为对角线元素值,即令s(i,i)=median(s(i,j))(i≠j)。
[0129] 经过聚类后,提取视频每一帧中的所有运动目标,在本实施例中距离相近的10-20个运动块被聚合到一起形成一个运动目标。使用一个“凸”字型模板对每个运动目标的形状进行调整,使运动目标的形状统一,经过调整后计算每个运动目标中包含的所有块的3D梯度特征,特征数据维度为500。
[0130] (3.2)在运动目标序列上使用一个滑动窗口,滑动窗口的大小可以覆盖两个运动目标,将窗口中第一个运动目标包含的10-20个3D梯度特征数据标记为0,第二个运动目标包含的10-20个3D梯度特征数据标记为1。如图14所示,第一帧图像中提取出了3个运动目标,第二帧图像中提取了2个运动目标,所有提取的运动目标构成了运动目标序列,第一个滑动窗口覆盖了前两个运动目标,如图9所示,在本实施例中,滑动窗口b1内包含了同一帧上提取出的两个运动目标A1、A2;
[0131] (3.3)训练分类器初步比较滑动窗口内两个运动目标之间的差异性,并计算分类器的初始预测准确率。在本实施例中分类器使用liblinear工具箱提供的L2正则化逻辑回归模型,分类器设置类型参数s为0,即使用L2逻辑回归,设置迭代终止条件容忍度参数e为0.1,设置偏置项参数B为1;
[0132] (3.4)加入unmasking操作进一步比较滑动窗口内两个运动目标之间的差异性,该操作具体为:
[0133] (3.4.1)根据步骤(3.3)训练分类器输出的权重向量,从权重向量中找出25个权重值最大的维度和25个权重值最小的维度,将这50个维度作为显著维度。从滑动窗口内包含的所有3D梯度特征中剔除对应的50个显著特征维度;
[0134] (3.4.2)使用窗口内剔除显著维度的特征数据重新训练分类器并计算分类器的预测准确率;
[0135] (3.4.3)根据步骤(3.4.2)训练分类器输出的权重向量,重新寻找50个显著维度,继续从滑动窗口内包含的所有3D梯度特征中剔除对应的50个显著特征维度,使用窗口内剔除剔除显著维度的特征数据重新训练分类器并计算分类器的预测准确率;
[0136] (3.4.4)重复进行上述剔除显著特征维度的操作,总共进行9次,每次剔除50个显著特征维度,总共从滑动窗口包含的500维3D梯度特征数据中剔除450个显著特征维度,每次都重新训练分类器并计算分类器的预测准确率;
[0137] (3.5)计算滑动窗口内第二个运动目标的全局异常度。将10次训练分类器得到的预测准确率均值作为滑动窗口内第二个运动目标的全局异常度;
[0138] (3.6)对滑动窗口内的第二个运动目标进行异常判断。设定一个全局异常阈值T2,0.4≤T2≤0.5,在本实施例中T2取值为0.5,如果滑动窗口内第二个运动目标的全局异常度大于T2,则判断其是全局异常的;
[0139] (3.7)滑动窗口向后滑动,步长为一个运动目标,按步骤(3.3)-(3.6)计算窗口中第二个运动目标的全局异常度;
[0140] (3.8)根据上一个滑动窗口中第二个运动目标的异常判断结果,对当前滑动窗口中的第二个运动目标进行异常判断,具体判断规则为:
[0141] 如果上一个滑动窗口中的第二个运动目标是正常的,则当前窗口中第二个运动目标的全局异常度大于T2时,判断其是异常的;
[0142] 如果上一个滑动窗口中的第二个运动目标是异常的,则当前窗口中第二个运动目标的全局异常度小于T2时,判断其是异常的;
[0143] (3.9)滑动窗口继续向后滑动,直到运动目标序列的末尾,按步骤(3.7)-(3.8)判断每个窗口内的第二个运动目标是否异常;
[0144] (3.10)基于一致性对全局异常检测结果进行优化,其具体步骤为:
[0145] (3.10.1)基于时间一致性对全局异常检测结果进行优化,其具体步骤为:
[0146] (3.10.1.1)对全局异常检测后得到的异常目标序列进行划分,将处于连续帧上的异常目标划分到一个子集中;
[0147] (3.10.1.2)经过划分后,如果一个子集中包含的异常目标个数小于3个则将其删除;
[0148] (3.10.2)基于空间一致性对全局异常检测结果进行优化,其具体步骤为:
[0149] (3.10.2.1)对于步骤(3.10)中经过划分并删除误检后的每个子集,记录子集中异常目标所在的帧序号;
[0150] (3.10.2.2)将子集中处于同一视频帧上的异常目标进行合并;
[0151] (3.10.2.3)对每个合并后的子集使用最大路径搜索算法,将子集中每两个相邻帧之间具有空间关联性的异常目标使用路径链接起来;
[0152] (3.10.2.4)从每个子集中选出一条最优路径,最优路径上链接的异常目标即为该子集基于空间一致性的优化结果。
[0153] 在Intel Core i5-4460 3.20GHz CPU和Win10 64位操作系统下,采用MATLAB R2015a编程实现该方法。
[0154] 本发明提供了一种基于无监督学习的监控视频异常检测方法,适用于监控视频的异常检测,计算复杂度低,检测结果准确,算法鲁棒性好。实验表明该方法能够快速有效地进行异常检测。