基于头肩HOG特征的快速行人检测
2014-09-18黄鸿志曾昭龙
景 阳,刘 琳,黄鸿志,曾昭龙
(1.中国人民公安大学,北京102623;2.南京理工大学光电工程411教研室,江苏南京210094)
行人检测是模式识别领域的一个热门话题,它在视频监控、人群安全预测与管理[1]、高级人机交互等领域有很好的应用价值。关于这一问题,学者们提出了很多方案。徐发牛等人[2]采用利用最小结构误差匹配结合角度误差计算,将整个人体看成是一个关节性物体来进行识别,并将匹配策略进行了优化,实现了对人体的识别,这种基于关系匹配的方式容易受到外部环境的干扰,造成识别精度较低。Shaopeng Tang[3]用光流法计算出人体各部位的速度梯度,以此为依据作为人体特征进行识别。光流法精确度较高,当人体出现混叠时,多个人体之间的四肢相互干扰影响识别效果。目前,方向梯度直方图(HOG)与支持向量机(SVM)分类器相结合的识别方式由于性能较高,已经成为人体识别领域的主要手段。HOG描述子由法国国家计算机技术和控制研究所的研究员Navneet Dalal和Bill Triggs首次提出[4],并且在人体识别领域效果显著。Dalal方法处理对象是静态图像,在计算特征时,HOG描述子维数随目标尺寸增大而迅速增多,训练高维SVM需要的样本数量也相当庞大,运算量很大。针对以上问题,本文主要通过降低HOG描述子的维数进行了改进。一方面,在行人检测中,合理利用了运动目标提取技术,减小待处理的目标区域,进而降低计算量。Wang[4]利用混合高斯建模技术剔除掉大部分图像背景,减少了侦测扫描区域,提升了检测速度;另一方面,通过人体自身特性进行改进。人体头肩部分不容易受到遮挡等外界干扰,往往只存在不同角度上的差异,结构比较稳定,可以用来代替整个人体进行识别。Min Li[5]等人在 Navneet Dalal思想的基础上,采用Harr特征和HOG特征相结合的方式,提取了人体的头肩模型,大大简化了计算量。
传统的人体检测方法主要通过提取大量人体样本的HOG特征来训练SVM分类器,实现人体检测。HOG的维数与样本大小有关,样本图像越大,维数越多。针对整个人体计算其HOG特征,计算量很大,对内存容量也有高的要求。同时,人体运动是一个相对复杂的过程,四肢的运动形式尤其复杂,为了获得一个识别率高的SVM分类器,必然需要大量的多种运动形式的人体样本参与训练,这就进一步增加了运算量,且由于四肢的运动多样性,SVM的分类效果也有所局限。考虑到人体头肩部分的运动相对简单,并且具有一定的稳定性,可以用人体头肩模型来代替整个人体,这样做的优点有两方面:一方面,计算头肩模型的HOG特征要明显小于整个人体的HOG特征,这就降低了计算量,减轻内存负担;另一方面,无论是行人还是骑自行车的人,头肩部分的运动除了角度上的差异,运动方式比较单一,增强了人体识别的可靠性和稳定性。基于以上两点,采用头肩模型代替人体进行识别是一个很好的选择。
本文提出了基于头肩模型的快速人体检测方法:首先在INRIA行人数据库中提取大量的人体头肩模型样本,计算正负样本的HOG特征并训练SVM分类器;然后对待检测的监控视频,先采用混合高斯模型[6]进行运动目标提取预处理,结合Sobel边缘检测算子[7],提取目标轮廓,并计算头肩模型的范围;第三,计算头肩模型的HOG特征,并分类;第四,对分类为非人体的样本按照Dalal方法进行二次处理。在实验部分,采用本文方法与多文献方法进行了性能比较,结果表明本文算法在人体识别率和识别速率上都有所改善。
1 头肩模型提取
1.1 预处理
结合文献[4]中涉及的混合高斯目标提取技术来减小目标识别范围。混合高斯模型是一种常用目标提取技术,它是Chris Stauffer[6]等人提出的。该算法的核心是通过自适应调整多个高斯模型实现前景和背景的分离。混合高斯模型如式(1)所示
式中:Xt表示时刻t像素 {x0,y0}的值;μi,t和 Σi,t分别是时刻t第i个高斯分布的均值和协方差矩阵;ωi,t是时刻t第i个高斯分布的权重;η定义为高斯密度函数;K个高斯模型通过不断地更新参数,完成前景和背景的检测。参数更新公式如下
某一像素与背景模型相匹配则认为该像素是背景像素,否则,则认为是前景像素,从而实现前景的提取。通过混合高斯模型可以获得运动目标的图像以及其目标二值图像,为后续处理做准备。
1.2 头肩模型提取
头肩模型包括高度和宽度两个参数,高度表示为人体头顶到胸腔上部,宽度为人体肩膀宽度。头肩模型的高度和宽度可以通过人体正常比例进行估计获得,因此,首先需要确定人体的形态。混合高斯模型提供了运动人体的二值图像,但是混合高斯产生的二值图像往往不够完整,而是由很多不连续的块组成,与实际的人体形态有很大的差异。经过腐蚀膨胀等处理后,尽管可以将不连续的块组合在一起,但是获得的人体边界是畸变的,与实际的人体边界有很大差异。为此,可以采用边缘检测的方式对这种畸变加以约束。
常用的边缘检测算子有Sobel,Canny,Prewitt边缘检测算子、Laplace边缘检测算子等[8]。在一个拍摄距离较远的监控视频中,混合高斯提取的运动人体目标往往比较模糊,并且噪声比较大,因此,针对这种目标进行边缘检测时,应该尽可能地降低噪声的干扰,Sobel边缘检测算子对噪声具有平滑作用,可以较好地减少背景等干扰对人体边缘提取的影响。在人体边缘提取过程中,首先对人体目标进行Sobel边缘检测,此时获得的目标轮廓往往容易受到背景轮廓的影响,因此需要对轮廓进行修正。混合高斯模型提取的目标中不存在背景像素,因此可以对Sobel提取的轮廓进行修正。若轮廓像素同时为人体二值图的像素,则认为该像素属于人体轮廓,否则认为该像素为背景轮廓,需要被剔除。头肩模型提取过程如图1所示,通过这种方式获得一个完整准确的人体轮廓。
对轮廓进行填充,重新获得人体二值图像。计算其水平投影直方图,获取人体各处的宽度曲线。宽度曲线的第一个极小值表示为脖子的位置,即图2中的A点。从人体顶点O到A点的范围内,获取宽度曲线的最大值作为头部的宽度。根据人体正常比例关系,即可获得人体头肩模型的高度。从人体顶点O到头肩模型高度范围内的宽度曲线最大值,即为头肩模型的宽度。从目标图像中截取高度和宽度对应的矩形范围,即可获得人体头肩模型。
2 HOG描述子
Navneet Dalal和Bill Triggs首次提出了HOG的概念,HOG描述子用来计算局部图像梯度的方向信息的统计值,可以用来描述局部目标的表象和形状。计算HOG描述子是一个将区域特征相互叠加的过程,目标区域通过细胞单元划分为各个小区域,然后各个小区域组合成一个块单元,HOG特征即各个区域特征的组合,如图3所示。
图3 HOG计算过程
首先采用Gamma校正法对输入图像进行颜色空间的标准化,然后根据式(5)和式(6)计算图像中各个像素的水平梯度Gx和垂直梯度Gy
式中:f(x,y)是图像灰度曲线。根据式(7)和式(8)计算梯度的大小和方向
将图像划分为像素数为n×n的细胞单元,根据角度的不同,统计细胞内的梯度方向直方图。角度通常限定在0°~180°,均匀分为9个通道区域,每个细胞获得一个9维的特征向量。Dalal实验验证了梯度模板越简单,分类结果越好,并且采用[-1,0,1]为模板计算每个cell的梯度效果最好。
相邻的M×N个细胞单元组合为一个块区域,M×N个细胞单元的特征向量串联成块区域的一个M×N×9的特征向量,对区域内的每个细胞的梯度结果进行统一规划,可以使特征向量对光照、阴影和边缘变化具有鲁棒性。
在一个M×N的搜索窗口中,块区域的移动步长为一个cell的大小,则搜多窗口的内有((M-Nn)/n+1)2个块区域,搜索窗口的特征向量维数有((M-Nn)/n+1)2×N2×9,这就是一个搜索窗口的HOG描述子。
3 人体识别
3.1 训练SVM分类器
从INRIA中截取人体头肩模型,并统一大小为64×64,同样截取负样本并统一大小。M.Kachouane[9]从提高识别速率的角度做了系列实验,验证了当细胞大小为8×8时,在获得好的识别率的同时,处理速度最快。设定细胞大小为8×8,块大小16×16,搜索窗口为64×64,则每个样本获得一个1 764维特征向量。对2 000个正样本和3 000个负样本的特征向量进行训练,获得SVM模型分类器。
3.2 人体识别
对通过上述处理获得的头肩模型统一大小为64×64,设定细胞大小为8×8,块大小16×16,搜索窗口为64×64,计算HOG特征向量并通过训练好的SVM分类器进行分类。当人体之间存在遮挡和混叠时,混合高斯模型提取的目标包含多个人体,按照本文所述的头肩模型提取方法提取的头肩模型可能不准确,使得分类发生错判。这种情况下,需要对分类为非人体的样本做进一步处理。即采用Dalal的方法,对混合高斯模型提取出的整个运动目标重新进行识别,从而确保识别率。
4 实验结果分析
本次实验以MATLAB为平台,针对分辨率为660×492,帧数为703的视频分别采用Dalal算法、文献[4]算法和本文算法进行处理。实验手段主要依据Dalal算法,设置窗口滑动间隔为8个像素,扫描尺度为0.6~1.2,尺度变化间隔为1.2倍。文献[4]在Dalal算法的基础上,引进混合高斯模型,减少了背景部分的运算。3种方法在识别率和识别速率上进行了比较,实验结果见表1。
表1 3种方法之间的性能比较表
从表1可以看出,在识别率上,混合高斯目标提取技术的应用避免了Dalal算法对某些背景区域的误识别,但同时受到本身灵敏度的限制,可能造成对静止人体的漏检,造成识别率的降低,但总体上,最佳识别率与Dalal算法相比有所提高。本文算法由于选取了稳定的头肩模型作为识别目标,避免了肢体等复杂运动的干扰,最佳识别率略有提高。从处理时间上,由于本方法结合了混合高斯目标提取,避免了传统Dalal方法在背景区域上重复计算,同时,头肩模型的尺寸较小,其特征向量的维数相对较少,减少了计算量,每帧的平均处理速度有很大程度的提高。
图4为人体检测效果图,阴影区域表示识别为人体,长方框表示识别为非人体,其中右图中由于两个人体距离比较近,混合高斯模型无法精确分割两个人体,使得头肩模型提取错误而引起误判,经过Dalal算法修正后,可以从该目标图像中识别出两个人体。本方法除了可以识别行人外,还可以检测骑车等特殊行人。本文算法只需要获得头肩模型作为识别目标,识别结果不受头肩部分以下的影响。由于头肩模型的高度仅由水平投影直方图的第一个极小值,即头肩连接部位决定,因此,本文算法对骑车等特殊行人仍有良好的检测效果。
5 总结与展望
本文在传统Dalal人体识别方法的基础上,采用混合高斯模型提取运动目标,并提取头肩模型代替整个人体进行识别。从识别率和处理时间上,该方法都较传统的方法有所提高。同时,由于头肩模型提取过程中,不受头肩部分以下运动的干扰,对骑车等特殊行人仍有很好的识别效果。然而算法仍然有需要改进的地方,头肩部分尽管不容易受到遮挡,但当人体目标之间出现混叠时,混合高斯模型无法对独立目标进行精确提取,往往提取的目标区域中包含多个人体,此时,尽管采用Dalal算法进行了修正,但是延长了处理时间,未来可以对此做进一步的改进。
:
[1]车志富,苗振江,王梦思.地铁视频监控系统中的行人检测研究与应用[J].现代城市轨道交通,2010(2):31-36.
[2]徐发,牛黄芳,汪君.基于关系匹配的部件化人体识别[J].微计算机信息,2009,25(12):170-172.
[3] TANG S,SATOSHI G.Human detection using motion and appearance based feature[EB/OL].[2014-03-24].http://www.researchgate.net/publication/224107481_Human_detection_using_motion_and_appearance_based_feature.
[4] STAUFFER C,GRIMSON W E L.Adaptive background mixture models for real-time tracking[EB/OL].[2014-03-24].http://wenku.baidu.com/link?url=LT44XYSg5qvyBDFprTb3mvkEVlYgb9HdUQPWdse-URDdyR62EhHC4GUgnPR1XvSygq217fXCzjrLiXSJbon4Th4by2wlMylIBN AVG8ttvPK.
[5] LI Min,ZHANG Zhaoxiang,HUANG Kaiqi,et al.Rapid and robust human detection and tracking based on omega-shape features[EB/OL].[2014-03-24].http://easyscholar.ruc.edu.cn/homepage/zxzhang/index.htm.
[6] STAUFFER C M,GRIMSON W E L.Adaptive background mixture models for real-time tracking[EB/OL].[2014-03-24].http://wenku.baidu.com/link?url=-080XHhxxzvUbBiY6iJL4cZpb8hfVOIYZX6fMi_UCj1yCV1mHatv1LAYQ4fNvzw4IktVn7nrBFL4N2RumPV_58RwsYnO vCKP6uRPkmEU0h7.
[7]王康泰,戴文战.一种基于Sobel算子和灰色关联度的图像边缘检测方法[J].计算机应用,2005,26(5):1035-1036.
[8]周道炳,朱卫纲.几种边缘检测算子的评估[J].指挥技术学院学报,2000,11(1):59-63.
[9] KACHOUANE M,SAHKI S,LAKROUF M,et al.HOG based fast human detection[EB/OL].[2014-03-24].http://www.researchgate.net/publication/237047488_HOG_Based_fast_Human_Detection?ev=auth_pub.