王 强,孙 红
(1.上海理工大学 光电信息与计算机工程学院,上海 200093;2.上海现代光学系统重点实验室,上海 200093)
随着人们社会活动的不断增加,各种公共场所,例如商场、火车站以及大型活动现场等人流量会越来越大,随之而来的安全隐患也越来越严重。而传统的人工观测方法存在局限性,因此对于人群密度估计是一个亟待发展的研究课题,也是实现智能化监控的发展趋势。
本文提出的人群密度估计算法源于经典的基于像素统计特征和基于纹理特征的人群密度估计,将两种方法做了有效的结合并加以改进,并使用改进的Vibe算法进行前景提取,结合了形态学处理和透视矫正,有效降低因人物远近产生的像素点大小差异所造成的误差。同时,也将灰度共生矩阵与纹理特征结合,设定一套人群密度等级划分的标准,克服了原本因人群密度高低变化较快时产生的误差。
人群密度检测多用于公共场合的安全监控,对实时性要求较高。而前景提取至关重要。Vibe 算法具有速度快、鲁棒性强等特点,能快速有效地抑制阴影和照相机晃动对前景检测的影响,更适合于视频监控的前景提取[1]。
前景检测包括:对当前像素与模型中n 个样本的比较得到是否匹配背景模型和统计匹配的样本个数两个步骤。
(1)从背景建模后的第一帧开始,每个像素分别和前一帧中同一位置像素的Vibe 模型中的n 个样本值进行比较,灰度值作差求绝对值,和设定的匹配阈值R 比较,若小于该阈值,就表示找到了一个匹配。
(2)统计匹配像素数目nt(x,y),再与设定的最少匹配数目阈值#min 比较,若累计匹配数目小于该最少匹配数目阈值,则表示该像素是前景点;若匹配数目多于该最少匹配数目阈值,则表示该像素是背景点,如式(1)
其中,Mt(x,y)=1 表示t 时刻(x,y)点判为前景点;Mt(x,y)=0 表示判为背景点,最终得到一个二值化前景检测结果Mt(x,y)[2]。
对于被判定为背景点的像素,要对该像素对应的Vibe 模型及其邻域像素的Vibe 模型更新。
(1)设定更新概率φ,即某像素点被判定为背景点后,有1/φ 的概率更新其Vibe 模型及其邻域模型,从模型中随机选取一个样本,将该像素的灰度值替换该样本。
(2)对该像素点邻域Vibe 模型更新,从该像素n 邻域中随机选取一个像素,将该像素点灰度值替换随机选取的邻域像素值,更新选定邻域像素值的Vibe 模型。
由以上分析可知,Vibe 算法的速度和每帧图像的像素数直接相关,但在监控视频中,有一部分区域是不会出现人群的。因此,本文涉及引入Vibe 算法的同时,将设定感兴趣区域(ROI)来减少Vibe 算法的运算量,进一步提高了处理速度,每一帧的前景提取时间达到了15 ms,对一帧图像的人群密度检测时间达到34 ms,1 s 可识别30 帧图像,达到实时性的要求。
传统的Vibe 算法是利用第一帧完成建模,将像素点和其几个邻域值随机的赋给该像素点对应的n 个样本。该方法导致当第一帧有人影时会将其错认为背景,导致鬼影出现。针对Vibe 算法利用第一帧建模存在鬼影的问题,本设计利用三帧帧差法[3]进行背景的预提取,再进行Vibe 算法建模,有效消除了鬼影,提高了提取的正确率。
此外,Vibe 不能完全消除背景晃动等干扰。因此,本设计在通过对Vibe 算法提取的前景进行形态学后处理,有效过滤了孤立点噪声,并结合透视矫正。具体做法是将前景提取后的二值图像进行形态学开运算和闭运算操作。腐蚀定义为用平坦结构元素对图像处理,所得重合区域的最小值,膨胀对应最大值。开运算操作对图像先腐蚀后膨胀得到,用来消除小物体、在纤细处分离物体;闭运算操作先膨胀后腐蚀得到,用来填充物体内细小空洞、连接邻近物体。两种形态学操作均可起到平滑目标边界且不明显改变其尺寸的效果,图1 给出了形态学处理的流程。
图1 形态学处理流程
如图2 所示,三维空间中物体的大小和二维空间存在着显著的区别,距离摄像头越近的人体在图像中所占图像的像素比例越大[4]。综合考虑速度和性能的关系,设计采用特征权重补偿的方法实现透视矫正,具体做法是:将图像划分为n 个长条,对每个长条内的特征乘以不同的权重系数,通过权重系数实现射影畸形的补偿[5],如图3 所示。最终,前景提取的系统流程图4所示。
图2 三维空间图像差异
图3 三维图形中射影畸形补偿图
图4 前景提取系统流程图
基于像素统计特征的特征提取算法的核心思想是人群密度越高边缘像素点在图像中所占比例越大,人数越多前景像素点占图像比例越高。1995 年,Davies[6]等人提出人群密度和在景人群人数与人群像素统计特征在低人群密度时具有线性特征
其中,m 和n 是待确定的参数;x 为人群的前景像素比例或者边缘像素比例;y 表示在景人数。由此可知,在人群密度等级较低,人与人之间的遮挡现象不严重时,总的边缘像素数与单个人的边缘像素数成比例。总的人群密度等级与当个人所占面积成比例。图5和图6 为本系统在人群密度不同时的前景以及边缘图像。
图5 低密度系统效果图
图6 高密度系统效果图
具体方法是:在前面经Vibe 算法和形态学处理后提取的前景图像中计算前景像素点数,前景像素点数除以ROI 区域像素点数,即可用来表征人群密度等级。
图像的纹理特性[7-8]和人群密度的等级密切相关,且高密度人群在纹理上体现细模式,而低密度人群在纹理上体现粗模式。设计采用灰度共生矩阵来表征图像的纹理特征,灰度共生矩阵是有关灰度变化的二阶统计特征,不仅反映了灰度的分布特性,还反映了具有同样灰度等级的像素之间的位置分布特性。
设一幅数字图像大小为M×N,由f(x,y)表示,灰度级别为Ng,则满足一定空间关系的灰度共生矩阵定义如下[9]
式(3)中,#(x)表示整个集合中元素x 的比例;X1,X2表示像素点的坐标,i 和j 是对应的灰度值,灰度共生矩阵是Ng×Ng的二维矩阵;θ 表示距离为d 的连线与水平方向的夹角。完成灰度共生矩阵的建立后,选取能量(Energy)、对比度(Contrast)、熵(Entropy)、逆差距(Inverse Different Moment)4 个不相关的参数描述人群纹理信息。下面具体描述4 个参数。
能量(Energy):灰度共生矩阵中所有像素点灰度值的平方和,反映了图像纹理的粗细度和灰度分布的均匀程度,定义公式如下
对比度(Contrast):对比度反映了图像中纹理的深浅程度以及图像的清晰度。对比度定义公式如下
熵(Entropy):熵是对图像中纹理的非均匀程度和复杂度的度量,定义公式如下
逆差距(Inverse Different Moment):反应图像纹理局部变化的多少,其定义式如下
实际应用中,选取角度θ 分别为0,45,90 和135共4 个方向,并对每个方向的灰度共生矩阵计算他们各自的熵、能量、逆差距、和对比度4 个特征参数,则一幅图像共有16 个特征参数,这16 个特征参数组成的一个向量便可作为这幅图像的特征向量,用于之后的人群特征分析[10]。
前面提到,像素统计特征在高密度人群估计中效果不理想。因此,将像素统计和纹理特征相结合,首先利用像素统计法对人群进行预估计,当判断当前的人群密度等级过高时就采用提取图像的灰度共生矩阵,采用纹理特征进行人群密度判断,该方法既利用了像素统计法速度快的优点,又能在高密度人群时利用纹理法进行进一步密度的划分,避免了像素统计法在人群遮挡时的缺陷。结合纹理和像素统计特征的特征提取算法的流程,如图7 所示。本设计的总体流程,如图8所示。
图7 纹理特征与像素统计结合算法流程图
图8 系统流程图
文中的测试平台是Core(TM)2Duo 2.4 GHz,代码在Visual Studio、Opencv 上实现,测试项目为前景提取效果测试、程序速度测试、结果正确性测试。
在同一场景下,分别利用混合高斯模型(GMM),Vibe,Vibe+形态学处理方法对前景进行提取。提取效果如图9 所示,左图为GMM 提取效果图,中图为Vibe 提取前景效果图,右图为Vibe+形态学处理提取前景效果图。比较可看出,GMM 误将晃动的树叶认为是前景,单纯的Vibe 提取的前景噪音较多,经形态学处理可较好的去除孤立噪声点。
图9 不同方法前景提取结果
测试所选视频分辨率为320×240,刷新率22 帧/s。
表1 前景提取速度测试结果
表2 人群密度检测速度测试结果
表3 人群运动检测速度测试结果
测试所选视频的分辨率大小为320×240,刷新率22 帧/s,视频长度为9'30″,每隔100 针进行一次截图,共截取125 张,在系统密度等级设定时人数和密度等级设定如表4 所示。
表4 系统密度设定等级与场景人数关系
人为标定和系统识别结果如表5 所示。
表5 系统识别结果表
通过将像素统计和纹理特征的结合,并引入改进的Vibe 算法、形态学处理和透视矫正,较好地实现了人群密度估计。实验结果表明,在运算速度和正确率上都比传统方法有优势。但随着人群密度的增高,结果的准确率会随之下降,如何在高密度人群状态时仍能准确的估计人群密度,这一问题仍有较大的进步空间。
[1] Hecht-Nielsen R.Theory of the back propagation neural network[J].Proceeding of UCNN,1989(1):593-603
[2] 刘洋,薛向阳,路红,等.一种基于边缘检测和线条特征的视频字符检测算法[J].计算机学报,2005,28(3):427-432.
[3] 隋华.交通监控系统中运动目标分类和跟踪研究[J].信息与控制,2003,32(1):61-64.
[4] Wei Qiao.Crowd target extraction and density analysis based on FTLE and GLCM[J].Image and Signal Processing,2009,19(10):51-85.
[5] 唐勇,姜昱明.一种基于彩色图像的运动人体分割方法[J].微电子学与计算机,2006,23(3):70-72.
[6] Davies A C,Jia Hongyin,et al.Crowd monitoring using image processing[J].IEEE Electronic and Communication Journal,1995,7(1):37-50.
[7] 马莉,范影乐.纹理图像分析[M].北京:科学出版社,2009.
[8] Marana A N,Velastin S A.Automatic estimation of crowd density using texture[J].Safety Science,1998,28(3):165-175.
[9] 边肇祺,张学工.模式识别[M].北京:清华大学出版社,2000.
[10]刘小锐,周激流,等.频域基于灰度共生矩阵的人群密度估计[J].计算机信息,2008,24(34):310-314.