深度图像下基于头部多特征的人数统计算法
2017-11-22陈泽虹赵东宁
刘 磊,陈泽虹,张 勇,赵东宁,3
1)深圳大学ATR国防科技重点实验室, 广东深圳518060;2)深圳大学信息工程学院, 广东深圳518060;3) 哈尔滨工业大学(深圳)计算机科学与技术学院,广东深圳 518055
【电子与信息科学/ElectronicsandInformationScience】
深度图像下基于头部多特征的人数统计算法
刘 磊1,陈泽虹2,张 勇1,赵东宁2,3
1)深圳大学ATR国防科技重点实验室, 广东深圳518060;2)深圳大学信息工程学院, 广东深圳518060;3) 哈尔滨工业大学(深圳)计算机科学与技术学院,广东深圳 518055
在现实生活中,因人流量过大而引发的安全事故不胜枚举.为了防止此类事故的发生,可通过视频监控的方式统计人数,及时对行人进行限流和分流.提出一种有效的人数统计算法.该算法采用深度摄像机作为视频采集源,通过分析和提取深度图像下头部的4个特征,实现行人头部检测,并依靠Kalman滤波技术实现对头部目标的跟踪,进而达到人数统计的目的.该算法对行人的不同发型具有一定适应性,同时对轻微遮挡和多人环境下的头部检测均有良好效果.该算法人数统计平均准确率达到88.6%.
数字图像处理;深度图像;区域生长;Kalman滤波;多特征;人数统计
为配合高人流量地区(如商场、车站和交通路况)安全等级划分、人流量限制标准设定和应急预案规划,人数统计逐渐成为视频监控领域的一个重要分支.现阶段基于图像处理的人数统计算法主要是将摄像头安装在相关场所进出口处的顶部,摄像头采用垂直式拍摄,此方式有效降低了行人在运动中出现遮挡的概率,低遮挡率保证了行人头部特征的完整性,易于算法对头部特征的提取.本研究在保证行人头部被准确检测的基础上,对行人头部进行跟踪,并通过相关策略对行人轨迹线进行约束,最终实现人数的统计.
1 相关工作
根据选用摄像头的类型,可以将人数统计算法分为:① 基于RGB摄像机的人数统计算法;② 基于深度摄像机的人数统计算法.基于RGB摄像机的头部识别算法一般以头部的颜色[1]、轮廓[2-3]和头肩部模型[4]等为特征,利用颜色特征进行头部识别的方法易受外部光照和环境颜色的影响;头部轮廓往往难以归结到一个统一标准上,而且行人在运动中姿势多样,轮廓的变化范围将更复杂,利用轮廓特征进行识别难以达到较高的识别率;头肩部模型判断需要斜向式拍摄,由此导致行人头部遮挡概率提升和遮挡面积的变大,利用头肩部模型难以精确识别,只能大致估计.在此基础上,部分学者利用上述特征,或采用其他特征,如Harr、局部二值模式(local binary pattern, LBP)和梯度直方图(histogram of gradient, HOG)等,进行训练和学习[5-8],迭代优化使识别率大幅提升,多数基于机器学习的方法识别率都能达到90%以上.除采用常规的特征提取方法之外,文献[9]提出一种基于人体结构的人数统计方法,该方法在图像前景的基础上,依靠头部和身体形成的特殊角度为特征进行提取.
深度摄像机的出现提供了一种新的图像获取方法.深度图像是依靠目标和摄像头之间的距离形成的图像,因此深度图像可以简单地理解为距离图像.在垂直拍摄时,头部区域距离摄像头最近,则该区域像素值最小,人体由上往下,像素值逐渐增加,据此可将深度图像下的头部识别归结为图像的局部极值问题.Zhang等[10]根据现实中水的流动特性提出Waterfill算法,该算法通过在图像上模仿水滴的流动方向和水滴停止点的控制,获得表示头部的局部极值点,具有较高的识别率和很强的物理实践意义.其后研究结合Waterfill算法提出了更优的头部识别方案[11-12].深度图像中的头部识别除采用寻找局部极值的方法之外,也可采用提取特征训练的方法实现[13-14].文献[14]在特征的选取上与一般的特征提取方法不同,其对头部区域进行多层多提取的方式提取头部方向梯度直方图并进行训练和学习.文献[15]依靠头部区域边缘像素点间的关系,制作头部模板,从而实现对头部的识别,同时,该作者还提出人体模板匹配算法[16],进一步提高头部识别的准确率,该算法对多人环境仍具有很强的识别效果,并对类似于人体的目标具有很强的排除能力.
基于上述研究,本研究提出一种有效的人数统计算法.该算法采用深度摄像机作为视频采集源,通过分析和提取深度图像下头部的4个特征,实现行人头部的检测,并依靠Kalman滤波技术实现对头部目标的跟踪,进而达到人数统计的目的.该算法对行人的不同发型具有一定的适应性,同时对轻微遮挡和多人环境下的头部检测均有良好效果.该算法的人数统计平均准确率达到88.6%.
2 算法描述
该算法主要由前景提取、头部检测和头部跟踪与人数统计3个模块组成.为避免因图像采集阶段产生的噪声对头部检测和跟踪造成影响,前期需对深度图像进行预处理,即进行中值滤波和邻域填充等图像处理操作[14].
2.1 前景提取
前景提取是为了避免背景图像对头部检测造成干扰,以及缩小头部搜索区域的范围,即减小ROI(region of interest),达到降低算法计算量的目的.本研究采用背景静态差分的方式实现前景提取.
背景模型的建立有两个基本要求:① 建立背景模型时,拍摄区域内不能含有动态目标;② 获取的背景必须是稳定背景.背景模型bg(x,y)为
(1)
其中,fk(x,y)为第k帧图像, (x,y)表示图像像素点的坐标;n为背景建模时所需的帧图像数量.本研究采用n帧图像的均值作为背景模型,建立的模型为均值背景模型.
前景图像的获取依靠实时输入图像与均值背景图像差分完成,其计算式为
mask(x,y)=
(2)
其中,mask(x,y)为前景图像, (x,y)代表图像像素点的坐标;ft(x,y)为实时输入图像;t为图像序列;Tbg为图像阈值.
2.2 头部检测
2.2.1 头部区域特征概述
本研究深度摄像头采用顶部安装,垂直拍摄的方式,结合深度图像的成像特点(深度图像的像素值和目标距离摄像头的距离成正比),定义人头部区域在深度图像下的4个特征:
特征1(头部区域像素值整体最小):摄像头垂直拍摄,头部距离摄像头最近,头部区域的像素值整体小于人体其他部位的像素值.
特征2(头部区域边缘存在像素值阶跃):摄像头垂直拍摄,颈部属于拍摄盲区,头部和肩部或者身体其他区域,在图像上直接连接,所连接的2个区域由于颈部盲区的存在,像素值差异明显.
特征3(头部区域是圆弧曲面):摄像头垂直拍摄下,头部形成1个椭圆形或类似椭圆形,椭圆内的像素值小于椭圆边缘像素值,所以,头部区域呈现圆弧曲面的形状.
特征4(头部区域像素值平滑):摄像头垂直拍摄,人头部区域像素值无剧烈波动,像素值较为平滑.
据此定义的4个特征,摄像头垂直拍摄下,深度图像中的人头部区域被描述为1个在垂直空间内整体像素值最小且平滑的圆弧曲面,且曲面边缘存在明显的像素值阶跃.
2.2.2 头部区域检测
根据上述描述的头部区域特征,人头部在深度图像以圆弧区域的形式存在,且圆弧区域边缘存在像素值阶跃,所以头部区域在深度图像中属于一个较为特殊的区域形式存在.在前景ROI区域的基础上,通过区域生长算法分割出数量不等的子区域,再利用头部的相关特征实现子区域的挑选,即实现头部区域的检测.
1)区域划分
摄像头垂直拍摄,人体颈部、腰部和腰部以下部分区域,属于拍摄盲区,在图像上会出现不同程度的缺失,最终导致盲区所连接区域在像素值层级上会出现不同程度的数值阶跃.同时,人头部区域内具有像素值整体平滑的特性.上述两个条件构成了头部区域可以被划分成一个整体区域的基础.
本研究利用区域生长算法实现图像区域分割[14],其原理可简单概括为:在图像中选取种子点,依次在种子点的邻域内不重复地选取满足阈值标准的像素点,并将其纳入到同一区域,再将该像素点作为新的种子点,当且仅当在种子点的邻域内没有满足阈值标准的像素点时,种子停止生长,一个区域划分结束.种子点的阈值标准为
|P(n)-P(s)| (3) 其中,P(n)和分P(s)别为邻域像素点n和种子点s的像素值;T为种子生长阈值. 2)头部子区域选取 前景ROI区域通过区域生长进行分割后,被分割为数个子区域,由于头部区域有其独特的特征属性,所以头部区域的选取问题转化为头部特征与ROI子区域的匹配问题.下面分别定义头部区域整体像素值最小特征和头部圆弧区域特征的提取方法(图1). 在行人所占据的垂直空间内,头部区域的像素值整体最小,结合区域划分的结果,头部区域边缘的像素值应小于相邻区域边缘的像素值,用图1中的椭圆代表头部区域,由此定义如下判别方法. 图1 头部区域边缘扩展圆弧示意图Fig.1 Expanding circle arc of edge of head region 步骤1在头部区域边缘有间隔的随机取n个点,分别为P1,P2,…,Pn. 步骤2以每个点为弧心,在头部区域的边缘做半径值为r的n个圆弧,分别为C1,C2,…,Cn. 步骤3在每个圆弧Ci(i=1,2,…,n)上有间隔的选取m个点,根据式(4)和式(5)计算m个像素点中像素值大于弧心像素值的个数Qi及其所占的比率R为 Qi=count (sij-pi>0,j=1,2,…,m,i=1,2,…,n) (4) (5) 其中,count(·)表示统计括号内符合条件个数的函数;sij表示第i圆弧上第j个像素点值;pi表示弧心像素点值;Tc是比率阈值.若Ri>Tc, 则认为此圆弧为正圆弧,反之为负圆弧. 步骤4统计头部区域边缘n个圆弧中正圆弧的数量N, 若满足 (6) 则认为当前区域满足头部区域整体像素值最小的特性.其中,Tcp为正圆弧的比率阈值. 在区域边缘等间隔取n个点是为了充分与相邻区域进行数值比较,尽可能多地捕捉到边缘像素差信息,以保证头部区域判别的准确性. 头部区域是圆弧曲面,类似于一个“凸”形区域.单一的圆弧曲线具有如下性质:从圆弧曲线的一端到另一端的过程中,斜率值会不断变化,但是斜率的正负仅变化1次.圆弧曲面可认为是由无数条圆弧曲线构成,圆弧曲面包含圆弧曲线的性质,将圆弧曲线的性质运用到圆弧曲面上,提出圆弧曲面的4个判别步骤: 步骤1在图2所示的头部区域圆弧曲面的边缘上有间隔的选取n(n为偶数)个点P1,P2,…,Pn. 步骤3统计n/2条圆弧曲线中符合圆弧曲线特性(斜率正负一次变化)的数量q. 图2 头部区域圆弧曲面Fig.2 Arc surface of head region 深度图像经过区域划分后,被分割成数个子区域,对每个子区域进行上述两个特征提取算法的筛选,最终筛选出人头部区域. 在深度图像中人为设定2条虚拟跟踪判定线,当且仅当跟踪的头部目标穿越了2条判定线后,才认为此目标是有效目标.2条虚拟判断线分别从时间和空间的角度对跟踪目标进行限制,即保证目标的“存活”时间达到一定要求,同时也保证目标的起始点和终止点之间的欧式距离达到一定的要求,双重要求避免了虚假目标形成的轨迹线干扰. 对帧间目标的跟踪依靠Kalman滤波实现[20],所建立的运动模型为匀加速模式.多目标并存的情况下,Kalman滤波将对每个目标建立数学模型,每个目标状态的预测值都需要相应的观测值进行修正,以保证Kalman滤波对目标状态的准确描述.为此需要建立目标预测值和观测值的最佳匹配策略.本研究以目标的预测坐标和观测坐标之间的欧式距离作为两目标的相似度,并形成相似度矩阵,由此将最佳匹配问题转化为矩阵求解问题,矩阵求解结果就是目标的最佳匹配结果.相似度的计算通过欧式距离实现,即目标的预测坐标(xp,yp)和(xo,yo)观测坐标的相似度计算为 (7) 其中,d表示目标预测值和观测值间的相似度,即欧式距离计算结果;x和y分别表示目标在图像上的横纵坐标.M个目标的预测值与N个观测值形成的相似度矩阵D为 (8) 其中,n和m的取值范围分别为[1,N]和(1,M). 相似度矩阵的最佳匹配策略为:目标预测值与观测值的最佳匹配必须保证两者的相似度值在预测值与观测值所在的行和列中都是最小值. 实验采用Kinect 2.0型摄像头,其垂直对准地面,安装高度为3 m,实验测试环境在实验室的进出口处,实验计算机的处理器为Intel Core i3 CPU,内存4 GB,硬盘500 GB,算法仿真环境为Visual Studio 2013. 区域划分的目的是分割深度图像,使得深度图像以区域块的形式存在.本研究提出的基于多特征的行人头部检测算法是区域划分基础上进行,区域划分的质量直接影响到算法最终的检测准确率.图3为利用区域生长算法在深度图像上的划分结果.从区域划分的实验结果图中可明显看出,区域生长算法对头部的划分相当完整,并未出现头部和肩部粘连的现象.区域划分的最佳结果即将头部完整划分成一个子区域,所以,区域划分算法阈值与头部区域边缘的阶跃值大小有关,将深度图像归一化到255的范围后,行人平均头肩部的范围约为15(像素值),所以本研究的区域分割阈值为15. 图3 深度图像和相应的区域分割图像Fig.3 (Color online) Depth images and corresponding segmented images 按照行人头发的长度,可将行人分为短发行人和长发行人,短发行人特征明显,易于检测,长发行人发型多变,检测难度较高.本研究对行人的检测是基于图像区域的,所以不同发型的行人只要在图像上区域分割后的区域上满足头部的4个特征即可被判断为头部.下面应用本研究所提的头部检测算法对各种不同发型的行人进行头部检测,其中,发型类型有丸子头、盘发、马尾、披肩和戴帽子,如图4所示.检测结果表明本算法对不同发型的行人具有一定的适应性. 图4 多种发型的深度图像分割和头部检测结果Fig.4 (Color online) Segmented results and head detection results of multi-hairstyle in depth images 遮挡和多人环境下的人头部检测属于行人头部检测的难点.由于行人间的身高不同等原因,行人在移动过程中会出现不同程度的头部遮挡,由此将导致头部区域特征不明显或者头部区域部分缺失的问题,不利于行人头部的检测. 图5 多人头部检测结果Fig.5 (Color online) Head detection results of multi-people 利用本算法在多人环境下的头部检测结果如图5所示.其中,共5个行人,摄像头的拍摄范围基本被全部覆盖.实验结果表明,该算法在多人环境下有良好的检测效果,保证了头部的正确检测. 头部部分遮挡下的行人检测结果如图6所示.其中,图6(a)和(d)图中实线圈所标示的行人头部被虚线圈所示的行人遮挡,两者之间的身高差为5 cm.从实验结果可看出,当头部出现轻微遮挡,算法能正确检测出被遮挡行人的头部.当出现更大面积遮挡时,由于特征被掩盖,不能正确检测,本算法仅适用于轻微遮挡下的头部检测. 图6 头部遮挡检测结果Fig.6 (Color online) Detection results of head region overlapped 图7 头部跟踪结果Fig.7 (Color online) Head track results 跟踪的目的是为了产生轨迹线,即记录目标的运动过程,人数统计是基于轨迹的运动趋势完成的.图7为行人跟踪过程,行人在移动过程中运动随意性明显,轨迹并不标准,但通过对目标建立跟踪模型,并通过帧间目标关联,可以实现对目标的准确跟踪. 表1为人数统计结果,分别做了3次实验,其实验复杂度依次上升.序号1的实验对象是单个行人,不存在多人结伴行走的情况,准确率为98%;序号2的实验对象是两三个行人结伴行走,场景难度相对序号1的实验复杂,准确率为87%;序号3的实验对象是多行人拥挤行走的复杂场景,准确率为81%;平均准确率为88.6%. 表1 人数统计结果 本研究利用深度摄像机(Kinect)为视频拍摄源,提取深度图像并分析,总结出人头部在深度图像中的4个特征,并在区域成功分割的基础上,依靠对特征的提取实现了头部的正确检测,并通过实验验证了本算法针对行人的多发型、部分遮挡和多人情况均有良好的检测效果.在头部被正确检测的基础上,依靠Kalman滤波技术实现了头部跟踪,进而根据行人的轨迹运动方向统计出进出人数.但在相对复杂的场景下,本算法仍存在误检和漏检问题,由此需要做进一步分析,加强特征的提取方法,解决漏误检问题. 引文:刘 磊,陈泽虹,张 勇,等.深度图像下基于头部多特征的人数统计算法[J]. 深圳大学学报理工版,2017,34(6):584-590. / [1] 孙棣华, 闫 川, 赵 敏, 等. 结合梯度与彩色直方图的人头识别[J]. 重庆工学院学报自然科学, 2007, 21(12): 1-5. Sun Dihua, Yan Chuan, Zhao Min, et al. Head detection based on gray gradient and color histogram[J]. Journal of Chongqing Institute of Technology, 2007, 21(12): 1-5.(in Chinese) [2] Gardel A, Bravo I, Jimenez P, et al. Real time head detection for embedded vision modules[C]// IEEE International Symposium on Intelligent Signal Processing. San Diego, USA: IEEE Computer Society, 2007:1-6. [3] Chen Juan, Wen Quan, Zhuo Chenglong, et al. Automatic head detection for passenger flow analysis in bus surveillance videos[C]// International Conference on Image and Signal Processing. San Diego, USA: IEEE Computer Society, 2012:143-147. [4] Chua J L, Chang Y C, Lim W K. Visual based fall detection through human shape variation and head detection[C]// International Conference on Multimedia, Signal Processing and Communication Technologies (IMPACT). San Diego, USA: IEEE Computer Society, 2014: 61-65. [5] Sim C H, Rajmadhan E, Ranganath S. Using color bin images for crowd detections[C]// IEEE International Conference on Image Processing. San Diego, USA: IEEE Computer Society, 2008:1468-1471. [6] Luo Jun, Wang Jinqiao, Xu Huazhong, et al. Real-time people counting for indoor scenes[J]. Signal Processing, 2015,124:27-35. [7] Cai Zebin, Yu Zhuliang, Liu Hao, et al. Counting people in crowded scenes by video analyzing[C]// IEEE Conference on Industrial Electronics and Applications. San Diego, USA: IEEE Computer Society, 2014:1841-1845. [8] Gao Chenqiang, Li Pei, Zhang Yajun, et al. People counting based on head detection combining Adaboost and CNN in crowded surveillance environment[J]. Neurocomputing, 2016, 208:108-116. [9] Aziz K, Merad D, Iguernaissi R, et al. Head detection based on skeleton graph method for counting people in crowded environments[J]. Journal of Electronic Imaging, 2016, 25(1): 013012-013025. [10] Zhang Xucong, Yan Junjie, Feng Shikun, et al. Water filling: unsupervised people counting via vertical Kinect sensor[C]// IEEE the 9th International Conference on Advanced Video and Signal-Based Surveillance. San Diego, USA: IEEE Computer Society, 2012:215-220. [11] Gao Chenqiang, Liu Jun, Feng Qi, et al. People-flow counting in complex environments by combining depth and color information[J]. Multimedia Tools and Applications, 2016, 75(15):1-17. [12] Coskun A, Kara A, Parlaktuna M, et al. People counting system by using Kinect sensor[C]// International Symposium on Innovations in Intelligent Systems and Applications. San Diego, USA: IEEE Computer Society, 2015, 1-7. [13] Rauter M. Reliable human detection and tracking in top-view depth images[C]// International Conference on Computer Vision and Pattern Recognition Workshops. San Diego, USA: IEEE Computer Society, 2013:529-534. [14] Vera P, Zenteno D, Salas J. Counting pedestrians in bidirectional scenarios using zenithal depth images[C]// Mexican Conference on Pattern Recognition. New York, USA: Springer-Verlag, 2013:84-93. [15] Oosterhout T V, Bakkes S, Kröse B J A. Head detection in stereo data for people counting and segmentation[C]// Visapp-Sixth International Conference on Computer Vision Theory & Applications. Algarve, Portugal:[s. n.], 2011:470-479. [16] Oosterhout T V, Englebienne G, Kröse B. RARE: people detection in crowded passages by range image reconstruction[J]. Machine Vision and Applications, 2015, 26(5):561-573. [17] Galcˇ ík F, Gargalík R. Real-time depth map based people counting[C]// International Conference on Advanced Concepts for Intelligent Vision Systems. New York, USA: Springer-Verlag, 2013:330-341. [18] 王江峰. 基于轨迹片段关联的目标跟踪与事件检测方法研究[D]. 长沙: 国防科学技术大学, 2011. Wang Jiangfeng. Researches on object tracking and event detection based on tracklet association[D]. Changsha: National University of Defense Technology, 2011.(in Chinese) [19] Chen C, Chang Y, Chen T, et al. People counting system for getting in/out of a bus based on video processing[C]// The Eighth International Conference on Intelligent Systems Design and Applications. Kaohsiung, China: IEEE Computer Society, 2008:565-569. [20] Ristic B, Arulampalam S, Gordon N. Beyond the Kalman filter: particle filter for tracking application[J]. IEEE Transactions of Aerospace & Electronic Systems, 2004, 19(7): 37-38. 【中文责编:方圆;英文责编:木柯】 2016-12-20;Revised2017-05-15;Accepted2017-07-14 Doctor Zhao Dongning. E-mail:582101@qq.com Apeoplecountingalgorithmbasedonmulti-featureofheadregionindepthimages LiuLei1,ChenZehong2,ZhangYong1,andZhaoDongning2,3 1) ATR Key Laboratory of National Defense Technology, Shenzhen University, Shenzhen 518060, Guangdong Province, P.R.China2) College of Information Engineering, Shenzhen University, Shenzhen 518060, Guangdong Province, P.R.China3) School of Computer Science and Technology, Harbin Institute of Technology (Shenzhen), Shenzhen 518055, Guangdong Province, P.R.China In daily life, a great number of security accidents are caused by the excessive flow of people. In order to prevent the occurrence of such accidents, we propose an efficient algorithm to count the number of people by using video monitors and limit the flow of people in time. The algorithm uses the depth camera as a video capture device and realizes the detection of people’s heads by analyzing and extracting the four features of heads in depth image. The method uses Kalman filter technology to track the head and achieves the purpose of counting statistics. The proposed algorithm can effectively solve the head detection problem of complex scenes, such as hairstyle diversity and head part-occlusion. The average accuracy of the proposed algorithm reaches about 88.6%. digital image processing; depth image; region growing; Kalman filter; multi-feature; people counting Foundation:Natural Science Foundation of Guangdong Province (2015A030310172); Science and Technology Plan Projects of Shenzhen ( JCYJ20170302145623566, JCYJ20160331185006518) :Liu Lei, Chen Zehong, Zhang Yong, et al. A people counting algorithm based on multi-feature of head region in depth images[J]. Journal of Shenzhen University Science and Engineering, 2017, 34(6): 584-590.(in Chinese) TP 319 A 10.3724/SP.J.1249.2017.06584 广东省自然科学基金资助项目(2015A030310172);深圳市科技计划资助项目(JCYJ20170302145623566, JCYJ20160331185006518) 刘 磊(1991—),男,深圳大学硕士研究生.研究方向:图像处理.E-mail:270568577@qq.com2.3 头部跟踪与人数统计
3 实验与分析
3.1 深度图像区域划分
3.2 多样性发型的头部区域检测
3.3 遮挡与多人检测
3.4 行人跟踪与统计结果
结 语