汤石晨, 陈锻生
(华侨大学计算机科学与技术学院,福建 厦门 361021)
随着视频监控设备的普及,以及硬件和存储设备的改进,目前已经具有采集连续监控视频的能力[1]。随着视频数据的增加,大多数的数字视频监控系统仅仅提供获取、存储和发送视频的基础设备,却把监控的任务交给专门的操作人员。然而,人类实时监控的能力存在很大的局限性,所以一套实时视频监控软件能够很大程度上弥补人类的局限性。人数统计是视频监控领域中一个重要的部分,具有很好的应用前景[2]。
人数统计,不仅在公共安全领域,也在商业决策领域为决策者提供重要信息。例如,在特殊环境中,特定人数也许是一种不寻常或者有潜在危险的情况。此外,在一个大型购物中心的某个区域中监控人数,可以为决策者提供重要信息来源,优化购物中心员工的工作时间,对促销活动做出评估等。
以前的系统使用特殊设备,如旋转门、激光束等,在解决问题上都存在一定的缺陷。基于计算机视觉的方法,在统计通过计数线的两个方向人数的问题上,是一种比较合适的方法。目前,对这方面研究的论文根据不同的分类方式,方法比较多。
图1 3段测试视频中图像示例
根据拍摄方式的不同,有平视拍摄和垂直拍摄。平视方式都是针对人体的某个部分进行特征提取,再根据这些特征进行识别。但是,从人的正面或者侧面获取人体信息,都会因为人与人之间的遮挡对结果产生影响。在文献[3]中,Xiaowei Zhang和Graham Sexton提出安装一个垂直摄像机,这样就可以避免行人间的相互遮挡,也能简化行人模型。根据摄像机设备的不同,有单目识别和多目识别。多目识别[4-5]利用计算机定标获得图像的深度信息,用以进一步识别处理。虽然这种方法可以避免目标相互遮挡,但是由于成本高、算法复杂度高等限制,在很多领域并不适用。根据方向统计方式的不用,也有不同的方法。一般的视频人数统计使用的方法由运动目标的检测与运动目标的匹配和跟踪两方面组成[6-7]。文献[6]中,提取相邻帧中运动区域的质心,利用质心的相对位置进行匹配来实现跟踪,并通过运动轨迹来判断行人的进出。在文献[2, 8-9]中,没有使用传统的跟踪方法,利用光流信息可以较为简单地判断行人的进出。
采用垂直安装的单目摄像头对出入口进行拍摄,并设置一条虚拟计数线,如图1所示。使用 Lucas-Kanade光流算法[10]计算每一帧中该条计数线上各个像素的速度矢量,提取属于同一运动目标的像素来构建运动斑块。并且构建近似俯视行人面积来估计一个运动斑块中的行人个数,通过光流信息得到运动方向,从而来统计进出的人数。实验结果表明,本文方法一定程度上克服了阴影和图像预处理产生的干扰,可以有效地统计进出的人数。
算法流程如图2所示。算法由5部分组成:① 将彩色图像转化为灰度图像,并使用高斯去噪对图像进行预处理;② 利用Lucas – kanade光流算法计算计数线上每个像素的速度矢量;③提取运动斑块;④ 估计运动斑块中的行人个数;⑤ 统计进出的人数。
图2 算法流程图
光流场的计算最初是由Horn和Schunck提出[11]。光流是空间运动物体在观测成像面上的像素运动的瞬时速度。光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”。
假设在t时刻,像素点(x,y)处的灰度值为I(x,y,t);在t+ Δt时刻,这一像素运动到(x+ Δx,y+ Δy)处,灰度值为I(x+ Δx,y+ Δy,t+ Δt)。假设图像沿着运动轨迹的亮度保持不变,即为
将式(1)的左边用泰勒公式展开,忽略二阶和二阶以上的高次项,则有
Lucas-Kanade算法假设在一个小的空间领域Ω运动矢量保持恒定,然后使用加权最小二乘法估计光流。在一个小的空间Ω上,光流的误差定义为
其中,W2(x)表示窗口权重函数,它使领域中心区域对约束产生的影响比外围区域更大。本文中使用 Lucas-Kanade算法计算计数线上的每个像素的速度矢量,其中取其权重都为1。即误差定义式(4)变为
使用最小二乘法估计光流,得式(5)解为
其中,在t时刻的n个点iXΩ∈,
第1步 确定一条虚拟的计数线,并对该帧图像和下一帧图像使用Lucas-Kanade光流算法,计算得到该帧图像中计数线上各个像素的速度矢量。通过像素的速度矢量,计算出各个像素的运动速率和运动方向。L表示长度为l的计数线,每个像素的光流定义为
其中,i=0…1-1,t表示第几帧,p表示像素。 理想状态下,不运动的区域速率为0,但是由于图像质量和预处理等原因,需要设定阈值来选取运动像素(即大于阈值的像素为运动像素,小于阈值的像素为非运动像素,阈值根据经验选定)。
当有行人经过时,每一帧图像在计数线上都有一段行人像素。当行人完全通过后,把所有帧的计数线进行累积。在计数线累计图中都可以捕捉到行人区域,如图3(b)所示。
第2步 根据像素的运动速率和运动方向,使用在线斑块检测算法[2]来提取运动斑块,如图3(c)所示。在运动像素中,时空相邻的两个像素如果具有相似的方向(即两个像素方向之差不超过π/2),则把2个像素归为同1个斑块;如果2个斑块时空相邻且具有相似方向,则把2个斑块合并为1个。每个斑块定义为
其中,N表示属于该斑块的像素个数,O表示该斑块的平均方向,V表示该斑块的平均速率。当一个新像素加入到该斑块中,更新斑块的计算公式如下
图3 斑块图像的形成
通过运动斑块的提取,得到斑块特征的集合。与文献[2]中将斑块特征直接使用多元线性回归模型不同,本文提出构建一种近似俯视运动行人面积作为新特征,并使用线性回归模型来估计运动斑块中行人个数。
行人通过时,可将行人通过该计数线的面积近似看做多个矩形的面积和[8],如图4所示。每个矩形面积表示每一帧中行人通过计数线的面积,即该帧计数线上运动像素个数与平均速率的乘积。根据这个原理,本文提出了一种近似俯视运动行人面积。前一小节已得到斑块的平均速率B(Id).V和平均方向B(Id)·O。由平均方向B(Id).O计算得到速度和计数线法线夹角θ,从而计算出法线上的平均速率B(Id) ·V',其公式如下
近似俯视运动行人面积Area,可以看作所有帧中的矩形累计面积,可以简单表示为该运动斑块的像素个数 ().B Id N与法线上的平均速率B(Id) ·V'的乘积,其公式如下
图4 行人俯视图
本文使用线性回归模型估计斑块中的行人个数,来提高算法的准确性。将近似俯视运动行人面积进行手工标记,并作为训练样本,采用离线的学习方法训练线性回归模型。线性回归模型如下
其中,y表示斑块中估计的行人个数,x表示近似俯视运动行人面积。
统计进出人数,是在得到斑块中的估计人数之后,只需要判断行人的运动方向。在本实验中,平均方向O值为 [0, π/ 2) ∪ ( 3π/ 2, 2π]定义为进,平均方向O值为(π/ 2 , 3π/ 2 )定义为出,平均方向O为π/2或者3π/2说明行人在计数线上移动。在计数线上移动的行人,没有跨过计数线,所以不能被统计。由于前一步骤中,近似俯视运动行人面积的计算,在计数线上移动的行人是不会被记录的,符合算法要求。
为了测试算法结果,搭建了测试平台。实验使用单目网络摄像头垂直悬挂在入口处,如图1(a)所示。采集的视频帧率为25pfs,视频图像分辨率为320×240。实验拍摄环境受部分光照影响,并模拟了单人和多人进出,速度方向各异。本实验使用matlab来验证算法的准确性。
图5 对比图
本实验有3段测试数据,包括同一时间在两个方向上都有行人跨过计数线,单人和多人跨过计数线,并且行人速度不一。图5为实验中测试视频1的某一段斑块图像。
估计算法的准确率,可以通过将检测的进出人数和实际的进出人数比较[2,8],其公式如下
其中,Accuracy表示算法准确率, of ground truth∑和 of predicted∑分别表示实际的进出人数和检测的进出人数。但是,采用上述估计方法,由于算法的错误判断会引起不同时刻进与出人数的错误累加。该方法忽略了统计中存在错误累加相互抵消的问题,降低了准确率的可靠性。所以本文采用混淆矩阵[9]来估计算法准确率。其中,tp(真阳性,即算法准确检测的进出人数),fn(假阴性,即没有被检测到的人数),fp(假阳性,即被错误检测的人数)。混淆矩阵用来估计算法的命中率(precision)和覆盖率(recall),公式为
命中率和覆盖率的组合F,作为对算法质量的评估,公式如下
在实验场景中,对本文方法和文献[2]中的方法做了测试,结果如表1所示。
表1 实验结果
从表1的实验结果可以看出,在视频1和视频 3中,假阳性的计算上,本文方法比文献[2]的方法准确性要高。由于实验数据是在具有一定光照影响下进行拍摄的,所以会产生一些细微的阴影。另外,加上图像预处理的作用,会产生一些噪声斑块。实验结果显示,主要问题存在于运动斑块的平均速度这个特征上。由于文献[2]的方法直接将斑块中的所有特征通过线性回归模型来估计人数,而忽略这些特征之间的相互关系,会削弱平均速度对估计值的影响,造成对噪声斑块的误判。本文方法充分运用了运动斑块特征之间的相互关系,构造出近似俯视运动行人面积作为新的特征来训练线性回归模型,提高平均速度在整个特征集中的重要性,从而减少对噪声斑块的误判。
从图5的对比图可以看出,运动斑块中存在着一些噪声像素,这主要是由于光照原因产生的阴影和图像预处理的干扰。本实验在一定光照影响的环境下,结果没有产生很大影响。可见,本文方法在一定程度上克服了阴影和图像预处理产生的干扰。但是,如果光照阴影影响较大的情况下,光流算法可能会将阴影像素误判成行人运动像素,算法的准确率有待进一步提高。
本文利用垂直悬挂的单目摄像头进行视频拍摄,并设置一条虚拟计数线来对出入口进行人数统计。提出构建近似俯视运动行人面积作为人数统计的特征,并将该特征运用到Lucas-Kanade光流算法的人数统计中。实验结果表明,该人数统计方法在一定光照影响的环境下能够较为准确地统计人数。
[1]Candamo J, Shreve M, Goldgof D B, et al.Understanding transit scenes: a survey on human behavior-recognition algorithms [J]. IEEE Transactions on Intelligent Transportation Systems,2010, 11(1): 206-224.
[2]Benabbas Y, Ihaddadene N, Yahiaoui T, et al.Spatio-temporal optical flow analysis for people counting [C]//Proc. of 7th IEEE International Conference on Advanced Video and Signal Based Surveillance. Boston, USA: 2010: 212-217.
[3]Zhang Xiaowei, Sexton G. A new method for pedestrian counting [C]//Proc. of 5th International Conference on Image Processing and Its Applications.Edinburgh, UK: 1995: 208-212.
[4]Terada K, Yoshida D, Oe S, et al. A counting method of the number of passing people using a stereo camera [C]//Proc. of 25th Annual Conference on Industrial Electronics Society. San Jose, USA: 1999: 1318-1323.[5]Batista J P. Tracking pedestrians under occlusion using multiple camera [C]//Proc. of International Conference on Image Analysis and Recognition (ICIAR)2004.Porto, Portugal: 2004: 552-562.
[6]Yu Shengsheng, Chen Xiaoping, Sun Weipng, et al. A robust method for detecting and counting people [C]//Proc. International Conference on Audio, Language and Image Processing (ICALIP) 2008. Shanghai,China. 2008: 1545-1549.
[7]Antic B, Letic D, Culibrk D, et al. K-means based segmentation for realtime zenithal people counting [C]//Proc. 16th IEEE International Conference on Image Processing (ICIP). Cairo, Egypt: 2009: 2565-2568.
[8]Cong Yong, Gong Haifeng, Zhu Songchun, et al. Flow mosaicking: real-time pedestrian counting without scene-specific learning [C]//Proc. IEEE Conference on Computer Vision and Pattern Recognition(CVPR)2009. Miami, USA: 2009: 1093-1100.
[9]Barandiaran J, Murguia B, Fernando B. Real-time people counting using multiple lines [C]//Proc. of 9th International Workshop on Image Analysis for Multimedia Interactive Services. Klagenfurt, Austria:2008: 159-162.
[10]Lucas B, Kanade T. An iterative image registration technique with an application to stereo vision [C]//Proc. of DARPA IU Workshop. Pittsburgh, USA:1981: 121-130.
[11]Horn B K P. Schunck B G. Determining optical flow [J]. Artifical Intelligence, 1981, 17(1-3):185-203.