APP下载

基于光流法优化的人群异常行为检测研究

2023-06-16杨江涛许新云

现代电子技术 2023年12期
关键词:光流角点像素点

陈 辛,杨江涛,许新云

(太原科技大学 电子信息工程学院,山西 太原 030024)

0 引 言

社会在快速的发展,人口的密度也急剧增长,市内的地铁站、公园、游乐场等公共场所越来越多,人群聚集场景的安全隐患也随之增加,给城市建设和公共安全带来了极大的挑战。由于现在的监控摄像头画面不清晰,有关人员需要长时间查看监控画面,难免出现错误,因此出现了智能视频监控,其可以实时监控人群的异常行为并且及时发出警告信息,具有重要的研究意义[1]。

智能监控技术通过结合图像处理、模式识别和计算机视觉等各个领域的技术,使用计算机的图像处理功能分析画面中的场景信息,自动识别和跟踪目标,并进行实时检测[2]。随着计算机技术的不断发展,国内外的研究人员在人群行为异常检测方面做了大量的工作,取得了一定的成果。一般情况下,人们通常将没有遵守某一个场景中要求的个人或者群体定义成在该场景下的异常人群,比如在人行道上行驶的机动车辆等,这些异常人群均是由人工根据不同的场景进行定义的,相关的方法主要分为两大类。第一类是从人群整体的运动方向提取一些特征,比如光流、角点、梯度等,通过特征分类实现全局异常检测,例如:最传统的方法使用HOG 梯度直方图,最后利用SVM 分类器分类识别所提取的特征;任晓芳等人使用梯度方向直方图和光流直方图特征识别行为动作,基于能量最小二乘双分界面支持向量机完成分类识别[2];熊饶饶等人通过LK 光流算法提取人群的运动特征,使用SVM 分类器进行训练和预测以判断是否有异常行为[3];李新等人利用Farneback 光流算法获取前景运动图像,通过计算瞬时能量设定阈值来判断异常行为的发生[4]。另外一类是基于局部目标检测的方法,运用动态模型如社会力模型、直方图模型、动态纹理等对人群进行建模。R. Colque 等人提出光流方向、幅度和熵的直方图模型判断人群的异常行为[5];R. Mehran 等人使用社会力模型对人群行为进行描述,并运用局部时空立方体模型构建单词袋来进行群体异常行为的检测[6];R. Raghavendera 使用粒子群优化的方法对社会力模型进行改进,来检测群体异常行为[7]。

目前人群异常行为的算法依旧检测率不高,还存在着实时性和普用性不足的缺陷,主要的原因在于:异常事件一般发生的比较突然,在短时间内就造成了影响,这需要算法实时性很高,可以及时地自动报警,但是现在的支持向量机等算法比较复杂,实时性需要提高;二是摄像头大多是在复杂的场景下工作,人群的异常行为多样化而且不可控,导致建立的人群异常行为检测模型不能普遍适用。为此,本文提出一种改进LK 光流算法,通过求解马尔科夫模型的能量函数来判断是否有异常行为发生。主要的算法步骤为:首先基于ORB 算法进行改进,提升匹配效果;再结合金字塔LK 光流算法获得光流场直方图的变化;最后使用马尔科夫模型计算人群的运动能量,以此来检测异常行为的发生。

1 改进ORB 算法

1.1 ORB 特征点

ORB 特征点算法是2011 年由Roblee 等人提出[8],能够快速进行特征点提取和描述,是主要由加速角点分割测试特征检测器和二进制鲁棒性独立基本特征描述符两者结合的特征点检测算法。

1.1.1 ORB 特征点提取

ORB 第一步是利用FAST 角点检测提取特征点[9]。FAST 算法是选取M个像素点,设其灰度值为Mp,以点M为圆心选取周围的16 个像素点,计算该像素点与16 个像素点的灰度差值,判断其灰度值比Mp+T大或者比Mp-T小,T为阈值,根据经验设置,如在该像素点M有连续存在x个像素点满足该条件(x一般取12),则该像素点M为检测的角点。因为环境噪声的影响,灰度变化大的角点很容易受到干扰,所以需要选择曲率变化大的特征点,然后利用Harris 法对得到的FAST 角点按照响应值的大小顺序进行排列,选取前N个曲率较好的角点,作为最终的特征检测结果。

最后,给FAST 特征点添加方向因子来实现特征点的旋转不变性,其具体方法是:以特征点作为坐标原点,在邻域H内计算质心的坐标;之后以此特征点作为起点,质心作为终点,构造方向向量,这个向量就是特征点方向。具体计算过程如下:

定义邻域H的图像为:

式中:I(x,y)是图像的灰度值;a、b为矩的阶次。利用图像矩来计算质心坐标为方向因子为图像块的中心到质心的向量:θ=arctan(m01,m10)。

1.1.2 ORB 特征点描述符

ORB 第二步是利用BRIEF 描述符描述特征点,即用0 与1 描述特征点,定义邻域灰度均值的测试标准τ为:

