复杂监控场景下的人群密度估计与实现

2017-04-18 13:04苏丹陈永生
电脑知识与技术 2016年35期

苏丹+陈永生

摘要:人群密度作为智能监控中的重要特性,逐渐成为人们关注的焦点。针对复杂的监控场景,提出一种结合人群像素特征以及纹理特征的混合人群密度监控算法。首先引入Vibe对提取人群的前景图像,并通过形态学处理消除人物远近造成的误差。然后统计前景像素占整幅图像的比例,最后,对比例上下的两种情况分别用基于像素特征的算法以及基于纹理特征的算法。试验结果表明,该算法可以应对各种密度场景下的人群密度检测,准确率高,计算简单。

关键词:人群密度估计;阈值分割;Vibe小波变换 ;灰度共生矩阵

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)35-0202-04

Crowd Density Estimation Algorithm under Complicated Monitoring Scenarios

SU Dan,CHEN Yong-sheng

(Department of Computer Science,Tongji University, Shanghai 201804, China)

Abstract:As an important characteristic of intelligent monitoring, crowd density has gradually become the focus of attention. Aiming at the complex monitoring scene, this paper proposes a hybrid population density monitoring algorithm which combines the pixel features of the population and the texture features. First, Vibe was used to extract the foreground image of the crowd, and the error caused by the distance between characters was eliminated by morphological processing. Then the proportion of the foreground pixel is calculated. Finally, the two cases are compared with the algorithm based on the pixel feature and the texture feature. The experimental results show that the algorithm can deal with the population density detection under various density scenes, with high accuracy and simple calculation.

Key words:crowd density estimation; threshold segmentation;Vibe; wavelet transform; gray level co-occurrence matrix(GLCM)

隨着城市化进程的加剧,越来越多的人涌入了城市,人群聚集的现象越来越频繁,随之而来的异常群体事件也时有发生。因此,对人群的智能监控逐渐成为一个热点话题,其中人群的密度特征作为一个重要的指标是实现智能监控首要获取的信息,基于视频分析的人群密度估计是对公共安全,人群管理,城市环境设计等有重大意义。基于计算机视觉技术,人群密度估计的方法可以大致分为三类:第一种是基于像素的分析,第二种是基于纹理的分析,以及对象级分析。三种代表性的方法分别如下。

基于像素的方法依赖于图像的局部特征,例如通过背景获得的个体像素通过分析减法模型或边缘检测,以估计密度人群。Davies[1]首先使用基于像素的方法,他们假设人的数量与图像中的前景像素呈线性相关,然后用线性回归算法获取人群的密度。Ma[2]提出了一种基于前景像素数量的方法来估计人群密度,同时由于相机的透视效应还需要引入几何校正,但因为在高密度人群中的严重遮挡人群密度不再与前景像素保持线性关系。所以基于像素的算法在高密度环境下效果不理想。第二种基于纹理分析的算法其基本原理是不同密度的人群呈现不同的纹理特征。例如,Marana[3]假设低密度群体的图像倾向于呈现粗糙的纹理,而高密度的人群图像则倾向呈现精细纹理。通过使用图像的纹理特征描述符进行分析,可以对较高密度的人群做出合理的估计。Rahmanlan[4]做了深入比较三种用纹理分析技术以解决人群密度估计的问题。这三种技术是分别是灰度相关矩阵,Minkowski分形尺寸和切比雪夫正交矩。分析表明基于灰度依赖的方法矩阵或Minkowski分形维数呈现得更好结果。虽然许多研究人员努力使用纹理估计人群密度,他们都面临同样的问题是在较低密度下识别准确率的问题。第三种对象级分析方法尝试在人群中识别个人。该算法经常结合本地和全局的功能来搜索个别目标,并倾向于做更多基于像素的方法或基于纹理的分析。例如,Lin[5]使用Haar小波变换在图像空间搜索具有头像的对象轮廓。Zhao[6]用三维人体模型来表示场景中的人。然而,这些方法很难将个体从密集的人群中分离出来。针对上述问题,本文采用了融合了像素特征以及纹理特征的混合型人群密度估计算法。

1 改进的人群密度估计算法

首先通过Vibe算法以及形态学处理得到高精度的人群前景图像,其次,统计前景像素占全幅图像的比例,对于比例低于事先规定好的阈值的图像,采用基于像素特征的回归算法,对于比例高于阈值的图像,则采用基于纹理特征的回归算法,从而实现对不同密度场景下的人群均能做出准确,快速的估计。此外,为了提升高密度人群密度估计的准确率,采用先将图像通过小波变换再提取灰度共生矩阵的特征参数方法。通过实验比较,所提方法相对于传统方法,具有较高的统计精度。图1是本文方法的流程图。

