APP下载

基于AdaBoost算法与改进帧差法的动态行人检测

2017-09-29巨志勇彭彦妮

软件导刊 2017年9期

巨志勇 彭彦妮

摘 要:针对传统基于HOG特征与AdaBoost算法分类器在目标检测中存在检测速度慢、误差率大的问题,提出一种基于改进帧差法与AdaBoost算法相结合的动态行人检测方法。帧差法是运动目标检测的一种算法,能够将运动中的区域很好地显示出来。改进的帧差法不再单一使用一个阈值,而是利用多个阈值,以更好地分割出检测行人,再通过分类器进行多尺度检测来确定目标。该方法减少了传统HOG特征的检测时间,能够更快地找出感兴趣区域,并提高检测速度和误差率。

关键词:AdaBoost算法;帧差法;HOG特征;行人检测

DOI:10.11907/rjdk.171401

中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2017)009-0050-05

摘 要:针对传统基于HOG特征与AdaBoost算法分类器在目标检测中存在检测速度慢、误差率大的问题,提出一种基于改进帧差法与AdaBoost算法相结合的动态行人检测方法。帧差法是运动目标检测的一种算法,能够将运动中的区域很好地显示出来。改进的帧差法不再单一使用一个阈值,而是利用多个阈值,以更好地分割出检测行人,再通过分类器进行多尺度检测来确定目标。该方法减少了传统HOG特征的检测时间,能够更快地找出感兴趣区域,并提高检测速度和误差率。

关键词:AdaBoost算法;帧差法;HOG特征;行人检测

DOI:10.11907/rjdk.171401

中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2017)009-0050-05

Abstract:Traditional classifier based on HOG feature and AdaBoost algorithm exists some of the problems of slow detection speed and high error rate. Therefore, a dynamic pedestrian detection method based on combination of the improved frame difference method and AdaBoost algorithm. The frame difference method is an algorithm of moving target detection which the movement of the area can be good show.The improved frame difference method is no longer a single use of a threshold,but the use of multiple threshold segmentation, which has better pedestrian detection and then determines the target classifier by multi-scale detection. This method reduces the traditional HOG feature detection time and faster to find the region of interest, thus preserve the detection of traditional method. At the same time it also can improve detection speed and error rate.

Key Words:AdaBoost algorithm; frame difference method; HOG features; region of interest; pedestrian detection

0 引言

隨着智能监控系统的普及,如何使用计算机代替人工进行监控已成为研究热点。作为检测技术的重要研究方向之一,行人检测在计算机视觉系统中得到了广泛应用,如在智能视频监控、智能汽车、机器人导航以及高级人机交互等领域。然而,由于行人自身姿态变化、服饰的多样性和复杂性、背景环境的多变等因素影响,使得提高行人检测精度依旧面临挑战。

国内外学者对行人目标已经深入研究多年,例如利用Haar小波和SVM分类器联合创建了行人检测器,利用神经网络提出算法分类器,或者利用AdaBoost算法创建瀑布分类器等[1-5],但是尚未实现一个很完善的算法。主要问题体现在以下两方面:①检测准确率低,许多不是行人的目标误以为是行人目标被检测出来,所以无法满足对系统的准确性要求;②检测速度较慢,满足不了大量应用对实时性的要求。

本文在原有的AdaBoost算法基础上,加入了改进的帧差法,利用两者优点的结合实现行人检测。实验证明,利用改进的帧差法与AdaBoost相结合的行人检测方法检测效果比单一方法的检测效果更好。

1 传统算法及原理

1.1 AdaBoost算法

AdaBoost算法是在不同训练集上训练出每一个弱分类器,然后将集成的各个弱分类器构建成为一个强分类器。样本如果分类正确,权重会降低;如果分类错误,则权重增大。该算法简单,提取样本容易,所需分类器也简单易得。在训练过程中不需修改除样本权重外的其它参数,也不需要引入关于弱分类器的一些先验知识,检测性能好,而且检测速度快,实时性好。

AdaBoost算法[8]过程具体如下:

(1)输入:N个训练样本(x1,y1),(x2,y2)…(xN,yN),xi∈RN为特征向量,yi表示样本类别标签,0、1分别代表行人负样本和正样本。endprint

(2)初始化权值:对于yi=0,1,分别初始化样本权重w0,-1=12m,w0,1=12l,其中m是负样本个数,l是正样本个数。

(3)对于t=1,2,…,T(T为最大训练迭代次数),假设第一轮的样本权重wli=D(i),i=1,…,N。具体过程为:①归一化样本权重wti←wti∑nj=1wtj,wt则是概率分布;②对每一个特征j训练一个弱分类器hj,其错误率为εj=∑iwi|hj(xi)-yi|,与样本权重有关;③选择最优的弱分类器,即最小错误率εt对应的分类器ht(x)。需要注意的是,如果找不到小于50%错误率的分类器,则停止,表明可能需要更好的分类器进行分类;④更新权重wt+1i=wtiβ1-eit,其中βt=εt1-εt,ei=htxi-yi,如果xi被正确分类,即htxi=yi,则ei=0,否则ei=1。

1.2 HOG特征提取

