基于窗口边缘梯度势能的人体遮挡多尺度检测算法
2012-07-25欧阳毅张三元
欧阳毅 张三元 张 引
(浙江大学计算机科学与技术学院 杭州 310027)
1 引言
人体检测在人体动作识别、智能视频监控、智能汽车及智能交通中都有着重要的应用,使其成为了一个研究热点。由于人体运动为非刚性的目标运动,且受姿态、外观、服饰及光照天气等环境变化因素的影响较大,同时当人体部分被遮挡情况下,如何对其进行检测也是一个研究难点。目前人体特征的提取通常都是寻找表示人体轮廓信息的方法,如差分与边缘信息[1],多成分学习[2],Harr小波特征[3],以及梯度方向直方图等[4-7]。
在各种人体特征提取中,HOG (Histograms of oriented Gradients)具有较好的检测性能,但存在人体特征向量维数较大,在分类器的训练与检测时计算量都较大等缺点,主要是由于在特征检测时需要在不同尺度多次迭代计算。另外图像中多目标人物的检测,对于半遮挡和尺度差异较大的人体目标检测会失效,有研究通过子部件(part-based)即人体各肢体的检测算子[8-13],能获取较高准确率和较低虚警率,缺点是肢体匹配过程需较大计算代价。其中文献[8]中将HOG与LBP (Local Binary Pattern)相结合来解决人体部分遮挡下的检测。本文提出一种基于窗口梯度势能(Window Gradient Potential Energy, WGPE)的人体检测方法。在特征窗口扫描过程中,通过加权级联支持向量机(SVM),实现对半遮挡情况下的人体检测,利用稀疏-稠密窗口势能集筛选缩短了检测时间。由于WGPE利用了HOG特征计算过程中的梯度信息,因此本算法与其他的基于 HOG的快速检测算法比较,并不需要增加过多的计算开销,在背景较为平滑的图像中,与文献[14]检测方法相比具有较少的检测时间,对于较复杂的背景,本算法与传统的 HOG检测算法相当。实验表明在人体检测的准确率和效率方面有所提高,对于处于半遮挡情况下人体检测,准确率也有明显提高。
2 窗口边缘梯度势能
本文定义了窗口边缘梯度势能函数,当WGPE低于阈值时,则表明窗口中图像背景区域较均匀,出现人体的概率较低,当WGPE值较高时,表明图像边缘信息丰富,出现人体的概率也随之提高。边缘势能是一种刻画目标边缘特征梯度势能变化的函数,不仅在人体检测中适用,在检测目标与背景区域具有边缘差异的环境中同样适用。因此对人体边缘特征不具有特异性。
一阶,二阶和紧边梯度势能函数分别为
紧边梯度势能函数中e为调节因子,其作用是调节在x方向的梯度势能强度,在整体势能中的反应强度。n为势能函数总数,m为窗口总数,当x和y方向上的梯度为 0时,梯度势能函数有最小值 0。它为一种对称能量函数,实际上二阶势能函数可看作是紧边势能函数的一个特例。
图1(a)为3个通道中最大通道梯度的一阶梯度势能函数E1能量分布;图1(b)为3个通道中最大通道梯度的二阶梯度势能函数E2能量分布;图1(c)为3个通道中最大通道梯度的沿x方向的紧边能量函数E3能量分布图。由图1可看出在一阶梯度势能函数的能量分布较杂乱。而图1(b)和图1(c)中人体边缘能量分布较为明显。窗口梯度势能函数选择E2或E3较合适。
将INRIA Person Dataset[4]中2100个正实例分为10组,分别计算他们的梯度能量,实验中正例图像大小为96×160,选取64×128的窗口计算其梯度势能,忽略窗口边缘像素,并对正样本中的图像进行左右镜像以获取更多的统计样本,其分布直方图结果如图2所示。横轴为组编号,纵轴为平均梯度势能,具有人体的图像,90%以上的样本图像窗口的WGPE均值大于300,造成这样的结果其原因主要是由于人体在背景中边缘梯度能量明显。
对于负样本,选取了INRIA图像数据库中街景图像的1000个负样本,分为10组分别计算他们的梯度能量,实验中对不同大小的负样本图像,对负样本中图像按 16像素偏移计算多个滑动窗口的WGPE平均值,发现90%以上的负样本图像窗口的梯度势能函数值均值小于 200。造成这样的结果其原因主要是由于自然街景下的边缘梯度能量明显较弱,结果如图3。
实验中我们采用文献[4]中使用的64×128大小的检测窗口。对于正样本我们采用 INRIA Person Dataset[4], CVC-01 Pedestrian Dataset[15]和MIT CBCL[16]人体数据库的人体图片并按照文件名进行随机分组。在负样本中采用INRIA Person Dataset中负样本的日常环境背景进行分组,如:街景,楼梯,海岸,草地,山地,都市街景,森林,大门等分组进行分析,其中图3中第4组异常的原因在于该组图像中主要由草地,树林等边缘信息变化较大的环境图片组成。因此边缘势能信息要明显高于有人体图片的边缘势能。而第3组图像中由于图像中主要部分为天空和海洋,边缘特征信息变化不大,因此它们的边缘势能数值较低,明显低于有人体图像的边缘势能范围。由于边缘梯度势能反映的是边缘信息的梯度变化情况,对于检测窗口大小发生变化时,需调整检测窗口阈值。
图1 测试图像中各种梯度势能分布情况
图2 图像96×160的10组正样本WGPE的直方图
图3 图像中10组负样本WGPE的直方图
3 稀疏-稠密窗口势能集
在不同尺度下,利用 HOG特征进行图像人体检测,检测时间会随着尺度层数的增多而产生较长的检测时间。本文提出基于稀疏-稠密窗口势能过滤集的方式利用人体边缘梯度特征的分布对人体检测过程进行优化,以减少窗口检测的时间,提高人体在线检测响应能力。
本文方法在窗口特征计算时,通过减少窗口数量缩减人体检测时间,为此需要对窗口进行筛选。文献[14]提出采用级联方式,利用Harr特征进行粗过滤,再使用 HOG特征进行进一步检测。会获得较好的检测时间和效果。但该方法同时也增加了新的Harr特征计算时间。本文的思路是利用HOG中对梯度信息结合WGPE来进行预处理,并不需要过多的特征计算。为此我们定义了3种检测窗口子集。稀疏窗口势能集,稠密窗口势能集和过渡窗口势能集。
定义1检测窗口 win为若干个块(block)构成,其中一个块由4个上下左右相邻的子单元构成,检测窗口的宽度为n×子单元×8,高度为n×2×子单元×8。
定义3稠密窗口势能集 S W(n) = {win1, win2,…,winn} ∧ ∀F( wini)>T,是若干个窗口的集合,且每个检测窗口中平均势能值都大于阈值T。
稠密窗口势能集的作用是对窗口数量进行初步筛选,针对复杂背景中,背景区域中像素间梯度变化较快,如有较大区域是草地的图像,这类区域在检测时可以进行过滤,其中T为平均稠密窗口势能阈值,由正样本训练数据的平均窗口势能均值加两倍方差计算得到。即T=mS+ 2ss。
定义4稀疏窗口势能集 F W(n) = {win1, win2,…,winn} ∧ ∀F( wini)<d是在若干个窗口的集合,且每个检测窗口中平均势能值都小于阈值d。
稀疏窗口势能集的作用是对平滑区域进行筛选,针对非人体区域中像素间梯度变化并不明显,在检测时进行过滤,采用窗口平均梯度势能函数来衡量窗口中梯度分布大小,较小梯度分布出现人体概率较低,如有较大区域是天空部分的图像。其中d为平均稀疏窗口势能阈值,由负样本训练数据的平均窗口势能均值减两倍方差计算得到。即df=mf-2sf。
定义5过渡边缘梯度势能集 M W(n) = {win1,win2,…,winn} ∧ (T/ 2 < ∀F( wini) <d/2)是 若 干 个窗口的集合,且每个检测窗口中平均势能值位于稀疏窗口和稠密窗口间1/2区域。
过渡边缘梯度势能集是放宽检测窗口的分布区域,目的是找出处于半遮挡环境下的人体目标。它将与加权 SVM 检测算子进行卷积,确定半遮挡的人体目标。
对给定输入输出训练集S={(x1,y1),… ,(xn,yn)}∈ (X×Y)n。采用类似文献[6,14,17]的方法,首先将遮挡下肢的人体图像作为正样本加入训练集中,为实现了用线性超平面划分非线性可分的样本,具体方法是:根据样本分布的几何位置,确定一个初始的线性分类超平面,旋转这个超平面直至所有的正样本都位于这个超平面的一侧,则另一侧的那些负样本与正样本是线性可分的,利用拉格朗日LSVM找到最优的线性分类超平面,将剩下的负样本与正样本组成新的训练集,重复这些步骤直至所有的负样本都被正确分开,这样就找到了若干个线性分类超平面,组成了级联结构。
4 遮挡环境下人体快速检测算法
本文按照文献[4]方式来定义 HOG特征,与文献[4]不同的是,在计算好图像梯度后,首先采用稀疏-稠密窗口势能集对待检测的窗口进行过滤,再利用加权级联 SVM 对过滤势能窗口集进行卷积以实现人体检测,使用加权级联SVM来训练检测算子。
采用类似于文献[18]的概率学习框架,对图像按不同尺度进行检测,计算出不同尺度下图像的HOG特征,人体检测窗口为目标人体可能出现的位置窗口:
其中WinL为第L层检测窗口集合,L为不同尺度的层次,实验中最大层数为64。遮挡环境下的人体快速性检测算法如下(其中λ为缩放因子,实验中取1/1.05):
步骤1 为去除光照对图像的影响,在 RGB色彩空间上对图像进行色彩伽马归一化。
步骤2 计算图像边缘信息:使用1维的离散微分掩码模板[-1 0 1],同时在水平和垂直两个方向上对图像进行卷积计算,获取图像一阶梯度信息。
步骤3 按照文献[4]方式构建梯度方向直方图。
步骤4 forL=Mto 1
Inew(x,y) = resize(I'(x,y),s);计算Inew(x,y)中各窗口的平均梯度势能;
计算稀疏-稠密窗口势能集SWL和FWL;
按照公式(2)计算过渡边缘梯度势能集MWL;
采用加权级联 SVM 对MWL窗口进行人体检测,满足阈值条件的为人体窗口Hwin;
若MWL中所有窗口WGPE小于阈值则break;
s←λL;
endfor
5 实例及分析
训练基于加权级联SVM人检测器采用2526正样本和2700负样本,来自INRIA图像数据库person对象集[4],CVC-01 Pedestrian Dataset[15]和 MIT CBCL人体数据库[16]。在正样本中,人体穿着不同颜色,款式和纹理的服装,有不同的动作,面对摄像机的角度变化也较大,且在不同的光照条件和背景中拍摄的。负样本集图像中没有人体,这些图像是自然场景图像。在Intel Core2 2.4 GHz CPU, 2 GB RAM的机器上测试。
5.1 检测准确率评价
实验中采用HOG图像特征,图4(a)为采用多尺度HOG特征检测结果,图4(c)为文献[6]中基于肢体部分后的检测结果。图4(b), 4(d)采用了加权级联 SVM 算子,对于下肢部分遮挡的人体也可以检测出,它们为直接采用加权级联 SVM 算子进行检测的结果,由图可看出存在部分误检窗口,而图4(e)则为通过过滤集窗口在检测前进行过滤,检测准确率优于图4(d),进一步验证了窗口梯度势能对于检测准确率提高的能力。
图4 部分遮挡环境下人体检测结果
为了进一步了解和分析真正类率和负正类率两类误差,我们引进利用 ROC (Receiver Operating Characteristic)曲线的ROC分析法来说明它。ROC曲线直观反映了人体检测的灵敏度和特异性以及两类误差率之间的关系。
检测结果表明,本文方法对于无遮挡图像一般具有较高检测率,而对于人体部分遮挡或者与环境背景融为一体难以区分时,出现了一些漏检现象。整体检测结果用图5 的 ROC曲线表示,以描述虚警率与准确率之间关系。本文方法的曲线与横轴间所围成的面积较大,表示在所有代价比上的平均性能较优,也反映了基于FWGPE对遮挡人体检测的可分性好于传统的HOG人体检测方法[4]。
图5 多层HOG方法[4],HOG-LBP[8]和本文的FWHOG方法ROC曲线图
5.2 检测效率
利用稀疏-稠密窗口势能集检测算子进行行人检测,可以缩短稀疏窗口检测结果中约30%的检测时间,而准确率仅下降0.15%,结果如图6所示。利用HOG稀疏窗口检测时间为每幅300 ms。相对于不使用稀疏-稠密窗口势能集过滤,直接用 HOG进行人体检测检测,时间在700 ms,系统可以缩短40%以上的检测时间,而准确率下降0.15%以下。这主要是因为稀疏窗口人体检测器仅对粗糙级人体检测器的结果进行检测,而粗级人体检测器利用了HOG 计算所需计算的水平梯度和垂直梯度信息计算梯度能量,并不需要过多的计算开销。因而可以极大提高检测效率。
图6(a), 6(b), 6(c)为直接使用HOG特征人体检测的结果,其中图6(b)为分层数为16;图6(c)分层数为64;图6(d)为本文方法,分层数为17层。由图6可以看出,由于人体在图像中大小的不同,当分层较高时检测的漏检率会下降,准确率上升。尺度大小的选择,不仅决定了检测时间,也决定了检测准确率。采用本文的方法,通过判断WGPE的大小,可获取较少的分层。将 FWHOG算法与塔式HOG检测算法对测试集中10组图像进行检查的平均结果如表1所示。
表1中最后一行为采用文献[4]方法时总检测窗口数量,当第 5层时,检测窗口数量为 880,第 9层时,由于窗口尺寸变小,检测窗口数量下降为561。当阈值T=200时,采用本文FWHOG方法,在第5层可跳过167个检测窗口,第9层可跳过86个检测窗口。当阈值越大,跳过的检测窗口也越多。
图6 基于FWGPE的HOG检测方法与传统的HOG多尺度检测方法在不同尺度下人体检测结果
表1 不同尺度下,FWHOG算法相对于多尺度HOG检测中过滤的窗口数
表2 多尺度及不同梯度势能阈值条件下FWHOG算法与多尺度HOG检测中漏检率与检测时间(ms)
实验中对人体局部遮挡的图像进行检测分析,定义图像中人体遮挡率(Human Occlusion Ratio,HOR)HOR=PC/HB。其中(Part Occlusion PC)为人体被遮挡部分的像素大小,HB(Human Body)为人体的整体像素(实验中,根据所见肢体大小按比例估计得到)。HOR比例分别为 0%-20%,20%-40%, 40%-60%, 60-80%, 80%以上5组,每组100张图片。实验发现,HOR小于40%时,FWHOG的检测 TPR较高,而当 HOR大于 60%以上,FWHOG算法的 TPR(Ture Positive Rate)明显下降。当HOR高于80%时,由于FWHOG方法失效,原因在于遮挡部分梯度势能过低,检测窗口被过滤,结果如表3所示。
6 结束语
本文提出了一种新的基于窗口梯度势能的人体快速检测算法。该算法基于 HOG特征,利用加权级联 SVM 来提高对遮挡环境下人体的快速检测。由于在现实应用中,视频图像分辨率不高,对于近距离的人体运动图像和距离的人体图像在像素级的分布上差异往往较大,因此需要使用不变尺度对人体进行检测。为提高算法对于图像中遮挡人体检测的准确率,本文提出采用加权级联 SVM 进行分层检测,分别在不同分辨域下分别对人体进行检测,实验表明该算法与文献[4,6,8]所采用的HOG检测相比,检测准确率有明显提高,同时通过两种过滤集方式,也提高了检测效率,缩短了检测时间。在未来的工作中,将进一步提高算法的运行速度,满足目标跟踪等应用的需求。
表3 人体局部遮挡情况下FWHOG算法与多尺度HOG算法检测遮挡分析
[1]甘明刚, 陈杰, 刘劲, 等. 一种基于三帧差分和边缘信息的运动目标检测方法[J]. 电子与信息学报, 2010, 32(4): 894-897.
Gan Ming-gang, Chen Jie, Liu Jin,et al.. Moving object detection algorithm based on three-frame-differencing and edge information[J].Journal of Electronics&Information Technology, 2010, 32(4): 894-897.
[2]Dollár P, Babenko B,et al.. Multiple component learning for object detection[C]. Proceedings of 10th European Conference on Computer Vision, Marseille, France, 2008:211-224.
[3]Lienhart R and Maydt J. An extended set of haar-like features for rapid object detection[C]. Proceedings 2002 International Conference on Image Processing, New York,USA, 2002, Vol.1: 900-903.
[4]Dalal N and Triggs B. Histograms of oriented gradients for human detection[C]. 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition,San Diego, USA, 2005: 886-893.
[5]Schwartz W R, Kembhavi A,et al.. Human detection using partial least squares analysis[C]. 2009 IEEE 12th International Conference on Computer Vision, Kyoto, Japan,2009: 24-31.
[6]Ramanan D, Forsyth D A, and Zisserman A. Tracking people by learning their appearance[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 29(1):65-81.
[7]Chandrasekhar V, Takacs G, Chen M,et al.. Compressed histogram of gradients: a low-bitrate descriptor[J].International Journal of Computer Vision, 2012, 96(3):384-399.
[8]Wang Xiao-yu, Han T X, and Yan Shui-cheng. An HOG-LBP human detector with partial occlusion handling[C]. 2009 IEEE 12th International Conference on Computer Vision,Kyoto, Japan, 2009: 32-39.
[9]Agarwal S, Awan A, and Roth D. Learning to detect objects in images via a sparse, part-based representation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2004, 26(11): 1475-1490.
[10]Leibe B, Seemann E, and Schiele B. Pedestrian detection in crowded scenes[C]. 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, San Diego,USA, 2005: 878-885.
[11]Mikolajczyk K, Schmid C,et al.. Human detection based on a probabilistic assembly of robust part detectors[C]. The 8th European Conference on Computer Vision 2004, Prague,2004: 69-82.
[12]Wu B and Nevatia R. Detection of multiple partially occluded humans in asingle image by bayesian combination of edgelet part detectors[C]. Tenth IEEE International Conference on Computer Vision, Beijing, China, 2005, 1:90–97.
[13]Hauberg S and Kim S P. Predicting articulated human motion from spatial processes [J].International Journal of Computer Vision, 2011, 94(3): 317-334.
[14]李同治, 丁晓青, 王生进. 利用级联SVM的人体检测方法[J].中国图象图形学报, 2008, 13(3): 566-570.
Li Tong-zhi, Ding Xiao-qing, and Wang Sheng-jin. Human detection with a coarse-to-fine cascade linear SVM[J].Journal of Image and Graphics, 2008, 13(3): 566-570.
[15]David G, Angel D S, Antonio L,et al.. Adaptive image sampling and windows classification for on-board pedestrian detection[C]. The 5th International Conference on Computer Vision Systems, Bielefeld, Germany, 2007. http://biecoll.ub.uni-bielefeld.de/volltexte/2007/8.
[16]Papageorgiou C and Poggio T. A trainable system for object detection[J].International Journal of Computer Vision, 2000,38(1): 15-33.
[17]Davenport M A, Baraniuk R B, and Scott C D. Tuning support vector machines for minimax and neyman-pearson classification[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(10): 1888-1898.
[18]Albanese M, Chellappa R, Cuntoor N,et al.. PADS: a probabilistic activity detection framework for video data[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(12): 2246-2261.