2 Vibe的人群前景目标提取

ViBe算法[7]是Olivier Barnich等人在2009年提出的背景建模方法。ViBe是一种简单的几乎无参数的像素级背景差算法。它使用像素以及邻接像素创建一个背景模型,通过比较当前像素和背景模型来检测前景模型。首先,每个像素存储在样本集合中,该样本集合的保存的值是每一个像素在其原本位置或者邻接位置的历史值。然后将当前像素值与样本进行比较来确定前景图像。最后,选择样本像素,并以随机的方式更新像素附近位置的值。具体来说,算法的实现可以分为以下三个步骤:初始化背景模型,前景检测和背景模型的更新。

2.1初始化背景模型

模型初始化是创建采集样本的过程。对于常规的算法,需要一定长度的视频序列来初始化模型,这是需要时间成本的。并且如果在视频帧中发生突然变化,也需要一定的时间重新初始化模型。ViBe算法可以不用等待几个帧的时间,利用当前像素及其邻域像素的信息,可以仅使用一个帧的图像来初始化。详细方法如下:假设当时间为t时,[Nt(x)]表示像素点x的N个相邻的像素点。[N0(x)]代表第一帧的邻接像素,[N0(x)]的定义为[N0(x)={n1(x),n2(x),...,nN(x)}],对于每个像素,从N个相邻像素中随机选择一个值,所以样本采集的初始化可以表示为[B0(x,y)={v|v∈Nt(x)}],[B0(x,y)]表示了点在初始化背景模型[(x,y)]处的像素值。这种初始化方式不仅可以减少创建模型的时间,也可以适应背景的突然变化,它只需要取出原来的模型并使用第一帧即可重新建立背景模型。但是它也有缺陷,在初始化的时候,容易引入ghost域,例如如果第一帧有前景目标在图像中,会在初始时将其列为背景像素点。对此,本文采用三帧帧差法[8]进行背景的预提取,再进行模型的初始化,可以有效避免引入ghost域。

2.2 检测前景

当完成初始化背景模型之后,Vibe算法会从第二帧图像开始执行前景检测处理,检测处理包括以下两个步骤,第一步是当前像素是否与基于N个样本集构造的背景模型匹配,第二步是分别对前景样本点和背景样本点的数量进行统计。

对于寻找匹配像素点来说,从第二帧进行每个新像素相对于预设阈值R匹配处理,首先分别计算每个像素与其对应的来自前一帧的N个像素样本之间的灰度值差,然后,根据下面的公式(1)确定每个像素来自前景或者背景:

[f(x,y)=|Nt(x,y)-Nn(x,y)|>R 初始化前景|Nt(x,y)-Nn(x,y)|≤R 初始化背景] (1)

其中[Nt(x,y)]代表了当前帧像素[(x,y)]点的灰度值,[Nn(x,y)]代表了相同位置上的像素点在过去帧上的灰度值。对于图像中每一个新的像素,上述公式都会计算N次,在计算的同时可以得到匹配的像素点的数目,这个数目会与之前设定好的最小阈值进行比较,如果最小阈值小于统计出的数目,则新的像素点会被当成背景像素,如果大于,则会被当成前景像素。在任意时刻t,[Nt(x,y)=1]表示像素点[(x,y)]是前景像素,[Nt(x,y)=0]表示像素点[(x,y)]是背景像素。因此,最终前景检测结果是二值化的结果。

2.3背景模型更新

在前景检测之后,我们需要更新背景模型。为了适应环境的变化和获得准确的检测结果,ViBe算法采用了保守更新方案,可以在背景模型中检测出前景像素[9]。ViBe算法使用随机策略进行选择,每个背景像素都具有1/υ的可能被选择更新相邻的样本集。当然它也具有相同可能性随机被选择更新自己的样本集。此外,当前景像素的计数达到预定阈值,则将其改变为背景像素,并且它也有1/υ的可能性在其样本集合中选择一个像素随机更新模型。

ViBe算法的模型更新由三个步骤组成[10]:首先,当在背景模型当中的一个像素需要更新的时候,样本集合中的新像素值随机替换一个像素。这个无记忆机制确保储存的样本在背景像素模型具有平滑的衰减寿命。其次,并不需要更新每一帧,ViBe算法更新只有1/υ的可能性。这随机定时子采样机制导致延长的时间窗口,其由背景像素模型覆盖。第三,对于需要更新的每个像素,在背景模型中随机的选择其相邻的像素进行更新。通过允许样本在相邻像素之间扩散,同时可以保证背景模型的空间一致性。