HOG[9]代表图像的局部特征。其局部提取范围称为窗口区域,需要判断窗口区域中是否包含行人目标。在提取的窗口中,进一步将窗口分成块和单元格,提取过程如图2所示。

由上述公式可知,对于一个N帧图像采用式(5)的三帧差法算出帧间差分值,接着根据式(7)使用thresholdL对DN二值化,得到运动目标的像素点DLN,再结合式(8)更新运动历史图,最后对MHIN(x,y)大于零的部分,通过较小的阈值得到该帧MN的结果。对本文提出的帧差法二值化,选取不同阈值作比较,设图3(a)阈值为 55,图3(b)阈值为15,图3(c)的大小阈值分别为50和15。由于路上的行人一般运动速度较快,所以历史记录时长τ设为15帧比较适宜。

本文研究中选用的正样本大小为64×128,为了检测出不同尺度下的行人,由于行人在视频中不断行走,捕获的行人正样本尺度大小不一,所以可以利用多种尺度检测行人。具体而言,即以一定比例尺度逐步放大待检测窗口,取图像中的一部分作为级联AdaBoost分类器的输入进行多尺度检测。可以得出,在该方法下,一个行人可能会被检测不止一次,甚至很多次,因为本文算法运用的程序最终是用绿色矩形框标注检测到的行人,当通过改进算法遍历检测到的所有矩形框,如果图像中出现的行人被多个矩形框标注(即大于等于两个),说明已被重复标记,需要去掉重复的矩形框,以保证每个被标注的图像只含有一个行人矩形窗口。如图4所示分别为64×128像素下的训练样本图片被标识的各种情况。

2.2 基于感兴趣区域HOG特征的行人检测

HOG特征描述子缺陷是维数太高、所含冗余信息多,为了进一步提高行人检测性能,提取感兴趣区域[14]HOG后,再使用级联AdaBoost算法[15]进行分类检测,在不影响系统准确性的情况下,提高了检测系统的训练和检测速度。

(1)图像分块原则。与传统的HOG特征提取一样,本文将样本图像中每8*8像素组成一个Cell,每相邻的4个Cell组成一个Block。

(2)训练样本选取。本文中行人样本均来自手动采集,采集到的行人样本像素均为64*128。正样本含有2 000张,负样本有3 000张。将采集到的样本分成两组,训练样本组含有1 500张正样本和2 500张负样本,测试样本中正负样本均含有500张。

(3)确定样本类型大小。通过实验发现,检测头部、腿部区域时,如果不含有周围背景,则检测效果明显降低。因此适当添加一些背景可使检测效果得到改善。只包含头部的像素为32*32,只包含腿的像素为40*56,所以选择检测窗口的大小为64*64。

(4)Sobel梯度算子提取特征。梯度特征反映图像的边缘特征,本文提取行人的头部与腿部都具有垂直边缘的特性。Sobel算子加强了中心像素各个方向像素的权重,与一维中心算子、2*2对角矩阵算子相比,检测效果最好。所以本文选择通过Sobel算子提取感兴趣区域的HOG特征。

在提取感兴趣特征时,特征维数过高会导致冗余信息多,且计算复杂,从而影响系统速度。因此,减少HOG特征维数显得尤为重要。行人虽然姿态繁多,但大多还是体现在头部和四肢部位,其它躯干部分的HOG不但对分类起不到作用,反而会带来负面影响,所以本文仅提取头部和四肢轮廓部位作为感兴趣区域[16]。另外,考虑到在实际的应用背景中,行人的手臂区域可能由于遮挡或姿态变化不易提取,因此本文仅對头部及下半身腿部特征进行提取并计算其HOG。行人数据与感兴趣区域ROI分割图片如图5、图6所示。

算法实现过程是将训练的正样本分成两个ROI感兴趣检测区域,对其中每个感兴趣区域块的HOG特征通过上述步骤计算出其HOG,最后将所有HOG汇总组成最终的特征向量。以下对两个ROI部位的位置进行确定,本次实验共采集了正负训练样本5 000张,其中训练正样本1 500张,负样本2 500张;测试正样本500张,负样本500张,通过多次实验得出结论最优的ROI位置和宽高数据。

通过取头部与腿部的HOG特征,最后计算得到维数为978维<3 780维,计算量大大降低,系统速度理论上得到提升。将改进后的基于感兴趣区域ROI的HOG与用传统HOG特征进行行人检测作实验对比,在两种算法检测率大致相同的情况下,对时间进行比较,数据显示提取感兴趣区域后,整体检测时间明显减少。

3 实验结果分析

本文通过调取安装在汽车上的行车记录仪,截取10段3分钟的视频,然后通过提取一帧一帧图像,采集正负样本进行分类器训练和行人检测的有关实验。采集的图片首先通过解码的方法,同时为了训练算法的需要及更方便地统计实验结果,将训练样本统一裁剪为64×128像素,检测样本为608×800像素。分类器采用了2 000张正样本,3 000张负样本,部分训练样本如图6~图9所示。