式中,I(x)和I(y)表示点x和y处的灰度值,具体过程是先在特征点P的S×S区域内随机选取像素点记为(xi,yi),i一般取1~128。根据式(2)生成的二值化构成BRIEF 描述符f128(p),表示为:

然后将第一步的方向向量θ作为特征描述符的主要方向,让其具有旋转不变性;最后用贪心算法从计算出来的所有像素块中选择n个相关性最低的有BRIEF特征的FAST 角点作为最终的ORB 特征点。

1.2 改进ORB 特征点

ORB 算法具有旋转不变性,不具有尺度不变性,很难应对智能监控系统的多尺度、多区域的问题,因此本文通过改进特征点提取这一部分的方法来获得尺度不变性。

1)结合SURF 算法建立Hessian 矩阵[10]。若视频帧M使用函数f(x,y)表示,则其Hessian 矩阵表示为:

但是图像还会存在噪声,会导致像素畸变,因此使用高斯滤波进行处理,则此时的某一点N(x,y)在尺度σ处的Hessian 矩阵H为:

此时的Hessian 矩阵H的判别式为:

因为高斯滤波的高斯核是正态分布,由内往外系数越小,计算量越大[11],故使用盒式滤波器D来代替高斯滤波器L,具体样式如图1 所示,以提高运算速度。

图1 盒式滤波器D 来代替高斯滤波器L

图1 的黑色区域的权值为-1,白色区域的权值为1,其他地方没有权值。由图1 可知,盒式滤波器不能完全代替高斯滤波器,仍存在误差,一般采取的方法是加入误差补偿系数η(通常是取值0.9),所以此时的Hessian矩阵H的判别式应该为:

将此点的Det(H) 与图像域、尺度域的所有相邻点进行对比,假如Det(H) 是所有相邻点里面的最大值或最小值时,就保留为初步特征点。最后通过调节盒式滤波器的大小,重复进行上面步骤,可以得到不同尺度的响应图,这时的初步特征点具有尺度不变性。

2)筛选初步的特征点。原始ORB 算法中采用Harris 法筛选特征点,这样会使得选择的是灰度变化较大的特征点而不是曲率大的特征点,因此本文使用Shi-Tomasi 算 法 对 特 征 点 进 行 筛 选。Shi-Tomasi 算 法是指图像中垂直方向上灰度和梯度的变化最大的像素点[12]。

假设图像上有一点A(x,y),它的灰度值为I0(x,y),以点A为中心,建立一个M ×M的窗口,并将窗口平移(Δx,Δy),到达点B,其灰度值为I1(x+Δx,y+Δy),那么就产生了灰度变化的数学模型E(Δx,Δy),表示为:

式中,w(x,y)为高斯权重窗口的函数。然后,进行泰勒级数展开,得:

式中:Ix、Iy分别是图像灰度在x和y方向的导数;自相关矩阵N存在两个特征根λ1、λ2,所以响应函数R=min(λ1,λ2)大于较小特征值中的最大值T,即T为阈值时,可以判定像素点A(x,y)是Shi-Tomasi 角点。

3)依旧采用原始ORB 算法中的灰度质心法给最终的特征点添加方向因子。

2 LK 光流算法及检测

2.1 金字塔LK 光流法

光流表示三维空间上的物体在它二维平面上的瞬时速度,光流场可以比较好地反映物体的运动速度、加速度、能量等运动特性,因此经常用于运动能量的特征提取,在人群异常行为检测方面一般是用光流法描述场景中真实运动目标的特征。

LK 光流算法基于三个假设:

1)亮度恒定不变;

2)小运动;

3)相邻点运动是相似的。

根据前两个假设条件,一个像素点的第一帧光照度为I(x,y,t),在下一帧t+dt时,该像素点的光照度为I(x+dx,y+dy,t+dt),则可以得到:

把式(11)进行一级泰勒展开得:

公式(12)中ο(n2)是高阶无穷小量,可以忽略,公式同时消去I(x,y,t)并除去dt,可以得到:

公式(13)可以简写为:

式中使用最小二乘法得到的解就为该像素点的光流。

但是由于上述的三个假设条件很难同时满足,使得LK 光流法具有局限性。为了满足光流的假设条件,提高解算精度,本文使用金字塔LK 光流算法[13]来把大运动转换成小运动。设图像金字塔有n层,第0 层代表的是图像的原始分辨率a·b,第1 层是通过低通滤波器在第0 层的基础上得到的,第1 层的图像分辨率则为第2 层是第n-1 层是n一 般取3。金字塔LK 光流示意图如图2 所示。

图2 金字塔LK 光流示意图

金字塔LK 光流算法具体流程如下:

1)构建图像金字塔,输入2 个视频帧;

2)将原始帧图像输入到金字塔的第0 层,而后每帧图片在金字塔的第1 层开始,图像长和宽缩小为上一层的1 /2,直到缩小至顶层ln;

3)从顶层ln开始计算光流值,并把其作为第ln-1层的初始光流值进行迭代,直至计算到第0 层的光流值。