2.4形态学处理

对经过Vibe算法处理过的图像进行形态学处理,即进行形态学的开闭操作,击中和不击中变换以及图像的细化,得到更为精确的图像。图2(a)给出是一幅原始的人群图像,图2(b)是混合高斯模型GMM提取的结果,图2(c)是采用的是经过Vibe算法以及形态学处理后的图像,结果显示本文所采用的方法产生的图像更为精确,细节处理的更好。

3 阈值分割机制

现有的研究结果表明:在人群密度低的时候,人群个数和前景像素之间存在递增的关系,通过线性拟合的方式得到人群个数;在高密度的情况下,利用人群的纹理特征来计算人群人数则是更为有效的方式。为了将两种方式集成,采用文献[11]的方式引入阈值分割机制,通过分析数据得到一个较合理的阈值,当前景像素数小于阈值时,采用线性拟合的算法得到人群的人数,当像素数大于阈值时,则采用基于纹理特征的算法。

4 基于像素特征的低密度人群密度估计方法

当前景像素占整幅图像的比例小于预先设定好的阈值时,也就是当人群密度不高时,可以建立出人群个数与前景像素之间的线性关系。具体方法为,将测试图像经过Vibe以及形态学处理之后,引入图像的几何校正算法以消除远近效应并计算出前景像素数,通过之前建立的线性关系模型即可得到人群密度。

5 基于纹理特征的高密度人群密度估计方法

当前景像素占整幅图像的比例大于事先设定好的阈值时,也就是当人群密度较高时,可以通过图像的纹理特征获取人群密度。对此,采用灰度共生矩阵来表示图像的纹理特征[12]。灰度共生矩阵表示的是灰度值分别为i和j的像素对,在方向θ上,相隔距离为d,出现的频率[P(i,j|d,θ)],所有像素對出现频率所组成的矩阵即为灰度共生矩阵。通常情况下,θ取[0?,45?,90?]和[135?]四个方向。同时,为了进一步提高分类的准确率,采用结合小波变换的方式来获取纹理特征。

5.1 小波變换

小波变换可以将原始图像分解为具有不同尺度的一系列子带图像,它们代表了图像的不同细节以及轮廓,因此更容易提取原始图像的结构信息和细节信息。对于人群的图像,通过小波变换,在不同方向的人群图像纹理更突出,特征更加清晰,以提高识别精度,从而实现更好的分类结果。同时,通过小波变换分解图像的能力也减轻了远近效应的影响。在本文中,三级Daubechies小波变换可以用于获得10个子带图像。

5.2灰度共生矩阵

完成灰度共生矩阵的建立之后,本文采用4个方向[(θ=0?,45?,90?,135?)]上的,灰度为16,距离为1的灰度共生矩阵。选取对比度(contrast)、逆差矩(homogenity)、熵(entropy)、能量(energy)4个统计量作为特征参数:

对比度反映了图像中纹理的沟纹深浅程度以及图像的清晰度,公式如下

[Scontrast(d,θ)=i=0L-1j=0L-1(i-j)2f(i,j|d,θ)] (2)

逆差距反应图像纹理局部变化的多少,公式如下

[Shomogenity(d,θ)=i=0L-1j=0L-1f(j,j|d,θ)1+(i-j)2] (3)

熵是反映了图像中纹理的非均匀程度和复杂度,公式如下

[Sentropy(d,θ)=i=0L-1j=0L-1f(i,j|d,θ)lgf(i,j|d,θ)] (4)

能量是灰度共生矩阵中所有像素点灰度值的平方和,反映了图像纹理的粗细度和灰度分布的均匀程度,公式如下

[Senergy(d,θ)=i=0L-1j=0L-1f(i,j|d,θ)2] (5)

具体的计算方式为,对于输入的每一帧图像,经过小波变换之后生成10幅子带图像,然后分别对每一幅子图像计算出对应的灰度共生矩阵,再将所有的特征参数组合成一个160维的特征向量,用于分类处理。

6 基于SVM的密度分类

支持向量机(SVM)的基本原理是:将原始的特征向量映射变换到一个高维的特征空间中,在高维特征空间中求解最优分类超平面,这个映射是一个非线性变换,可以由定义的内积函数来实现[13]。它可以解决各种各样的问题,如局部最小值、非线性、小样本、高维等。SVM的判别函数如式(6)

[f(x)=sgn{i=1lyiα*iK(xi?x)+b*}] (6)