训练部分:将样本图片进行归一化处理之后,提取感兴趣区域的 HOG 特征量,再计算出 HOG 特征值;以这些测试样本中正样本和负样本中的 HOG 特征值为基准创建弱分类器,选择一个适宜的弱分类器个数,作为AdaBoost算法的输入变量,根据迭代算法训练学习将弱识别器转化为强识别器,将这些强分类器依次串联形成级联分类器,通过与改进的帧差法结合得到高检测率与速度快的分类器。endprint

检测部分:对于获取的视频图像,对其进行多尺度的遍历,寻找有可能为行人的子窗口;然后通过训练得到的分类器对子窗口进行筛选,排除不含有行人的子窗口,留下行人窗口;通过一系列工作及检测搜索,将重叠的行人子窗口进行合并等处理,得到了包含行人的矩形区域[17-18]。

以下是采用一种改进后的行人检测方法對具体场景下的行人样本进行实验检测,效果如图10所示。

ROC(Receiver Operating Characteristic Curve)接收器操作性能曲线,反映了检测率随着误报率的变化而变化。曲线下方到X轴区域的面积越大,表示该系统的检测性能越好,该区域为曲线下方区域(Area Under Curve,

AUC)。本文通过实验比较了3种不同的行人检测算法,其检测率与误报率ROC曲线如图11所示。

其中A、B、C分别表示Opencv自带的HOG+SVM检测算法和HOG+AdaBoost算法及本文改进后的行人检测优化算法。通过图11可以看出,在误检率相同的情况下,本文算法的检测率最高。即本文改进算法的AUC面积最大,检测性能最好。然而,从图10中可以看出,图10(c)中仍出现误检情况,所以该算法仍然存在不足之处,有待下一步优化。

4 结语

基于AdaBoost算法的行人检测算法具有很好的鲁棒性和实时性,非常适用于行人检测。本文提出了基于改进的帧差法与级联AdaBoost算法的行人动态检测方法,大大提高了行人检测率。然而,关于AdaBoost算法分类器的训练需要大量样本,其检测准确性也依赖于对训练样本集的选择。虽然改进的帧差法大大降低了行人检测误差率,但仍未完全消除误差。因此,还需要进行进一步研究,以便在行人检测系统的特征处理、信息融合、机器学习算法及拓展的行人目标跟踪方向上提出更完善的方法。

参考文献:

[1] 黄如锦,李谊,李文辉,等.基于多特征的AdaBoost行人检测算法[J].吉林大学学报:理学版,2010(5):449-455.

[2] PAPAGEPRGIOU C, POGGIO T. A trainable system for object detection[J]. International Journal of Computer Vision,2000,38(1):15-33.

[3] VIOLA P, JONES M, J SNOW D. Detecting pedestrians using patterns of motion and appearance[J]. International Journal of Computer Vision, 2005,63(2):153-161.

[4] GIOVANNI GUALDI, ANDREA PRATI,RITA CUCCHIARA. Multi-stage sampling with boosting cascades for pedestrian detection in images and videos[C]. IEEE European Conference on Computer Vision, 2010:196-209.

[5] DING YUANYUAN, XIAO JING. Contextual boost for pedestrian detection[C]. IEEE Conlerence on Computer Vision and Pattern Recognition, 2012:2895-2902.

[6] 刘洋,王海晖,云露,等.基于改进的Adaboost算法和帧差法的车辆检测方法[J].华中科技大学学报:自然科学版,2013(S1):379-382.

[7] FREUND Y, SCHAPIRE R E. A decision-theoretic generalization of online learning and an application to boosting[J]. Journal of Computer and Sciences,1997,55(1):119-139.

[8] 陆朝霞.基于AdaBoost算法的行人检测方法研究[D].西安:西北工业大学,2007.

[9] 邓建荣. 基于LBP与HOG特征量的行人检测[D].昆明:云南大学,2013.

[10] 严晓明. 一种基于改进帧差法的运动目标检测[J].莆田学院学报,2011(5):69-72.

[11] 汤中泽,张春燕,申传家,等.帧差法和Mean-shift相结合的运动目标自动检测与跟踪[J].科学技术与工程, 2010(24):5895-5899.

[12] 梁国山,朱秀昌.用于运动人体检测的改进的帧差法[J].电视技术,2009(S1):133-135.

[13] 刘军学,屈桢深,任行行,等.基于改进运动历史图像的多运动目标实时跟踪[J].计算机应用, 2008(S1):198-201.

[14] 曾春,李晓华,周激流.基于感兴趣梯度方向直方图的行人检测[J].计算机工程,2009(24):182-184.

[15] 崔潇潇,姚安邦,王贵锦,等.基于级联Adaboost的目标检测融合算法[J].自动化学报,2009(4):417-424.

[16] 郭烈,赵宗艳,聂倩,等.利用腿部区域HOG特征的行人检测方法[J].计算机工程与应用,2013(1):217-221.

[17] 苏松志,李绍滋,陈淑媛,等.行人检测技术综述[J].电子学报,2012(4):184-189.

[18] PEDERSOLIM,VEDALDIA,GONZALEZ J.A coarse-to-fine approach for fast deformable object detection[C].In Proc.IEEE CVPR,2011.

(责任编辑:黄 健)endprint