基于计算机仿真的行人检查算法研究
2014-01-15蔡苏亚
蔡苏亚,刘 璟
(陕西工业职业技术学院 陕西 咸阳 712000)
行人检测就是把视频序列中出现的行人从背景中分割出来并精确定位。行人检测是当前计算机视觉和模式识别领域最为活跃的研究课题之一。行人检测可以应用到许多实际应用场合,比如智能监控系统,汽车辅助驾驶系统,刑事侦查,高速公路监控,超市等人流量大的场合的人流量统计,自动门等[1]。行人检测的目标是得到每个行人在视频中每帧的空间位置。
早期以静态图像处理中的分割、边缘提取、运动检测等方法为主。例如:1)以Gavrila为代表的全局模板方法:基于轮廓的分层匹配算法,构造了将近2 500个轮廓模板对行人进行匹配,从而识别出行人。为了解决模板数量众多而引起的速度下降问题,采用了由粗到细的分层搜索策略以加快搜索速度。另外,匹配的时候通过计算模板与待检测窗口的距离变换来度量两者之间的相似性。2)以Broggi为代表的局部模板方法:利用不同大小的二值图像模板来对人头和肩部进行建模,通过将输入图像的边缘图像与该二值模板进行比较从而识别行人,该方法被用到意大利Parma大学开发的ARGO智能车中。3)以Lipton为代表的光流检测方法:计算运动区域内的残余光流;4)以Heisele为代表的运动检测方法:提取行人腿部运动特征;5)以Wohler为代表的神经网络方法:构建一个自适应时间延迟神经网络来判断是否是人体的运动图片序列。以上方法,存在速度慢、检测率低、误报率高的特点。随着科学技术的飞跃发展,根据对行人描述(表达)方法的不同,行人检测算法可以基本分为三类:基于形状模板匹配的方法和基于表观特征描述的方法,以及将形状和纹理结合的方法。根据对人体是以一个整体进行检测还是分部件进行检测,又可以将行人检测算法分为基于部件的检测方法和基于整体的检测方法。
P.Dollár等[1]对公开发表的16种检测器进行总结,结果发现:基于SVM[2]的方法和基于Adaboost[3]的方法由于其理论基础强、可扩展性好和效果突出是目前最流行的行人检测方法。而且几乎所有的检测器都采用了某种梯度直方图特征,如 FDF[4]、HOG[2,5]和 SIFT[6]等。 还有其他的一些纹理特征比如LBP[7],还有一些组合特征比如HOG-LBP[8]也在行人检测方面得到了很好的应用。级联学习是一种快速算法能提高检测速度和检测性能。
v-FDF是一个计算复杂度低,但能很好的表征行人的特征。此外SVM级联在行人检测上能取得很好的性能。因此本文提出了一种基于v-FDF的SVM级联行人检测方法。
1 本文方法概述
整体方法实现流程图如图1所示。
图1 行人检测方法流程图Fig.1 Flow chart of pedestrian detection method
方法的详细介绍如下:
1)提取特征:对行人检测训练样本提取v-FDF特征,FDF特征每一个block是4维。
2)SVM级联训练:这里的 SVM级联与Zhu[5]的方法类似。此外,为了避免中途出现因为负样本不够而退出的情况,负样本采用在线生成方式。
3)检测:SVM级联训练后可以得到一个级联分类器,对测试样本进行多尺度遍历检测,可以得到ROIs,为了使每一个行人尽可能的只被一个矩形框包含,所以用非最大化抑制算法(NMS)进行后处理,得到最终检测结果。
2 v-FDF特征提取
FDF特征是一种比较简单的特征,能够表征行人的轮廓特征,适合于行人目标的检测。 FDF特征计算过程如下。
首先要计算梯度值,如公式(1)所示。
这里的 Sd(x)是计算后的梯度值,是 I(x)灰度图像,* 表示卷积运算,Gd是梯度算子用来计算4个不同方向的梯度方向为 d∈D,D={0°,45°,90°,135°}。 B 是 2 维平均滤波器可以用来平均化。
然后对求得的梯度值,用高斯算子进行模糊,在整张图像以M*N(如4*4)大小为单位,对这些像素点的初级特征值取平均作为这M*N个像素点的特征值,得到的4个方向的平均梯度值向量串起来作为图像的最终FDF特征向量。
为了提高特征表征行人的能力,本文参照v-HOG特征对FDF特征进行修改提出了v-FDF特征。v-FDF特征改变了FDF特征里M*N(block大小)固定的方式,参照v-HOG的block大小改变方式,M和N的比值为1:1或1:2或2:1,M的大小从4变化到64,改变步长为4个像素,这样可以得到一系列block大小不同的FDF特征。
3 SVM级联训练
支持向量机(Support Vector Machines,SVM)是 Vapnik 等人根据统计学习理论提出的一种新的机器学习方法[2,5],其最大的特点就是根据Vapnik的结构风险最小化原则,尽量提高学习的泛化能力,即由有限的训练样本集得到的小误差仍能够保证对队里的测试集小的误差。
本文所用的SVM是用LIBSVM软件包来实现的。设置每一级最低检测率为99.5%,最高检测率为50%,目标虚警率为10-8,不设定级联层数,只有达到目标虚警率才退出级联训练。SVM级联方法和Adaboost级联类似,以SVM得到的分类器为弱分类器,这样每一个v-FDF特征(block)可以对应一个弱分类器。初始化样本权重为均匀分布,每一次迭代选择错误率最低的特征,保存该弱分类器,然后改变样本权重分布,分错的样本权重增加,分错的样本权重降低,然后再对用SVM训练得到新的弱分类器,同样选择错误率最低的弱分类器。强分类器由弱分类器投票加权得到,权重与该弱分类器的错误率相关。强分类器的虚警率满足要求则结束本级训练。如果达到目标虚警率要求则退出整个级联训练。整个SVM级联训练算法如算法1所示。
算法1 The SVMCascade algorithm
输入:正负样本,目标虚警率Ftarget,最大虚警率f,最小检测率d
初始化: i=0, D(0)=1.0,F(0)=1.0, Ftotal=1.0
While Ftotal>Ftarget
i=i+1, F(i)=F(i-1), ni=0 是特征个数。
While F(i)>f
初始化样本权重,用SVM遍历训练所有特征得到错误率,这里需要改变阈值使D(i)>=d。选择错误率最低的弱分类器(特征),把该分类器保存下来,ni=ni+1,更新权重,继续遍历所有特征得到新的最佳弱分类器,强分类器为ni个弱分类器加权之和。依次直到进行强分类器性能F(i)满足要求,退出该级训练。
End
保存分类器和特征位置,阈值等等,更新负样本,删掉检测正确的负样本,加入检测错误的负样本,确保负样本数目不变,采用在线负样本生成机制。Ftotal=Ftotal*F(i)。
End
输出:一个包含多个强分类器的级联分类器
4 实验结果和分析
4.1 实验环境
所有实验都用matlab2009a实现的,计算机配置如下:Intel Core i3 540 CPU 3.07GHZ, 内存 3G,Windows 7,64 位系统。本文实验的行人正样本来自INRIA数据库,负样本有INRIA库中的负样本和网上下载的大量无人图片中截取得到,检测库用INRIA,SDL,USC-C等。正负样本比为2 000:20 000,正样本在训练中不变,负样本采用在线生成方式,在无人的大图上截取负样本。
4.2 实验结果及其分析
行人检测器的性能大多用FPPW (False Positive Per Window)和FPPI曲线来表示,经过实验得到本文方法的FPPW曲线与其他方法的对比,如图2所示。
从图2可以看出,本文的方法性能比基于Adaboost和SVM的方法好。在相同的虚警率下漏检率越低,检测率越高,方法的性能就越好。
图2 FPPW曲线对比Fig.2 Comparison of FPPW curve
本文的方法是用Matlab实现的,实验表明在检测640*480图片时,本文方法可以达到10帧每秒,基本上可以满足实时性要求。检测速度比较快是因为v-FDF特征计算简单,耗时少,并且选择出来的特征表征能力强,在级联检测时可以迅速的收敛。
对INRIA,SDL数,和USC 3种数据库进行检测,部分结果展示如图3所示。实验结果图表明本文的行人检测方法可以准确快速的检测直立,不同直立姿势和无遮挡的行人,但对于被遮挡的行人不能很好的检测出来。
图3 行人检测结果图Fig.3 The results of pedestrian detection
5 结 论
文中的行人检测方法是基于v-FDF和SVM[9-10]级联的,可以提高了检测性能和检测速度。实验结果表明本文的方法性能比基于adaboost的方法好,比除了HOG-LBP+SVM之外的基于SVM的方法性能也好,并且检测速度能达到10帧每秒,基本上能达到实时性要求。但是本文方法也存在一些缺陷,比如不能处理遮挡问题,在人群密度大的场合检测性能差等,这正是下一步需要深入研究的问题。
[1]Dollár P,Wojek C,Schiele B,et al.Pedestrian detection:An evaluation of the state of the art[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,2012,34 (4):743-761.
[2]Dalal N,Triggs B.Histograms of Oriented Gradients for Human Detection [C]//Proceedingsofthe 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.San Diego,CA,USA,2005:886-893.
[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]种衍文,匡湖林,李清泉.一种基于多特征和机器学习的分级行人检测方法[J].自动化学报,2012,38(3):375-581.ZHONG Yan-wen,KUANG Hu-lin,LI Qing-quan.Two-stage pedestrian detection based on multiple features and machine learning[J].Acta Automatica Sinica,2012,38(3):375-581.
[5]Zhu Qiang,Avidan S,Yeh M C,et al.Fast human detection using a cascade of histograms of oriented gradients[C]//Proceedings of the 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.New York,NY,USA,2006:1491-1498.
[6]Lowe D G.Distinctive Image Features from Scale-Invariant Key points[J].International Journal of Computer Vision,2004,60(2):91-110.
[7]Mu Y,Yan S,Liu Y,et al.Discriminative local binary patterns for human detection in personal album[C]//Proceedings of the 2008 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Anchorage, AK,2008:1-8.[8]WANG Xiao-yu,Tony X H,Yan Shui-cheng.An HOG-LBP human detector with partialocclusion handling [C]//Proceedings of 12th International Conference on Computer Vision.Kyoto,2009:32-39.
[9]薛丹,孙万蓉,李京京,等.一种基于SVM的改进车牌识别算法[J].电子科技,2013(11):22-25.XUE Dan,SUN Wan-rong,LI Jing-jing.An improved algorithm of license plate recognition based on SVM[J].Electronic Science and Technology,2013(11):22-25.
[10]吉卫卫,谭晓阳.SVM及其鲁棒性研究[J].电子科技,2012(5):97-100.JI Wei-wei,TAN Xiao-yang.Research of the SVM and its robustness[J].Electronic Science and Technology,2012(5):97-100.