式中:[sgn{?}]为符号函数,括号里的是一个线性函数,[yi∈{1,-1}]是结果标签; [α*i]是最优拉格朗日乘子; [K(xi?x)]为内积核函数; [x]是待分类样本; [xi]是训练样本中的支持向量,[b*]是最优偏置值。待分类样本和训练样本的支持向量通过内积函数的非线性变化,将输入空间转化为高维特征空间,得到最佳的分类面,从而得到最佳的分类结果。

SVM算法开始是用来解决两类对象的分类问题的,但实际情况往往需要解决多类对象的分类问题,对于中等密度以上的人群密度估计,可以把需要处理的情况分为中等密度,高密度以及很高密度三种情况。对此,可以采用一对一的方式,训练时,每选择两个不同类的样本就建立一个二类分类器,则n种类别,需要训练出[C2N]即[(n-1)n/2]种分类器。最后的输出采用投票机制,得票次数最多的类别就是该样本最终的类别,这种方式的优点是计算时间短,Libsvm使用就是一对一模式。显然,这种方法缺点是当类别多时,需要多达[(n-1)n/2]个支持向量机,计算量大。

7 实验结果与分析

本文的测试平台是Core(TM)i5 2.5GHz,代码在Visual Studio,Opencv上实现,基于Polus[13]的研究,根据场景内的人数可将人群密度分为低(0~15人),中低(15~30人),中(30~45人),高(45~60人),很高(>60人)。测试数据来自pets2009数据集,使用该数据集中的样本,首先根据上述5个密度等级训练SVM参数,然后选取5组测试参数,并得到最后的结果。

8 结束语

通过将像素特征以及纹理特征相结合,以及通过Vibe算法和形态学处理前景图像,可以很好的针对不同密度等级的人群做出密度估计,实验结果表明,采用本文所提的方法平均识别准确率在97%以上,可以满足正常视频监控对密度检测的需要,但是在识别速度上,还有进一步提升的空间。

参考文献:

[1]Davies A C, Yin J H, Velastin S A. Crowd monitoring using image processing[J]. Electronics & Communication Engineering Journal, 1995, 7(1): 37-47.

[2] Ma R, Li L, Huang W, et al. On pixel count based crowd density estimation for visual surveillance[C]//Cybernetics and Intelligent Systems, 2004 IEEE Conference on. IEEE, 2004, 1: 170-173.

[3] Marana A N, Costa L F, Lotufo R A, et al. On the efficacy of texture analysis for crowd monitoring[C]// Computer Graphics, Image Processing, and Vision, 1998. Proceedings. SIBGRAPI'98. International Symposium on. IEEE, 1998: 354-361.

[4] Rahmalan H, Nixon M S, Carter J N. On crowd density estimation for surveillance[C]//Crime and Security, 2006. The Institution of Engineering and Technology Conference on. IET, 2006: 540-545.

[5] Lin S F, Chen J Y, Chao H X. Estimation of number of people in crowded scenes using perspective transformation[C]. Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE Transactions on, 2001, 31(6): 645-654.

[6] Zhao T, Nevatia R. Bayesian human segmentation in crowded situations[C]// Computer Vision and Pattern Recognition, 2003. Proceedings. 2003 IEEE Computer Society Conference on. IEEE, 2003, 2: II-459-66 vol. 2.

[7] Barnich O,Van Droogenbroeck M.ViBe:a powerful random technique to estimate the background in video sequences[C]// Proceedings of 2009 IEEE International Conference on Acoustics,Speech and Signal Processing,2009:945-948

[8] 隋華.交通监控系统中运动目标分类和跟踪研究[J].信息与控制,2003,32(1): 61-64.

[9]C.Q. Yin, Y.Q. Luo, and D.Q. Zhang, A novel background subtraction for intelligent surveillance in wireless network[C], Wireless Communications and Networking Conference, 2014: 3017-3021.

[10] S. Brutzer, B. Hoferlin, and G. Heidemann, Evaluation of background subtraction techniques for video surveillance[J],Computer Vision and Pattern Recognition, 2011:1937-1944.

[11]李寅,王贵锦,林行刚.结合局部和全局特征的人群密度估计算法[J].清华大学学报:自然科学版,2013,53(4):542-545.

[12]冯建辉,杨玉静.基于灰度共生矩阵提取纹理特征图像的研究[J].北京测绘,2007(3) : 19-22.

[13] 奉国和.SVM分类核函数及参数选择比较[J].计算机工程与应用,2011,47(3) :

123-124.

[14]Schofer J, Ushpiz A, Polus A.Pedestrian flow and level of service[J].Journal of Transportation Engineering,1983,109(1):46-56.