基于opencv的行人检测方法
2016-03-29汪成龙陈广财陈治明
汪成龙,陈广财,陈治明
(惠州学院电子科学系,广东 惠州 516007)
基于opencv的行人检测方法
汪成龙,陈广财,陈治明
(惠州学院电子科学系,广东 惠州 516007)
行人检测是机器视觉、图像处理等领域中很多有关应用的关键技术之一,在安防监控、无人汽车驾驶、机器人以及多媒体分析等方面具有广泛的应用前景和潜在的经济价值,因此成为了近年来的研究热点。本文介绍了基于opencv的行人检测方法,利用开源的跨平台计算机视觉库opencv在Visual Studio进行开发,调试及应用。通过提取行人的梯度方向直方图(HOG)特征,并利用事先准备的样本训练出来线性支持向量机(SVM)分类器对提取的行人特征进行分类,建立一种基于梯度方向直方图特征的行人检测系统。实验结果表明本设计符合要求,能够有效地检测出行人。
行人检测;HOG特征;SVM分类器;opencv
1 引言
据统计,截至到2014年末,中国民用汽车已到达14,598万辆,同比增加15.2%,在这一年,交通事故涉及受伤人数达21,182人,死亡人数达58,523人。行人在交通事故中总是处在弱势地位,非常容易受到机动车的伤害。因此,检测行人方法规避交通事故的发生和人员伤亡已成为全社会迫切的问题域。
针对上面的问题国内外专家学者花了大量精力进行研究,提出了很多比较优秀的算法,但是还有很多典型的关键的问题没有解决。其中国外Dalal等[1]首次提出了方向梯度直方图(HOG)这种检测算法;随后Mu等[2]根据行人特点,参照Ojala提出的局部二元模式特征LBP衍生出两个变种:Semantic-LBP(S-LBP)和Fourier LBP(F-LBP);国内常好丽等[5]推出了一种单目视觉运动的行人检测算法;而郭烈等[6]提出了一种基于Adaboost的算法来进行及时的行人检测。
本文则通过在VS2010上配置的Opencv环境,采用基于HOG+SVM的行人检测方法,建立行人检测的模型,通过输入预先准备的视频序列,来实现检测行人的功能。这可以很好为汽车检测行人,减少汽车撞人的事故发生。
2 基于HOG+SVM的行人检测模型
行人检测模型的目的是定位视频每一帧图像中各个行人的空间位置。本文的检测模型是行人整体的表观特征描述的方法。如图1:
图1 技术流程图
3 HOG特征提取
HOG(Histogram of Oriented Gradient,梯度方向直方图)特征是用于计算机视觉和图像处理进行目标检测的一种特征描述子,主要对局部图像的梯度方向次数或者信息进行计数。3.1 Gamma归一化
输入的检测图像由于光照等环境因素的影响,为能更有效的保存图像亮度信息,需要对整个图像进行归一化。Gamma归一化是对输入图片灰度值进行的非线性操作,使输出图片灰度值与输入图像灰度值呈指数关系:
其中指数훽即为Gamma,本课题取值Gamma=1/ 2.2
将图像横纵坐标方向的梯度计算出来,并根据这个得到像素位置的梯度方向值;求导操作不但能够刻画边缘,人影和一些纹理特征,还可以进一步降低光照的影响。图像中像素点(x,y)的梯度为:
式中Gx(x,y),Gy(x,y),H(x,y)分别表示输入图像中像素点(x,y)处的水平方向梯度,垂直方向梯度和像素值。像素点(x,y)处的梯度幅值和梯度方向分别为:
Dalal等实验表明,图像平滑处理会使图像的信号信息减少,影响人体检测的检测效果,导致错误率提高,因此只对图像做灰度化处理。
3.3 构建方向的直方图
目前比较常用的HOG结构有三种类型,分别是矩形HOG(R-HOG),圆形HOG和中心环绕形HOG,三者的单位都是块(block)。鉴于矩形HOG的参考文献较多,因此本文采用矩形HOG结构类型。Dalal实验表明,对于人体目标检测0度到180度这种不看度数正负级的方向范围可以获得更好的效果。然后又将这个梯度分布均匀分为훽个方向角度(orientation bins),每个方向角度范围都会对应一个直方柱。直方图如下:
图2 0度~180度的梯度方向直方图
3.4 block归一化
因为局部光线的改变以及前景-背景对比度的变化,使得梯度强度的变化范围非常大,所以必须对梯度强度做归一化。归一化可以进一步地对光线、阴影和边缘进行压缩。block归一化有四种方法,分别是L2-norm、L1-norm、L1-sqrt、L2-Hys,归一化的效果如下
图3 Block归一化的效果图
通过对比可以发现,L2-norm、L1-sqrt、L2-Hys效果是相差无几的,L1-norm与前三者相对较差。因此在本文采取L2-Norm with Hysteresis threshold方法进行归一化。
两年前,我班转来了一名特殊的孩子——小宇。他母亲病逝,父亲外出谋生,祸不单行,外公突遭事故痛失三指,抚养他的舅妈体弱多病,家中的顶梁柱舅舅又重病在身。在“童孙未解供耕织”的懵懂岁月里,他已饱尝丧母之痛,留守之苦;在“忙趁东风放纸鸢”的无忧时光中,他已初见岁月艰辛,人情冷暖;在“溪头卧剥莲蓬”的童趣年华中,他已体验囊中羞涩,生活不易。
4 SVM分类器
4.1 设置训练数据
在行人检测领域的研究过程中,世界各地的研究者们为了方便其他学者,将自己采集的行人图像上传到网络上,建立起了可公开测试的行人数据库,部分数据库如下表所示:
表1 部分行人数据库表
4.3 设置SVM的参数
在最简单的情况下,如果训练样本扩散为两个类,则其线性可分。然而,SVM还可以解决各种各样的问题,比如,非线性可分数据的问题,可以使用一个内核函数的支持向量机来提高样本的维数。因此,在训练svm分类器前必须定义一些参数,而这些参数都存储在类CvSVMParams的一个对象中。
5 实验结果和误差分析
5.1 实验结果
视频共有354帧,包含2010个行人。程序训练模型为4000张正样本,38000张负样本,检测出行人1823个,检测率90.6%,每一帧的检测时间约为1.5秒。
图3 检测效果
其中误判行人72个,误判率3.6%,误判多为形似行人的影子,镜子倒影及一些柱状物
5.2 误差分析
由实验结果可知,检测精度及误判率基本达到实验要求,但是检测时间长,而且离市场的要求还有一定的差距,经过分析,样本数量以及正负样本的比例问题和HOG庞大的计算量影响了实验结果。
6 结论
本文通过采用了基于HOG+SVM的行人检测方法,建立行人检测的模型,经过多次试验和推广,测精度达到90.6%,而误判率仅有3.6%,基本满足设计要求。但是本文对于行人检测的研究还不够深入和完善,对于检测精度还有提升空间,每一帧视频图像的处理时间也不尽理想。要取得一定的突破和成果,研究工作还有很长的路程要走。而今后,将会在以下两个方面展开工作:
(1)尝试在本课题检测模型的基础上结合跟踪算法,对检测出的行人进行跟踪,避免检测模型重复对检测出的行人特征提取,从而大量减少检测时间,加快检测速度。
(2)采用多特征融合的方法提取行人特征,增强特征描述能力,使分类器能更容易地检测出行人,从而提高行人检测的检测精度并降低误检率。
[1]DALAL N,TRIGG S B.Histograms of oriented gradients for human detection[C]∥In Proc.IEEE CVPR,2005,886-893.
[2]MU Y,YAN S,LIU Y,et al.Discriminative local binary patterns for pedestrian detection in personal album[C]∥In Proc.IEEE CVPR,2008.
[3]DOLLAR P,TU Z W,PERONA P,et al.Integral channel features[C]∥In Proc.BMVC,2009,1-11.
[4]WANTANBE T,Ito S,YOKOI K.Co-occurrence histo grams of or-I ented gradients for pedestrian detection[C]∥In Pro c.of The 3rd Pacific-Rim Symposium on Image and Video Technology,Tokyo,Japan,2009,37-47.
[5]常好丽,史忠科.基于单目视觉的运动行人检测与跟踪方法[J].交通运输工程学报,2006(3):55-59.
[6]郭烈,王荣本,张明恒,金立生.基于Adaboost算法的行人检测方法[J].计算机工程,2008(3):202-204.
[7]叶林,陈岳林,林景亮.基于HOG的行人快速检测[J].计算机工程,2010(22):206-207.
【责任编辑:吴跃新】
The Pedestrian Detection Method Based On Opencv
WANG Cheng-long,CHEN Guang-cai,CHEN Zhi-ming
(Department of Electronics Engineering,Huizhou University,Huizhou 516007,Guangdong China)
Pedestrian detection is one of the key techniques of many related applications in the field of computer vision and image processing,which has wide application prospect and potential economic value in the security monitoring,unmanned driving cars,robots and multimedia analysis aspects.Thus,it has become research hot spot in recent years.This paper introduces the pedestrian detection method based on opencv,using open source computer vision library developed,debugged and applied in Visual Studio.The histogram of oriented gradient extracted from pedestrian will be classified by linear SVM classifier trained with samples prepared in advance.A pedestrian detection system based on HOG is constructed.Experimental results show that the design accords with the requirements and it can effectively detect the pedestrian.
pedestrian detection;HOG features;SVM classifier;opencv
TN957.52
A
1671-5934(2016)03-0055-03
2016-05-22
惠州市科技计划项目(2015B010002008);广东省普通高校青年创新人才项目(2015KQNCX156)
汪成龙(1986-),湖北荆州人,讲师,博士,研究方向为机器研究。