1.基于深度学习和动态聚类的监控视频异常事件检测方法,运用PCANet自动对视频采样块进行深度特征提取,同时对采样块进行运动区域筛选,并采用一个基于向量合并的两层聚类模型来对特征集合进行聚类建模,其特征在于包括如下步骤:步骤1:图像预处理;读取监控视频流作为输入,进行灰度化并使用高斯滤波进行降噪处理;
步骤2:重叠采样;对输入算法的视频流,首先计算出中每一帧图像中每一个像素点的光流值,并用像素点光流值替换掉灰度值;然后对I进行大小固定的重叠采样,输出一系列大小为N×N的视频采样图像块;
步骤3:运动区域筛选;对于采样得到的所有视频采样图像块,首先运用直方图双峰法统计得到划分图像中运动像素点与背景像素点的划分阈值,然后根据该阈值对每个采样图像块进行判断,筛选出包含运动事件的采样图像块,将那些只包含有背景信息的采样块剔除不予考虑;
步骤4:深度特征提取;在得到只包含有运动信息的采样图像块之后,将这些视频采样图像块输入到3层PCANet中,来进行参数训练;在深度网络训练完毕之后,再一次将图像块输入到训练好的深度网络当中,网络对于每个采样图像块输出与之对应的深度特征;
步骤5:动态聚类建模;对于深度特征向量集合,首先将特征向量依次输入大小固定的字典集合当中,若集合数量超过上界,则将最接近的两个特征向量进行合并以维持总数不变;维护好之后,对字典集合运用K均值算法进行聚类操作,输出对应的事件簇码本;
步骤6:模型构建完毕之后,输入测试视频,对测试品是的每帧图像进行采样并进行运动区域判断,然后将采样图像输入到训练好的PCANet中输出对应的深度特征,最后将特征向量与事件簇码本进行比较,若与所有的码本的距离均大于各自的阈值,就判定为是异常事件。
2.根据权利要求1所述的基于深度学习和动态聚类的监控视频异常事件检测方法,其特征在于步骤2所述的重叠采样,具体如下:步骤2-1:拟合前一帧视频图像;输入I中相邻两个图像帧中的前一帧,对于相邻连续的两个视频帧中的前一帧,对帧中的每个像素点的邻域使用一个多项式来近似进行表达其中A为对称矩阵,b为向量,c为标量,其值可以通过加权最小二乘法进行拟合求得,输出对该帧图像的拟合多项式f1(x);
步骤2-2:拟合后一帧视频图像;输入I中相邻两个图像帧中的后一帧,对于相邻帧中的后一帧,运用同样的方法进行近似表达并通过加权最小二乘法求得多项式参数,输出该帧图像的拟合多项式f2(x);
步骤2-3:前后表达式关联求解;输入相邻两帧图像的拟合多项式f1(x)和f2(x),由于两个多项式表示的是视频图像中相邻的连续两帧图像,所以它们之间存在着运动相关性,设两帧之间像素点的位移为d,则有其中
A2=A1
b2=b1-2A1d
c2=dTA1d-b1Td+c1
再将位移d定义为关于x的函数,将对应的A和b定义为
可得像素点x的位移为
d(x)=A-1(x)Δb(x)
输出前一帧图像中每个像素点的位移d(x);
步骤2-4:像素点灰度值替换;输入视频流I以及每一帧图像所对应的位移d(x),在求得视频流I中的每帧每个像素点的光流值之后,对于每个像素点,用该像素点的光流值替换掉原先的灰度值,输出对应的经过替换之后的视频流Iout;
步骤2-5:重叠采样;输入替换完毕之后的视频流Iout,从第一帧图像的第一个像素点开始,依次进行大小为N×N,重叠率为θ的重复采样,输出大小相同且固定的视频采样图像块集合Cell;其中N为空间维度上的采样大小,其值根据图像大小而定,一般情况下取N=24,重复率θ=0.5,即按照上述参数在采样过程中空间维度每隔12个像素点进行一次采样。
3.根据权利要求1所述的基于深度学习和动态聚类的监控视频异常事件检测方法,其特征在于步骤3所述的运动区域筛选,具体如下:步骤3-1:设定划分阈值;输入采样图像块集合Cell;对集合中所有采样块中的所有像素点的光流向量值进行直方图双峰统计,从0开始按照每隔δ为一个区间的方法,将所有像素点的光流值按照大小,在相应的区间中进行计数统计,得到对应的统计直方图,δ=
0.025;
计数统计完毕之后,得到对应的统计直方图,首先从小到大扫描直方图找到第一个波峰的位置,然后从大到小扫描直方图找到第二个波峰的位置,最后在两个波峰之间找到波谷的位置,将该波谷所对应的统计区间的中间数作为划分阈值ξ,输出该划分阈值ξ;
步骤3-2:采样块运动区域判定;输入划分阈值ξ及采样图像块集合Cell,在得到划分阈值之后,接下来对每一个采样块进行筛选,若采样块中的像素点的光流向量大小大于阈值ξ,则认为该像素点所表示的是运动区域,定义为活跃像素点;若整个采样块中活跃像素点的占比大于P,就认为该采样块表示的是运动区域,否则认定为是背景采样块予以剔除,取P=20%,最后输出包含有运动信息的采样块集合Cellout。
4.根据权利要求1所述的基于深度学习和动态聚类的监控视频异常事件检测方法,其特征在于步骤4所述的深度特征提取,具体如下:步骤4-1:网络第一层学习;输入采样图像块集合Cellout,深度网络的第一层设有L1个滤波器来对输入图像进行滤波;对于大小为N×N的采样图像,首先对其进行大小为k1×k2的密集采样,取k1=k2=5,并将每个采样重新排列成一个列向量xi,那么对于所有的视频采样块,从而得到一个采样向量矩阵X;
然后对矩阵X进行主成分分析,取前L1个最大特征值所对应的特征向量作为滤波器,将其重新排列成k1×k2大小的矩阵;对于每一个滤波器,用它来对输入的图像进行滤波,那么每一张输入的采样图像可以转化成L1张滤波图像Il=I*Wl1,l=1,2,…,L1,一般情况下L1=
4,输出与采样图像相对应的滤波图像Il;
步骤4-2:网络第二层学习;输入第一层滤波图像Il,在网络的第二层中设有L2个滤波器,取L2=4;在第二层中首先对所有图像进行大小为k1×k2的密集采样并列向量化,得到采样向量矩阵X;然后对该矩阵进行主成分分析,选取前L2个最大特征值对应的特征向量作为滤波器,并用其对图像进行滤波;
由于输入的光流图像经过第一层之后输出有L1张滤波图像,所以一张图像在经过深度网络的前两层之后,输出为L1×L2张滤波图像 以及训练好的深度网络Net,其中每一个Ol中对应有L2张滤波图像;
步骤4-3:深度特征输出;输入第二层滤波图像 第三层为网络
的输出层,对于第二层输出的滤波图像,首先对其进行二值化处理,使得结果中只包含有整数和零;对于每一个图像集合 可以将其转化成一个整数矩阵Tl其中H(*)为类单位阶跃函数
经过上述处理,每个像素点都被编码成[0,16)之间的整数;在得到整数矩阵Tl之后,再对该矩阵进行直方图统计,得到一个16维的直方图统计向量;
l
对于所有共L1个图像集合O ,可以得到L1个统计向量,将这些统计向量进行级联操作,输出维度为 的深度特征向量。
5.根据权利要求1所述的基于深度学习和动态聚类的监控视频异常事件检测方法,其特征在于步骤5所述的动态聚类建模,具体如下:步骤5-1:字典集合初始化;首先定义一个大小固定为N的空字典集合,然后将所有采样块的深度特征向量逐一加入到这个字典集合当中,并对字典集合中的每一个向量v进行计数ω(v),一般情况下N=200;
步骤5-2:逐一加入特征向量;输入深度特征向量集合v,将v中的特征向量依次加入到字典集合当中,在加入的过程中,对于每一个新加入的特征向量,如果加入之后字典集合中的向量数量≤N,则直接加入,对应的新加入向量的计数值ω(v)=1;若=N+1,则需要对字典集合中的向量进行合并,使得字典集合中的向量总数维持N不变;
步骤5-3:向量合并;输入待合并的字典集合,若需要进行向量合并,选取字典集合中欧氏距离最小的两个向量va=[x1a,x2a,…,xna]和vb=[x1b,x2b,…,xnb]进行合并;在合并过程中,将ω(*)值小的向量合并到ω(*)值大的向量当中,这里假设ω(va)≥ω(vb),将向量vb合并到va当中去;
对于待合并向量的每一维,比较两个向量在该维度上的取值,按照两者之间的取值大小来进行向量合并,设新向量为v=[x1,x2,…,xn],则有xi=(1-α)xia+α×sign(xia,xib)×xib
并且在合并过程中,合并之后的新向量的计数值ω(v)为
ω(v)=ω(va)+ω(vb)
并将合并之后总数保持为N的字典集合输出;
步骤5-4:码本聚类;输入维护完成之后的字典集合,在将所有深度特征向量依次加入到字典集合之后,最终只剩下N个经过合并之后的向量;对于这N个向量,再运用K均值算法对其进行聚类,将其聚类成k个事件簇码本,每个类代表视频中的一种运动事件,并记录下输出各个事件类中聚类中心与类内向量的最大距离d,其中取k=16。
6.根据权利要求1所述的基于深度学习和动态聚类的监控视频异常事件检测方法,其特征在于步骤6所述的异常事件检测,具体如下:步骤6-1:计算运动事件出现概率;在步骤S105当中,经过K均值聚类,可以得到每个事件簇码本的中心向量,以及该事件簇的最大类内距离;那么对于每个中心向量ci,定义该事件簇的ω(*)值为所有属于该类的向量的ω(*)值之和;
在得到每个事件簇的计数值ω(*)之后,将计数值转化成对应的出现概率p(ci)表示该事件簇码本所对应的运动事件,在训练视频中出现的概率是多少;
步骤6-2:测试视频特征提取;计算完概率之后,对于输入的测试视频,首先按照步骤1进行图像预处理;然后按照步骤2进行采样,得到一系列的采样块;再根据步骤3进行运动区域筛选,剔除掉那些只包含有背景信息的采样块,只对包含有运动事件的采样块进行异常判断;筛选完毕之后,对于那些包含有运动信息的采样块,将采样块图像输入到训练好的PCANet网络当中,运用训练好的PCANet网络来生成相应的深度特征向量,输出对应的测试特征向量;
步骤6-3:异常事件检测;输入测试特征向量,在得到测试采样块的深度特征向量之后,再对其进行异常判断;对于任意一个测试特征向量v,将其与所有事件簇的中心向量ci进行逐一比较,如果向量v与其中某一个中心向量ci之间的欧氏距离小于其对应的最大类内距离di,就认为该采样块所对应的运动是正常的,并转到步骤6-5;如果向量v与所有ci之间的欧氏距离均大于各自的di,就判定为是异常的,并转到步骤6-4;
步骤6-4:二次检测;输入被判定为异常的采样块,对于那些被判定为是异常的视频图像采样块,为了消除掉噪声对检测的干扰,对其进行二次检测;对于每一个异常采样块,判断空间及时间维度上与之相邻的采样块,如果其周围同时拥有M个以上的异常采样块,就将其认定为是异常的;否则重新将该采样块划分为正常的,一般情况下M=2;
步骤6-5:在线更新;输入测试特征向量,在异常判断结束之后,需要将该测试采样块的深度特征向量更新到事件簇码本当中去,使得码本能够随着检测的深入逐渐学习视频中新出现的运动事件;为此需要将测试向量运用步骤5的方法重新对事件簇码本进行更新。