2.2 异常行为检测及其定位

在一般情况下,人群中有异常行为发生时,则该场景下的人群运动状态就会发生剧烈的变化,而人群的运动变化会导致人群运动能量的变化,因此可以根据群体运动的能量变化来判断异常行为的发生。本文使用马尔科夫随机场(MRF)计算群体能量变化,通过上述的金字塔LK 光流法得到每个子区域光流场幅值,求解MRF模型的能量函数,判断人群是否出现异常,具体流程如图3 所示。

图3 人群异常检测事件流程

3 实验结果与分析

为了验证本文方法的检测效果,在Windows 操作系统Matlab 2018a 中编写测试程序,使用加州大学圣迭戈数据集(UCSD Anomaly Dataset)进行实验。该数据集包括Ped1 和Ped2 两个由固定高度摄像头俯瞰行人角度的场景,视频帧长大约为200 帧,Ped1 中视频分辨率是158×158,是人群垂直方向的位移运动;Ped2 视频分辨率是360×240,是人群水平方向的位移运动。测试的样本有一个或多个异常行为,常见的异常行为有小汽车、自行车和滑板等行为。本文利用受试操作特性曲线(Receiver Operating Characteristic, ROC)来检测算法最终的实验效果,该曲线能够反映文中方法的准确性和鲁棒性。ROC 曲线上的点是根据算法的真正率与假正率决定的。首先对数据集中的一个测试集进行分类,把含有异常事件的视频帧标记为正样本,没有异常事件的视频标记为负样本;然后使用本文的人群异常检测算法对该视频进行检测,把检测结果是正确的定义成检测正,检测结果是错误的定义成检测负。真正率TPR 和假正率FPR 计算公式分别为:

样本分类检测结果如表1 所示。基于表1 不断更新阈值,可以计算出多组真正率(TPR)和假正率(FPR),之后以假正率为横坐标,真正率为纵坐标,将多组的点连接起来,就可以得到一条经过原点(0,0)和(1,1)逐渐递增的ROC 曲线。计算ROC 曲线面积AUC,AUC 的值越接近1,表示该算法的检测效果越好。

表1 样本分类结果

根据以上的定义,使用本文的检测算法在UCSD 数据集中的Ped1 和Ped2 两个场景中分别进行单目标与多目标的检测及定位。场景一是Ped1 中骑自行车的情形;场景二是Ped1 中两辆自行车交汇的情况;场景三是Ped2 中玩滑板的学生穿过人群的情形;场景四是Ped2中一辆自行车一辆汽车共同行驶的情况。这四种场景的测试结果如图4~图7 所示。

图4 场景一

图5 场景二

图6 场景三

图7 场景四

从图4~图7 的四种场景的图b)来看,本文算法能够较好地定位出异常区域,也能识别出正常行人;图c)中ROC 曲线可以进一步衡量该算法的性能,在低分辨率、多目标和单目标的情况下都能有较好的效果。

在UCSD 数据集上进行具体的量化对比,把本文的改进算法的ROC 曲线面积AUC 值与基于稀疏表示的方法(Sparse)和社会力模型方法(Social Force Model, SF)的AUC 值进行对比,结果如表2 所示。

表2 UCSD 数据集不同算法比较

从表2 中可以看出,三种算法中Ped2 的AUC 值普遍比Ped1 略高些,其主要原因是:Ped1 场景是人群垂直方向上的运动,每帧的人群具有一定的透视畸变,人群重叠,相对于Ped2 的场景更难进行检测判断。本文方法和其他两种算法相比具有很好的优越性。

4 结 论

为了检测人群中的异常行为,本文提出一种改进ORB 光流算法。该算法的主要步骤是:先采用改进的ORB 算法对视频帧图像进行预处理;然后在特征提取中结合SURF 算法建立Hessian 矩阵,采用盒式滤波器进行图像降噪,使用Shi-Tomasi 算法筛选特征点,送入金字塔LK 光流法进行匹配,提高检测速度和精度;最后计算MRF 模型的能量函数,判断异常行为是否发生,并进行异常区域定位。

实验结果表明,本文的改进算法有较好的检测效果,在ROC 曲线和AUC 值可以证明,该算法在不同的场景中性能和精度方面都有不错的体现。但是该方法还有些局限性,如对于运动迟缓或不移动的目标可能会存在漏检;在更为复杂的环境中,比如人群中打斗、逃生等不能更详细的识别判断,这是以后要重点优化的方向。

猜你喜欢

光流角点像素点
利用掩膜和单应矩阵提高LK光流追踪效果
基于局部相似性的特征匹配筛选算法
基于5×5邻域像素点相关性的划痕修复算法
基于物理学的改善粒子图像测速稳健光流方法研究
基于FAST角点检测算法上对Y型与X型角点的检测
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于边缘的角点分类和描述算法
基于圆环模板的改进Harris角点检测算法
融合光流速度场与背景差分的自适应背景更新方法