基于RGB-D相机的实时人数统计方法
2014-08-03刘宏立马子骥
张 华,刘宏立,徐 琨,马子骥
湖南大学 电气与信息工程学院,长沙 410082
基于RGB-D相机的实时人数统计方法
张 华,刘宏立,徐 琨,马子骥
湖南大学 电气与信息工程学院,长沙 410082
1 引言
人数统计系统在智能监控中有着广泛的应用价值。地铁站和火车站等重要公共场所的人数统计为控制客流提供精确的客流数据管理;公交车,电梯口等区域的客流量统计对公共安全防范和交通配置都有着重要的参考价值;大型超市和商场等企业在人数统计的基础上进行相关商业分析和数据挖掘可以辅助企业指导市场决策。因此,潜在的社会意义和市场应用价值使人数统计成为当前国内外智能视频监控领域的研究热点之一。
采用计算机视觉的人数统计方法主要分为2类:(1)基于可见光的人数统计;(2)基于深度传感器的人数统计。基于可见光的人数统计具体可分为3种[1]:基于检测的计数[2]、基于聚类的计数[3]和基于回归的计数[4]。基于检测的计数利用图像的局部特征训练出的检测器检测图像中是否有行人;基于聚类的计数采用非监督的学习方法把运动场或者视觉特征相似的对象的相干特性轨迹聚类成一个运动的子集,通过统计子集的数量进行行人计数;基于回归的计数通过机器学习直接从底层图像特征到人群密度的映射关系来统计行人数目。这几种方法在实际应用中容易受到运动人群遮挡、随身物干扰、光线变化和目标纹理变化等环境因素影响,导致计数准确率低和鲁棒性差。基于深度传感器的人数统计主要采取的技术有飞行时间法(Time-Of-Flight,TOF)[5]、激光扫描和结构光3种,前2种设备价格昂贵且精度没有采用结构光技术的RGB-D传感器高,后者随着微软Kinect的推出逐渐成为研究的热点。面对不同的应用需求,基于RGB-D传感器的人数统计方法的视角可分为顶视[6-8]和斜视[9-10]2个方向,顶视安装简单,能直观地解决人群遮挡问题。
本文受模拟降水的分水岭算法[11-12]启发,提出了一种新的D-RWS人数统计算法。传统的模拟降水分水岭变换目的是找到分水岭,本方法处理的对象是包含行人的深度图,目的是通过模拟降落的雨滴在深度地形图找到指示行人头部区域的集水盆地。在顶视深度图上采用模拟降水的思路,解决了ROI分割的难题。本方法相对传统基于视觉的方法具有以下优点:(1)算法复杂度低,实时性能好,统计准确率高;(2)鲁棒性强,不受人群遮挡、光照变化、阴影等环境因素影响。
2 问题分析
本方法采取的RGB-D设备为以色列3D传感技术公司PrimeSense推出的PrimeSensor,其输出深度图像分辨率为640×480,最大输出帧率为60 f/s[13]。设备安装如图1(a)所示 ,使用垂直向下视角拍摄行人获取顶视深度图。不失一般性,行人的头部相对身体其他部位总是距离PrimeSensor最近,即行人的头部深度值是局部最小值。由图1(b)和实际视频分析可知,人群在拥挤时只有人头之间不存在遮挡,由此定义ROI为深度图中行人的头部区域,检测行人的数目等同于检测行人头部的数目。准确检测分割出行人的头部后,对头部质心进行简单的跟踪和轨迹判断可实现人数统计。系统的示意图如图1,其中图1(a)是PrimeSensor顶视安装场景,图1(b)是PrimeSensor获取的RGB图和原始深度图,深度图的像素值等于以毫米为单位的深度值,图1(c)是本文的总体流程图。
图1 系统概述
3 D-RWS算法
3.1 算法准备
3.1.1 深度图像修复
PrimeSensor深度摄像头用CMOS红外传感器采集由投射器投射出的散斑结构光,交由PS1080芯片进行计算后得到最终的景深数据。基于主动结构光测量方法获取的深度图在目标的边缘区域和平滑区域存在空洞现象,如图1(b)黑色区域所示(像素值为0),这些丢失深度信息的空洞区域会影响ROI分割效果,因此需对其进行修复。
本文从实时性考虑出发提出了一种简单的从图像边缘到中心逐层填充像素的自适应开关均值滤波处理方法,避免了传统非线性滤波算法[14]复杂度大的问题。首先判断深度图I的像素点是否为噪声点,将空洞像素的坐标并放入集合Φ,非空洞区域的像素值保持不变。然后以Φ中的元素为中心,求出边长L=2BRsize+1的矩形滤波窗内非空洞像素的个数,如式(1)中N所示。最后按式(2)求得滤波输出值V,即矩形窗内非空洞像素的平均值。保存本次计算的结果并作为有效像素参与Φ中下个空洞像素的均值填充计算,直到深度图中没有空洞像素,修复后的深度图如图2(c)所示。实验效果表明此轻量级的自适应开关均值滤波修复方法能达到良好的修复效果。
3.1.2 前景提取
视频中运动目标的检测常用背景差分法,背景差分法具有实时性能好和目标检测准确的优点,其最关键的部分是背景建模。经典的背景模型包括混合高斯分布模型(Mixture of Gaussian,MoG)[15-16]、Kalman滤波器模型和视觉背景提取(Visual Background Extractor,VIBE)模型[17]。本文采取精度和鲁棒性强的混合高斯背景建模方法,使用3个高斯分布模型对视频中每个像素点的像素值序列建模,获取的前景二值图如图2(a)所示。受摄像机噪声的影响,图2(a)存在大量杂散小块噪声区域,采用融合面积滤波的形态学开运算处理,具体步骤如下:
(1)执行形态学腐蚀操作,消除杂散的噪点区域。
(2)进行区域面积滤波,即对腐蚀后的二值图进行4连通标记,统计被标记的区域个数和每个区域的像素个数,滤除区域像素个数小于阈值的小区域。
(3)对面积滤波后保留的大区域进行形态学膨胀操作,得到去噪后平滑的前景二值图,如图2(b)所示。
(4)将去噪后的前景二值图2(b)与前景修复的深度
P=1图2(c)相乘,得到场景中的行人区域即前景深度图,如图2(d)所示。
对分辨率为160×120的视频混合高斯背景建模实验每帧的处理时间约10 ms,能够适应复杂的场景变化,可有效、快速地提取前景目标。
图2 前景提取过程
3.2 ROI分割
根据深度图像的地形学理解,深度值高的地方为山脊,深度值低的地方为盆地,随机降落在地貌模型上的雨滴受重力的影响由地势高的地方向地势低的方向流动。如图3所示,假设依次降落的理想雨滴大小相等且互不影响,当离散雨滴随机降落在模型上,必将沿着山坡最陡峭路径流入谷底,形成一个“集水盆地”。“集水盆地”就是深度图中行人的头部区域,从而实现了ROI的粗分割。设 I(x,y)为前景区域(x,y)位置的深度值,M(x,y)为(x,y)位置的水滴数量。为遵循地形学约束保持集水盆地水面平坦,M(x,y)满足:
如果 I(p1)≤ I(p2),则 M(p1)≥ M(p2),且 I(p1)+M(p1)≤I(p2)+M(p2)。
在此约束下,通过M(x,y)的分布可间接找出I(x,y)的局部极小值区域。
图3 模拟降水示意图
3.2.1 模拟降水分水岭过程
ROI分割详细过程见图4。算法开始时先初始化雨滴分布函数 M(x,y)为0。然后用前景最大像素值的2倍填充背景区域,以方便处理前景与背景过渡的边界区域。
图4 ROI分割流程图
在整个模拟降水分水岭过程中降落的雨滴总数定义如式(3):
式中,sizef为前景区域的像素个数,K是控制雨滴总数的常数取经验值50。所有雨滴随机降落在前景区域,服从均匀分布。降落在同一个小区域的雨滴走过的路径和最终停留的局部极小值区域基本相同,为加速算法执行,设迭代时每次降落RN个雨滴。整个算法执行过程可分为外循环和内循环,外循环中雨滴按均匀分布随机降落,直到RainNum个雨滴全部撒落在前景区域。内循环则为降落的雨滴迭代寻找局部最小值的过程。
则外循环次数为:
雨滴倍数:
定义位置(x,y)各方向坡度:
式中,(xn,yn)是当前位置(x,y)的8邻域点,坡度表示当前位置的总高度(I(x,y)+M(x,y))与其8邻域点的高度差,坡度越大则该方向的重力势能越大,优先选择该方向。当8邻域上网坡度都小于或等于阈值RD,表示该点为局部最小值点。
雨滴下降坡度最大方向:
每次内循环都先初始化R=RN,求出各方向坡度。
当D(x*,y*)-RD>0,即最大坡度大于坡度阈值时,则当前位置不是局部极小值区域,执行坐标跳转x=x*,y=y*且R保持不变。
当 D(x*,y*)-RD≤0,即当前位置8邻域的最大坡度小于等于坡度阈值RD时,则判断是局部极小值区域,当前位置雨滴数目按公式(8)更新。
同时内循环迭代执行时雨滴按公式(9)递减。
更新的R个水滴从位置(x,y)继续选择坡度最大的方向移动,直到R小于或者等于0时内循环结束。当外循环次数iter执行完毕,得到粗糙的ROI如图5(a)所示。
图5 D-RWS算法后处理
3.2.2 加速方法
在算法的迭代过程中,考虑到D(x*,y*)存在多个,采取智能选择和前向优化加速方法。此方法在内循环中把雨滴分为2种:第一种是初始雨滴即外循环iter每次更新时随机产生的未移动位置的雨滴;另外一种是已经移动过的非初始雨滴。在初始雨滴移动过程中,没有上一步移动方向参照,如果D(x*,y*)存在多个则从中随机选择一个作为雨滴的移动方向。非初始雨滴选择的移动方向可分两类:
(1)D(x*,y*)唯一存在则选择仅有的最大值方向。
(2)当多个 D(x*,y*)存在时,引入权值矩阵 A,如图6(a)所示,参考上一步移动方向,优先选择权重较大的靠前方向,具体过程如下:
如图6(b)所示,定义中心点8邻域的方向S1到S8设雨滴从 O 沿着方向 i移动到 O*,i=(1,2,…,8)。令O*各方向 j=(1,2,…,8)分别对应S1到S8。对任意方向j
雨滴移动时从多个D(x*,y*)方向中选择权值最大的方向dir为:
图6(b)列举了O沿着方向3移动到O*的权重分配情况,带*号数字为权重。
图6 权重矩阵和前向加速示意图
3.3 算法后处理
D-RWS算法ROI分割部分执行完毕后的雨滴分布结果如图5(a),由图可知头部区域的面积和灰度值(深度)大,非ROI区域面积和灰度值小。为滤除部分非头部局部极小值区域的噪声影响,只有当某个位置的雨滴数目(深度)和连通域像素个数(面积)大于阈值的像素点才最终保留为ROI。因此需采取形态学滤波后处理方法滤除非ROI区域,只保留头部区域。具体过程如下:
(1)对原始雨滴分布图进行形态学腐蚀运算,消除边界点和噪声区域。
(2)对腐蚀后的图进行深度滤波,滤除所有深度小于深度阈值的区域,即雨滴数目大于此阈值的区域才当作头部,深度滤波结果如图5(b)所示。
(3)对步骤(2)处理后的图片进行4连通标记,滤除区域像素点数小于面积阈值的小区域,结果如图5(c)。
4 质心跟踪与计数
目标跟踪常用卡尔曼滤波和粒子滤波等算法,以上算法虽然鲁棒性较好,但复杂度大,在多目标的点跟踪场景并不适用。根据待处理图像帧的特点和实时性的要求,本文采用基于质心空间欧氏距离最短法的运动目标跟踪算法[18]。算法将运动目标的形心坐标视为视频运动对象的质心坐标,用空间欧氏距离最短法对视频帧中各运动目标质心进行关联匹配,并跟踪相邻各帧匹配目标绘制轨迹,如图7左上角分图。根据标号判断当前帧中是否有目标消失,若有目标消失则判断有行人进出,且消失目标数目为进出人数总和。由目标出现的起始点质心坐标、消失点质心坐标以及起始点与消失点之间的距离可判断目标的进出方向并统计数目。
5 实验结果与分析
本文实验环境为:MacBook Air笔记本,1.8 GHz Intel Core i5 CPU和4 GB内存,通过C++语言在Visual Studio 2010编程平台下实现算法。PrimeSensor采用OpenNI软件开发包。算法的执行时间主要消耗在混合高斯背景建模和雨滴降落迭代的过程,为加速算法把原始640×480大小的深度图片降采样为160×120。实验系统界面及参数设置如图7所示,其中n表示当前帧的人数,t是以秒为单位的当前帧全部处理时间,右下角红色数字为区分不同目标而设置的标号。
图7 系统界面及参数设置
5.1 性能测试与比较
表1是三组代表性场景现场测试的结果。设置PrimeSensor安装高度为3 m,测试时间1 h,只统计出现在PrimeSensor视野中的人数。从表1中可看出,在普通场景电气院中统计的正确率高达100%,而图书馆和某大型超市因客流量大且随身干扰物多其准确率稍有下降。例如在超市测试时有小孩的头部紧靠着大人的肩膀,小孩被当作了大人的一部分。虽然整个过程存在漏检和误检,其总体正确率也维持在98%以上。
表1 实验结果
表2显示了本文算法与当前效果较好的文献[7-8]方法的比较结果(表中文献的数据均来自原作者论文中),从表中可知本方法的平均帧率可达40 f/s,平均计数准确率达99.1%,速度和准确率均优于以上两种算法,是目前处理速度和准确率最好的算法之一。
表2 人数统计准确率和速度比较
5.2 鲁棒性测试
图8、图9和图10分别为算法在人群密集场景、人头粘连场景和复杂随身物干扰场景的测试效果。在图8中,行人不仅拥挤而且部分行人的手搭在其他人肩上形成交叉干扰。场景中共有8人,但只有7人的头部出现,实际准确检测到7人,右下角行人因为只有肩部出现在场景中没有统计。图9是3个行人头部俩俩粘连情况测试,D-RWS算法执行结果中头部没有完全分离,但通过后处理步骤得到的最终ROI完全分离,准确检测到3个行人。如果行人的头部紧密的挨在一起,使之融合成一个连通域则本文算法会漏检,但这种特殊的情况发生的概率十分小,所以不会影响算法的整体性能。图10是算法在复杂随身物的场景下测试,行人的随身物包括棒球帽,大书包,拉杆箱和篮球,从图中可看出本方法能够排除随身物干扰准确检测到行人,算法的鲁棒性较强。此外,本文算法采取的结构光技术,能适应室内环境任意光照环境变化。由以上测试可知,本方法的鲁棒性较强,综合性能出色。
图8 人群密集场景测试
图9 头部粘连场景测试
图10 复杂随身物干扰测试
5.3 关键参数选择
图11为每次降落雨滴数RN与坡度阈值RD两个参数对算法处理速度的影响曲线,测试对象为某超市视频帧序列。从图11中可知,当RN固定不变时平均每帧处理时间随着RD的增加而显著减少。因为RD越大,内循环迭代速度越快,但人数统计的准确率也相应地降低了。如果RD太小,算法迭代速度太慢,影响执行效率,并且容易受到噪声的影响。总体上,当RD不变时,平均每帧处理时间随着RN的增加而增加,当RN增加时虽然外循环次数变少了,但是内循环迭代步数增加了,而且内循环迭代的过程主导了算法的执行时间。
图11 RD和RN与时间复杂度关系曲线图
由图12中可知,当RN固定为25,RD在3~10范围内变化时,正确率能保持在98%以上。当RD继续变大时,内循环迭代太快,以至于未能找到最佳极小值区域就停止迭代,导致准确率缓慢下降。即使RD增大到与RN相等时正确率依然能保持在90%以上。由上述实验分析可知,本文方法对参数变化不敏感,泛化能力强。如果PrimeSensor高度相差不大,RD值可以保持不变。权衡算法的速度和精度,实验时最终选择RN为25,RD 为8。
图12 正确率与RD关系曲线图(RN=25)
6 结束语
针对传统相机及其采用的人数统计方法遇到的遮挡、光照变化、颜色和纹理等环境因素导致计数准确率低的问题,提出一种基于RGB-D传感器的D-RWS算法。D-RWS算法解决了人群前后遮挡的问题,增强了环境适应的鲁棒性,能高效准确处理深度图中ROI的局部极小值的特性。实际场景测试表明,本方法在精度、速度和鲁棒性上比传统方法都有显著提高。但是,RGB-D传感器采用结构光技术也导致其视野范围以及有效距离都较小,受太阳光中的红外成分影响而不能适应室外环境,在今后的工作中考虑利用双目立体匹配获取深度图实现人数统计。
[1]Loy C C,Chen K,Gong S,et al.Crowd counting and profiling:methodology and evaluation[M]//Modeling,simulation and visual analysis of crowds.New York:Springer,2013:347-382.
[2]Dollar P,Wojek C,Schiele B,et al.Pedestrian detection:an evaluation of the state of the art[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2012,34(4):743-761.
[3]Rabaud V,Belongie S.Counting crowded moving objects[C]// IEEE Conference on Computer Vision and Pattern Recognition,2006:705-711.
[4]Chan A B,Vasconcelos N.Counting people with low-level features and Bayesian regression[J].IEEE Transactions on Image Processing,2012,21(4):2160-2177.
[5]TannerR,StuderM,Zanoli A,etal.Peopledetection and tracking with TOF sensor[C]//IEEE 5th International Conference on Advanced Video and Signal Based Surveillance,2008:356-361.
[6]Fu H,Ma H,Xiao H.Scene-adaptive accurate and fast vertical crowd counting via joint using depth and color information[J].Multimedia Tools and Applications,2013:1-17.
[7]Zhu L,Wong K H.Human tracking and counting using the KINECT range sensor based on Adaboost and Kalman filter[M]//Advances in visual computing.Berlin:Springer,2013:582-591.
[8]Lin D T,Jhuang D H.A novel layer-scanning method for improving real-time people counting[C]//HCI,2013:661-665.
[9]Hsieh C T,Wang H C,Wu Y K,et al.A Kinect-based people-flow counting system[C]//2012 International Symposium on Intelligent Signal Processing and Communications Systems(ISPACS),2012:146-150.
[10]Fu H,Ma H,Xiao H.Real-time accurate crowd counting based on RGB-D information[C]//2012 19th IEEE International Conference on Image Processing(ICIP),2012:2685-2688.
[11]刁智华,赵春江,郭新宇,等.分水岭算法的改进方法研究[J].计算机工程,2010,36(17):4-6.
[12]De Bock J,De Smet P,Philips W.A fast sequential rainfalling watershed segmentation algorithm[C]//Advanced Concepts for Intelligent Vision Systems.Berlin:Springer,2005:476-482.
[13]Min R,Choi J,Medioni G,et al.Real-time 3D face identification from a depth camera[C]//2012 21st InternationalConferenceonPatternRecognition(ICPR),2012:1739-1742.
[14]Camplani M,Salgado L.Efficient spatio-temporal hole filling strategy for kinect depth maps[C]//Proceedings of SPIE,2012,8920.
[15]Stauffer C,Grimson W E L.Adaptive background mixture models for real-time tracking[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition,1999,2.
[16]宋佳声.动态场景的自适应高斯混合模型的研究[J].计算机工程与应用,2012,48(1):8-12.
[17]Barnich O,Van Droogenbroeck M.ViBe:a powerful random technique to estimate the background in video sequences[C]//IEEE International Conference on Acoustics,Speech and Signal Processing,2009:945-948.
[18]孙志海,朱善安.多视频运动对象实时分割及跟踪技术[J].浙江大学学报:工学版,2008,42(9):1631-1635.
ZHANG Hua,LIU Hongli,XU Kun,MA Ziji
College of Electrical and Information Engineering,Hunan University,Changsha 410082,China
To solve problems such as occlusion and illumination changes that lead to low accuracy on conventional methods, a novel method D-RWS(Depth map based Rainfalling Watershed Segmentation)is proposed.Depth map is inpainted and foreground is extracted with the help of mixture of Gaussian background model.D-RWS algorithm is used to segment head area as Region Of Interest(ROI).People are tracked and counted by analyzing trajectories,which associated by minimal Euclidean distance between the centers.Experimental results show that proposed people counting system can,on average, count people with an accuracy of 98%and operate at approximately 25 milliseconds per frame(40 f/s).The accuracy and real-time performance fully meet the requirements of practical application.
RGB-D camera;PrimeSensor;people counting;Depth map based Rainfalling Watershed Segmentation(D-RWS); centroid tracking
针对传统人数统计方法因遮挡、光照变化导致准确率低的问题,提出一种适用于深度图的模拟降水分水岭算法(Depth map based Rainfalling Watershed Segmentation,D-RWS)。修复深度图并用混合高斯背景建模提取前景。利用D-RWS算法分割深度图中感兴趣的行人头部区域(Region Of Interest,ROI)。采用质心欧式距离最短法关联各帧中同一目标并跟踪计数。实验结果表明:提出的方法准确率能够达到98%以上,平均每帧处理时间为25 ms(40 f/s),准确率和实时性可满足实际应用的要求。
RGB-D相机;PrimeSensor;人数统计;D-RWS算法;质心跟踪
A
TP391.4
10.3778/j.issn.1002-8331.1404-0284
ZHANG Hua,LIU Hongli,XU Kun,et al.Real-time method for people counting based on RGB-D cameras.Computer Engineering and Applications,2014,50(23):156-162.
国家自然科学基金(No.61172089);湖南省科技厅资助项目(No.2014WK3001)。
张华(1989—),男,硕士研究生,研究方向为计算机视觉、图像处理;刘宏立(1963—),男,教授,博士生导师,研究方向为无线传感网络、移动通信系统与软件无线电、智能信息处理与传输技术;徐琨(1979—),男,博士研究生,研究方向为无线传感网络;马子骥(1978—),男,讲师,研究方向为无线通信技术、数字信号处理。E-mail:zh20923@163.com
2014-04-17
2014-06-13
1002-8331(2014)23-0156-07
CNKI网络优先出版:2014-09-18,http://www.cnki.net/kcms/doi/10.3778/j.issn.1002-8331.1404-0284.html