Hadoop云平台下基于HOG特征和Adaboost分类器的快速行人检测算法
2018-04-25,,
, ,
(1.江苏开放大学 信息与机电工程学院,南京 210017;2.南京信息工程大学 电子与信息工程学院,南京 210017)
0 引言
行人检测技术是通过模式识别方法, 从视频序列或者静态图像中判断是否存在行人, 并对行人进行定位[1]。行人检测技术在安保领域、无人驾驶领域、机器视觉领域以及多媒体分析领域等具有广泛的应用前景[2-3]。
行人检测系统性能指标主要包括检测精度和检测速度, 其中, 检测精度主要由特征提取准确度决定, 检测速度主要由分类算法复杂度决定[4]。为提高行人检测的准确度, 2005年, Navneet Dalal和Bill Triggs首次提出了HOG特征[5], 同时利用SVM分类器对HOG特征进行分类。由于HOG能较好表征人体边缘, 并且对光照和微小形变不敏感, 该方法较好解决了行人检测技术的准确度问题, 成为当前行人检测技术研究热点。但是, 由于HOG特征是高维特征, 在分类阶段引入较大计算量, 影响行人检测速度。以大小为64*128的图像为例, 根据文献[6]算法参数计算得到的HOG特征为3780维。如此高维特征在分类器训练和识别中必然引入较大计算量, 导致在行人检测阶段速度较慢。因此, 有必要研究提高行人检测速度的快速算法。一种思路是对提取特征降维, 从而减少分类阶段的计算量。另一种思路是寻找速度更佳分类算法, 从而提升检测速度[7]。为此, 本文提出一种基于HOG特征和Adaboost分类器的快速行人检测方法。在HOG特征的基础上, 首先利用PCA降维方法对HOG特征降维, 在保持特征信息基础上, 减少特征维度, 最后使用Adaboost构建强分类器进行分类。即便采用了降维、快速算法等技术对行人检测进行优化, 但实际应用过程了任然不能满足海量数据实时处理的要求。
针对目前行人检测技术运算量大、实时性差等不足, 本文提出了一种Hadoop云平台下基于梯度直方图(HOG)特征和Adaboost算法的快速行人检测方法。该方法首先利用云计算模式提取图片的HOG特征, 然后利用PCA方法对提取特征降维, 最后使用Adaboost算法构建分类器对降维特征进行分类。利用不同场景照片对本文方法进行实验, 仿真结果表明, 在保持较高检测准确度前提下, 采用Hadoop云计算的检测速度比传统的基于HOG特征行人检测算法提高将近5倍, 有效提高检测算法的实时性。
1 基于HOG特征和Adaboost算法的快速行人检测方法原理
1.1 改进的Hadoop策略
为了能够使本文提出的行人检测方法可以在Hadoop平台有效实现, 文章采用了图像的处理接口HIPI ( Hadoop Image Processing Interface), 为了实现图像数据的输入和输出。而Hadoop技术在最初就是用来处理文本数据时, 一般会把输入的数据划分成多个大小相同的独立数据块, 但是这些并不适用于本文的海量图像处理, 而且会破坏图像的完整性。所以本文为了能有效的对海量图像进行行人目标检测, 文章在原有Hadoop基础上进行大量的创新, 使其输入的图像是完整的, 且每个数据块大小适中。
文章首先把一些图像小文件组合成为图像大文件的方法, 使用CombineFilelnputFormat接日, 以此来实现了多个图像小文件打包并合并到一个图像文件SequenceFile中, 并且不改变原有的每个图像小文件结构, 每一条图像小文件为记录存放在SequenceFile中生成键值对(
1.2 HOG特征提取
HOG特征核心思想是利用边缘方向密度分布表征目标的形状, 即利用图像的局部梯度方向表征目标的整体特征。
HOG 特征的提取主要包括字块划分、梯度计算、梯度投影及HOG 特征向量收集等4个步骤。具体算法流程如图1所示。
图1 HOG特征提取流程
如图1所示, 首先将输入图像划分为不同的子块(Block), 然后每个Block再划分为若干个单元(Cell)。为了提高HOG算子在不同场景的鲁棒性, 每个Block有一定重叠。然后利用梯度算子计算每个Cell中像素的梯度, 并在每个Cell内对计算梯度进行投影和归一化, 得到梯度方向直方图。其中, 梯度计算公式如公式(1)~(3)所示, 梯度投影过程实质是将梯度方向空间划分为若干个等分, 将所有各个像素的梯度方向投影到划分好的梯度方向空间中。最后梯度方向直方图归一化, 并将所有Cell的归一化梯度直方图连接在一起, 最终形成HOG特征。
dx(x,y)=I(x+1,y)-I(x-1,y)
(1)
dy(x,y)=I(x,y+1)-I(x,y-1)
(2)
(3)
其中:I(x,y)为像素值。
1.3 PCA降维技术
在得到HOG特征后, 由于特征维度较高, 如直接利用该特征分类计算量较大, 影响行人检测速度, 因此, 本文利用主成分分析算法(PCA)降维技术对HOG特征降维。
(4)
A= [aij],1≤i≤p,1≤j≤p
(5)
(6)
cor(Fi,Fj)=0
(7)
var(Fi)>var(Fj),i (8) 其中,cor(Fi,Fj)表示变换后特征的相关系数, var(Fi)表示变换后特征的方差。由于信息的测量标度一般用方差表示, 变量的方差越大, 表征其含有信息量越大。因此, 通过PCA算法后的特征向量, 从前往后所含信息量逐步减少且互不相关。选取前面若干个变量作为主成分, 当主成分中信息量得到原始信息量的95%以上, 即可较好地表征原始特征。对于降维后的特征向量, 使用Adaboost算法构建强分类器, 进行分类。 Adaboost是一种迭代算法, 其核心思想是针对同一个训练集训练不同的弱分类器, 然后把这些弱分类器集合起来, 构成一个更强的最终分类器(强分类器)。 假设样本集为X{xk},k=1,2,3,...,N, 类别空间集为Y{yk},k=1,2,3,...,N, Adaboost算法具体流程如下: 1)初始化样本权重。对于所有样本赋予相同的权值, 如公式(9)所示: (9) (10) 其中,I(Fi(xk))定义为: 根据分类误差ei, 计算若分类器Fi的权重αi, 如公式(11)所示: (11) (12) 其中:Zk为规范化因子, 其计算如公式(13)所示: (13) 3)当满足一定的迭代次数或分类误差ei为零时, 结束迭代, 得到最终的强分类器G(x), 如公式(14)所示。ei能否为0?根据误差定义可以为0. (14) 其中:M为迭代次数。 Adaboost算法能够对学习得到的弱分类器的错误进行适应性调整, 降低了错误较大的弱分类器权重, 从而最终能构建分类能力较强的分类器。 本文在训练弱分类器阶段, 使用了决策树分类器。最终利用Adaboost算法得到强分类器, 实现对场景图片进行快速行人检测。 本文首先基于输入的行人图片, 根据一定的比例缩放, 提取其HOG特征, 其中, 得到的HOG特征为3780维, 经过PCA降维后, 得到维度为808维。降维后的HOG特征, 以决策树作为弱分类器, 通过训练集数据利用Adaboost算法构建强分类器, 从而实现对行人图片实现分类。 实验使用NICAT与MIT两个数据集图片来组成训练集。NICAT数据库是目前规模较大的静态图像行人数据库,25551张含单人的图片,5207张高分辨率非行人图片,数据库中已分好训练集和测试集,方便不同分类器的比较;MIT数据库共924张行人图片,但只含正面和背面两个视角。本文也采用了开源的一些手工标注了的互联网图片作为样本库。由于包含人体的正样本数量远远小于对背景区域随机产生的负样本数量,这种情况训练的模型效果并不好。本文将采用文献[8]提出的方法选择具有代表性的负样本,同时也去除仅有平滑区域的负样本。训练集中正样本数量12 679,负样本数量13 991,其中所有样本都尺度归一化为64×128。 为了评估本文提出算法的性能,测试集选择国际上广泛使用且非常具有挑战的行人检测公共测试数据集INRIA数据库。总共选择有820张图像,包含不同光照,分辨率,姿态下的行人。 为验证算法的有效性, 在Hadoop云平台环境下搭建实验仿真平台, 分别使用经典算法和本文算法进行实验对比。在Linux平台下,采用1个主节点和20个工作节点组成一个云计算,其中20个工作节点的配置相同,选择文献[9]的图像分类算法进行对比实验,采用正确检测率、识别时间等指标对检测结果进行衡量。HOG特征采用积分图技术快速计算,其最优参数的设置参考文献[10]所示。AdaBoost级联分类器采用的开源模型,其参数设置保持一致。 为了定性分析本文所提出的算法的行人检测性能,分别使用传统的基于HOG特征的行人检测方法和本文方法对样本集训练和测试, 测试阶段分别计算两种方法的检测率、漏检率、虚检率和平均识别时间, 实验结果见表1。 表1 行人检测试验结果 从仿真结果可以看出, 本文算法在检测率、漏检率、虚检率指标基本与传统方法持平, 但是检测速度比传统方法提高了将近倍, 这较好的提高了行人检测算法的实用性和实时性。 为验证算法的实用性, 利用两种方法对几种经典场景下的行人照片进行检测, 检测结果如图2所示。值得注意的是,本文提出的算法具有强垂直边缘(与人类肢体相似)的物体更有可能误认为人体,如图2(a)路边竖立的架子;另一方面,本文提出的模型对携带行李、衣着宽松等情况的检测效果也相当理想,说明在压缩后的特征能保留最强特征,滤除干扰因素,提升检测精度。 图2 实际场景下行人检测性能对比 如图2所示, (a)~(c)为传统方法行人检测结果, (d)~(e)为本文方法检测结果。从图中可以看出, 对于几种经典场景, 在检测准确方面, 两种方法均能有效识别行人;在检测速度方面, 传统方法检测时间在秒以上, 本文方法识别时间在一秒以内, 本文方法比传统方法提高了倍多, 仿真结果充分证明了本文方法的有效性。 HOG特征算子能较好表征行人边缘特征, 在行人检测中广泛应用。针对由于HOG特征算法维度较高而导致的计算量复杂问题, 本文提出了Adaboost分类器的快速行人检测方法, 在提取图像的HOG特征基础上, 使用PCA降维方法对HOG特征降维, 再利用Adaboost分类器对降维特征分类。利用INRIA行人数据库对本文方法和传统的基于HOG特征的行人检测方法进行仿真验证,利用不同场景照片对本文方法进行实验。仿真结果表明, 在保持较高检测准确度前提下, 采用Hadoop云计算的检测速度比传统的基于HOG特征行人检测算法 提高将近五倍, 有效提高检测算法的实时性。 参考文献: [1] Nguyen D T, Li W Q, Ogunbona P O. Human detection from images and videos: A survey[J]. Pattern Recognition, 2016, 51:148-175. [2] 张 阳.复杂交通场景中基于视频的行人检测与跟踪若干关键问题研究[D].广州:华南理工大学, 2013. [3] Wang Z, Cao X B, Yang P K. Transfer Learning for Pedestrian Detection [J]. Neurocomputing, 2013, 100(1) : 51-57. [4] 苏松志, 李绍滋, 陈淑媛,等.行人检测技术综述[J].电子学报, 2012,40(4):814-820. [5] Enzweiler M, Gavrila D M. Monocular pedestrian detection:survey and experiments [J]. IEEE Trans Pattern Anal. Mach. Intell. 2009, 31(12):2179-2195. [6] Dalal N, Triggs B. Histograms of oriented gradients for human detection[J]. IEEE Conference on Computer Vision & Pattern Recognition. 2005:556-893. [7] 王 旋, 陈 忻, 刘 巍,一种适用于并行运算处理的实时高动态范围图像合成算法研究[J].影像科学与光化学, 2015,33(4):330-335. [8] 苏奇全, 贾宏光, 朱明超,等.基于递推闭环子空间辨识的自适应预测控制方法[J].信息与控制, 2015, 44(2):22-26. [9] 徐胜军,韩九强,赵 亮,等.用于图像分割的局部区域能量最小化算法[J].西安交通大学学报,2011,45(8):7-12. [10] Wang X, Han T X, Yan S. An HOG-LBP human detector with partial occlusion handling[A]. Proc. ICCV[C]. 2009:32-39.1.4 Adaboost算法
2 实验分析
2.1 实验数据集
2.2 实验环境及其参数设置
2.3 定性定量分析
3 结术语