一种视频异常行为检测方法
技术领域
本发明属于图像与视频处理技术领域,涉及一种视频异常行为检测方法。
背景技术
视频检测是计算机视觉领域最重要的应用之一,从视频序列中检测出异常事件有相当大的实际意义。其中,基于视频的人群异常行为检测尤为重要,这项技术对区域内人群进行检测,可以将潜在的危险事件检测出来,从而提高相关部门的响应和救援效率。通常人群异常可以分为局部异常和全局异常,其中,局部异常是指人群中某些个体的行为异于其他个体的行为,全局异常事件是指监控区域中多个个体行为异于之前群体的行为。
近年来已经有了多种针对异常检测的模型,其中基于合成稀疏表示的异常行为检测模型是最近比较著名的检测模型之一,其认为正常行为可以通过对正常行为的线性组合来重建获得,达到较小的重建误差,且表示系数较稀疏;而异常行为在借助于正常行为线性组合重建时具有较大的重建误差,且表示系数不具有稀疏性。相比于其他检测模型,这种模型具有较高的检测性能。本发明采用分析稀疏用于检测异常行为,具有更优的检测性能。
发明内容
本发明的目的是为了获得更好的异常行为检测性能,提供一种视频异常行为检测方法。
本发明方法的具体步骤是:
步骤(1)确定光流特征作为行为的特征描述,具体如下:
对每帧图像按从上到下、从左到右划分成互不重叠的大小为M×P的块,从t-(l-1)时刻到t时刻连续取l帧,t≥(l-1),设t是当前帧时刻,得到大小为M×P×l的局部时空块b(i,j),1≤i≤M,1≤j≤P,每一块的时间长度是l帧,对各块进行目标检测;
提取当前时空块b(i,j)的光流值vop,按阈值Tv分类,如果vop≤Tv,将光流方向θ∈[0,2π]按45°为间隔,统计像素直方图,获得8个容器;如果vop>Tv,将θ也分为8个容器;得到位置(i,j)的d维局部特征向量y(i,j),d=(8+8)×(l-1);
步骤(2)训练分析稀疏字典,具体如下:
按步骤(1)获得t-(l-1)时刻到t时刻之间训练视频的局部特征向量y(i,j),令x1(i,j)=y(i,j),1≤i≤M,1≤j≤P;
按步骤(1)获得t-l时刻到t+1时刻之间训练视频的局部特征向量y(i,j),令x2(i,j)=y(i,j);
用相同方法依次获得后续时刻的局部特征向量,直到获得tend-(l-1)时刻到tend时刻之间训练视频的局部特征向量y(i,j),令Nij是不同时刻b(i,j)的所有特征向量个数,tend是训练视频结束时间;这样,获得了一系列局部特征向量xk(i,j),1≤k≤Nij,对所有xk(i,j)构成的向量集合采用K均值聚类算法进行聚类,获得K类训练样本,其类中心集合为{μ1,μ2,...,μK},利用序列最小特征值方法为每一类训练一个分析稀疏字典,得到字典集合为{Ω1,Ω2,...,ΩK};
步骤(3)重构测试视频时空块特征向量,具体如下:
按步骤(1)获得测试视频当前时刻的局部特征向量y(i,j),令yT(i,j)=y(i,j),1≤i≤M,1≤j≤P,T表示测试视频;将yT(i,j)简记为yT,计算yT与类中心集合中各类中心的欧氏距离,将具有最短欧氏距离的类中心所对应的分析稀疏字典Ωk(i,j)重构yT,其中1≤k(i,j)≤K,重构表达式为:
式(1)中,λ和η是平衡系数,k(i,j)是与yT具有最短欧氏距离的类中心的序号,是对yT重构获得的估计值,xT是对yT重构的理论值,(xT)q是以xT所在位置为中心的4邻域内符合||xT-(xT)q||2≤th的时空块特征向量,q是1~4的整数,th为预设的阈值,h为大于0的权重控制因子常数,||·||1和||·||2分别是1-范数和2-范数操作符;
因为xT未知,导致(xT)q未知,式(1)是病态的,以(yT)q近似表示(xT)q,(yT)q是以yT所在位置为中心的4邻域内符合||yT-(yT)q||2≤th的时空块特征向量;
式(1)变为:
其中
式(2)的求解过程为:
输入:yT;
初始化:设置最大迭代次数Max_iter,误差e,m=0,(xT)(m)和z(m),m为迭代次数,(m)表示第m次迭代;
计算和
循环:
其中“./”和“|·|”分别是逐个元素的相除和逐个元素的求绝对值操作符,eig(·)是获取特征值操作符,分别表示Ωk(i,j)和的转置;
如果||(xT)(m+1)-(xT)(m)||2<e,循环结束;否则,m=m+1,如果m>Max_iter,循环结束,否则重复执行循环体;
输出:如果||(xT)(m+1)-(xT)(m)||2<e,迭代结束输出yT重构获得的估计值如果m>Max_iter,迭代结束输出yT重构获得的估计值
步骤(4)判别,具体如下:
计算当前测试样本特征向量yT的分析稀疏比
如果
则当前时刻局部时空块中的目标的行为判为异常,即局部异常,ε为预设定的阈值;
当判定视频中的一帧是否存在异常行为时,采用:
式(5)成立,则该帧存在异常行为,即全局异常,否则不存在异常行为;其中,采用式(3)计算获得的分析稀疏比大于ε则置下标为a,表示局部时空块中的目标的行为异常,小于等于ε则置下标为n,表示局部时空块中的目标的行为正常;集合A和N分别表示由所有判为行为异常的时空块的位置集合和所有判为行为正常的时空块的位置集合;δ为预设定的阈值。
本发明方法采用分析稀疏字典重构目标时空块特征,并根据重构获得的时空块特征向量的分析稀疏比判别行为是否异常,与基于合成稀疏的异常行为检测方法相比,基于分析稀疏的异常检测模型提高了检测率。
具体实施方式
以下结合实施实例对本发明加以详细说明。
一种视频异常行为检测方法,具体步骤如下:
步骤(1)确定光流特征作为行为的特征描述,具体如下:
对每帧图像按从上到下、从左到右划分成互不重叠的大小为M×P的块,从t-(l-1)时刻到t时刻连续取l帧,t≥(l-1),设t是当前帧时刻,得到大小为M×P×l的局部时空块b(i,j),1≤i≤M,1≤j≤P,每一块的时间长度是l帧,对各块进行目标检测;取M=P=16,l=6。
提取当前时空块b(i,j)的光流值vop,按阈值Tv(取Tv=1.1)分类,如果vop≤Tv,将光流方向θ∈[0,2π]按45°为间隔,统计像素直方图,获得8个容器;如果vop>Tv,将θ也分为8个容器;得到位置(i,j)的d维局部特征向量y(i,j),d=(8+8)×(l-1)。
步骤(2)训练分析稀疏字典,具体如下:
按步骤(1)获得t-(l-1)时刻到t时刻之间训练视频的局部特征向量y(i,j),令x1(i,j)=y(i,j),1≤i≤M,1≤j≤P;
按步骤(1)获得t-l时刻到t+1时刻之间训练视频的局部特征向量y(i,j),令x2(i,j)=y(i,j);
用相同方法依次获得后续时刻的局部特征向量,直到获得tend-(l-1)时刻到tend时刻之间训练视频的局部特征向量y(i,j),令Nij是不同时刻b(i,j)的所有特征向量个数,tend是训练视频结束时间;这样,获得了一系列局部特征向量xk(i,j),1≤k≤Nij,对所有xk(i,j)构成的向量集合采用K均值聚类算法进行聚类,获得K类训练样本,其类中心集合为{μ1,μ2,...,μK},取K=16。利用序列最小特征值方法为每一类训练一个分析稀疏字典,得到字典集合为{Ω1,Ω2,...,ΩK}。
步骤(3)重构测试视频时空块特征向量,具体如下:
按步骤(1)获得测试视频当前时刻的局部特征向量y(i,j),令yT(i,j)=y(i,j),1≤i≤M,1≤j≤P,T表示测试视频;将yT(i,j)简记为yT,计算yT与类中心集合中各类中心的欧氏距离,将具有最短欧氏距离的类中心所对应的分析稀疏字典Ωk(i,j)重构yT,其中1≤k(i,j)≤K,重构表达式为:
式(1)中,λ和η是平衡系数,k(i,j)是与yT具有最短欧氏距离的类中心的序号,是对yT重构获得的估计值,xT是对yT重构的理论值,(xT)q是以xT所在位置为中心的4邻域内符合||xT-(xT)q||2≤th的时空块特征向量,q是1~4的整数,th为预设的阈值,h为大于0的权重控制因子常数,取th=60,h=65,||·||1和||·||2分别是1-范数和2-范数操作符;
因为xT未知,导致(xT)q未知,式(1)是病态的,以(yT)q近似表示(xT)q,(yT)q是以yT所在位置为中心的4邻域内符合||yT-(yT)q||2≤th的时空块特征向量;
式(1)变为:
其中
式(2)的求解过程为:
输入:yT;
初始化:设置最大迭代次数Max_iter,误差e,m=0,(xT)(m)和z(m);m为迭代次数,(m)表示第m次迭代;取Max_iter=500,e=0.01。
计算和
循环:
其中“./”和“|·|”分别是逐个元素的相除和逐个元素的求绝对值操作符,eig(·)是获取特征值操作符,分别表示Ωk(i,j)和的转置,λ=5,η=0.2;
如果循环结束;否则,m=m+1,如果m>Max_iter,循环结束,否则重复执行循环体;
输出:如果迭代结束输出yT重构获得的估计值如果m>Max_iter,迭代结束输出yT重构获得的估计值
步骤(4)判别,具体如下:
计算当前测试样本特征向量yT的分析稀疏比
如果
则当前时刻局部时空块中的目标的行为判为异常,即局部异常,ε为预设定的阈值,取ε=1.775;
当判定视频中的一帧是否存在异常行为时,采用:
式(5)成立,则该帧存在异常行为,即全局异常,否则不存在异常行为;其中,采用式(3)计算获得的分析稀疏比大于ε则置下标为a,表示局部时空块中的目标的行为异常,小于等于ε则置下标为n,表示局部时空块中的目标的行为正常;集合A和N分别表示由所有判为行为异常的时空块的位置集合和所有判为行为正常的时空块的位置集合;δ为预设定的阈值,取δ=0.275。
当判定视频中的一帧是否存在异常行为时,采用式(5)判别,其中取δ=0.275。