APP下载

基于级联微型神经网络的多角度车辆检测方法

2018-11-17王辛岩

计算机工程与应用 2018年22期
关键词:分类器像素神经网络

李 浩,连 捷,王辛岩

1.西安文理学院 西安市物联网应用工程重点实验室,西安 710065

2.东南大学 交通学院,南京 210000

3.中国电子科技集团公司 第三十八研究所,合肥 230088

4.西藏大学 工学院,拉萨 850000

1 引言

快速准确地获取复杂交通场景的车辆信息是构建城市智能交通系统的基础。基于视频的图像识别和大数据处理技术的车辆检测方法吸引了大量学者的关注[1-2],例如天津工业大学苗长云团队于2016年利用亮斑分割和连通组件匹配来检测和定位车辆前灯,并利用区域跟踪算法对前灯进行跟踪。基于视频分析的车辆检测算法主要有帧差法[3]、背景建模法[4]、光流法[5]和3D模型法[6]。随着大数据技术的发展,近两年兴起的依靠GPU加速的深度学习方法也越来越受到重视,并且该方法在实际应用中效果显著。He等[7]在总结了Viola研究的基础上利用Haar特征与AdaBoost相结合的方法进行人脸检测。金立生等[8]将此方法进行了改进用于车脸检测,首先提取车辆的Haar特征,然后利用AdaBoost算法训练车辆检测分类器,该方法对于车辆的检测更加准确。Negri等[9]利用特征多发性及高分辨性的方法将HOG特征与Haar特征进行融合,然后利用融合特征训练AdaBoost分类器,由于两种特征都具有多发性以及高分辨率的特点,该方法对车辆检测率较高。DPM(Deformable Parts Model)[10]通过结合HOG和LSVM,并构建多个组件训练混合模型,在Pascal VOC数据库上获得了较高的车辆检测率。Dollar等[11]将梯度幅值、梯度方向及LUV颜色通道等10个通道的图像特征存储到查找表中,构成累积通道特征(Aggregate Channel Feature,ACF),并使用临近尺度特征估计算法大幅度提升了特征提取速度,同时获得了较好的检测率。这些方法虽然优势明显,但在面临复杂交通场景时检测的准确率也会降低。Viola的方法虽然效率较高,但在复杂交通场景下虚警率随之上升,不适用于精度较高车辆的检测。Negri的方法虽然检测率较高,但受特征融合的局限,对空间多维复杂角度的车辆检测性能较差,无法适用于交通路口等复杂场景的车辆检测。DPM的方法复杂度过高,计算速度较慢,无法保证车辆检测的实时性。Dollar的方法对多姿态的车辆检测效果不够理想,其在KITTI数据库上的检测率仅为55.89%。综上所述,基于视频的复杂场景车辆检测算法对车辆角度要求高鲁棒性差,基于3D模型以及深度学习的方法复杂度过高,对GPU资源消耗大,两者都不适合应用在复杂场景多角度环境下实时的目标检测。基于复杂度和准确率的问题,本文对基于AdaBoost算法的车辆检测进行了改进,从Sinha以及Lin等的三级AdaBoost递归模型获得启发,提出了一种结合局部归一化像素差值特征(Local Normalized Pixel-value Difference,LNPD)的AdaBoost嵌入微型的神经网络模型,并利用多态复杂角度样本对具有微型神经网络的AdaBoost模型进行训练,基于真实的交通场景进行测试实验,结果表明,本文方法完全能够满足现实场景中的车辆实时检测要求,且与传统的快速检测算法相比其检测性能提高30%以上。

2 像素差值特征的归一化处理方法

像素差值特征提取方法是静态检测中比较常用的特征获取方法[12-13],车辆前脸与人脸有较多相似特性,因此本文将该特征应用于车辆前脸检测中。由于像素差值特征易受光照条件变化影响[14],而使用如下的归一化像素差值特征对其基本模型进行改进,能有效地去除光照变化对检测的影响。

对于一幅图像I中的两个像素点x和y,其对应的灰度值分别为I(x)、I(y),则像素差值特征 f(x,y)表示为:

图像样本中的归一化像素差(NPD)特征模型可由式(2)表示:

其中,I(x)、I(y)为两个像素的灰度值,且I(x),I(y)≥0。当进行归一化处理时记为x=y=0即 f(0,0)=0。

归一化像素差值特征具有反对称性,即 f(x,y)或者 f(y,x)均可用于特征表示,该特性可以减少特征空间的维数且具有光照不变性。由于在训练该特征时需要将所有样本的特征存储到内存空间,需要占用极大的内存,对于一幅20×20大小的人脸图像,NPD特征的维度为(20×20)×(20×20-1)/2=79 800。这在尺度较小的特征维度的人脸检测领域尚可使用,对于尺度较大的车辆图像,NPD特征的维度非常大,如果将样本归一化到较小尺寸,则会损失许多细节信息。假设将车辆图像归一化到64×64得到的NPD特征维度大小为8 386 560,对于内存为4 GB的计算机,分别给定5 000左右的正负样本,该特征就将占用90%以上的内存,导致后续特征筛选计算困难。因此,本文提出使用局部归一化像素差值特征,即LNPD,首先将图像均分为n个区域Ri(i=1,2,…,n),之后在n个局部区域内提取NPD特征,同时为突出每个特征的贡献,将像素差值特征归一化到0~255之间,得到局部归一化像素特征提取公式如下:

将所有区域的NPD特征串联,组成最终的LNPD特征,LNPD特征综合了图像全局性和局部性特点,经过将图像划分为n个区域提取局部归一化像素差值特征,LNPD特征的维度约为NPD的这种方法不但节省内存空间,同时适用于有遮挡、旋转角度较大的车辆目标检测,特征获取样例如图1所示。

图1为一幅输入图像提取的LNPD特征,将图像归一化为64×64维度,LNPD特征是基于局部区域内提取NPD特征,且LNPD特征综合了图像全局性和局部性特点,因此与NPD特征相比,LNPD更能显示出图像每个局部特征的贡献,且特征维度较NPD低。

图1 输入图像的NPD特征和LNPD特征对比图

3 基于LNPD及MLP的模型构建

3.1 基本模型的优化方法

AdaBoost算法具有很强的自适应性,即上一级的基本分类器错误的样本会得到加强,将其加权后再次用于训练下一个基本分类器。在每一级分类中加入一个新的弱分类器,进行多次迭代直到错误率足够小或达到预期迭代次数。使用级联AdaBoost进行目标检测的方法有很多,例如使用Haar特征进行车辆检测,同时与Haar特征相关的变形及扩展特征也有很多。此外与之相关的局部二值模式(Local Binary Pattern,LBP)及梯度方向直方图特征(Histogram of Oriented Gradient,HOG)[15]在车辆识别或行人检测领域也有着广泛的应用。然而这些特征普遍存在计算复杂,目标针对性较强等缺点。以构建目标过程为例,AdaBoost算法需要经过三步。

(2)训练弱分类器。如果某一样本点能够精确地分类,在构造下一级训练集时,权重降低;未被精确分类的样本点,权重提升。由更新过权重的样本点构造新的训练集,往复迭代。即使用具有权值分布Dx的训练数据集学习,得到基本分类器:

计算Gm(x)在训练数据集上的分类误差率:

(3)将各个训练得到的弱分类器进行重组,加大未分类的样本在分类函数中的权重,减小其他样本在分类函数中的权重,即:

由以上过程可以看出,传统模型构建复杂,冗余度高,中间节点过多,识别效率低,因此本文使用了较为简单的像素差值特征,在特征筛选阶段引入了微型神经网络筛选出辨别性较好的弱分类器,在节省特征计算时间的同时提高了特征的普适性,使得其不仅限于单一物体的检测。

3.2 AdaBoost模型的改进

通常情况下,基于AdaBoost分类器的检测算法是将每次训练的分类器进行重新组合,将权值较低的弱分类器经过训练结合成为一个强分类器,并用同样的阈值将空间分成两类。这种方法缺点明显,首先简单的结构不能很好地解析互异特殊类型空间维数的相关性;其次二值化忽略了特征中包含的高阶特征信息。根据文献[12]提出的方法,本文使用二次分割学习深度树,即对于特征x,使用下述二次函数进行树节点的划分:

其中,a、b、c为常量;t为阈值的划分点,其作用是判断阈值是否位于两个训练过的阈值之间。这种改进后的模型能够兼顾特征x的一阶和二阶信息,使其可以更好地解析划分策略。考虑到车辆特征是一种多复杂度的检测对象,且特征维度更高,因此使用微型神经网络[16]代替深度二次树,基本模型参考Lin等[15]在深度学习中使用的微型神经网络模型。经分析论证,微型神经网络可以根据问题的复杂性调整网络的结构,得到最优的模型。另外微型神经网络既可以表示传统的AdaBoost阈值分类,也可以表示较复杂的深度树形分类器,还可以表示更复杂的多项式表达式,即神经网络可以拟合任何连续函数,因此本文将微型神经网络作为训练AdaBoost的弱分类器。对于多角度车辆检测问题,本文使用两层感知器模型对树节点进行阈值划分,隐层有多个节点。4层微型神经网络结构如图2所示,网络的两个输出是判断特征是否满足阈值划分的条件。

图2 多层感知阈值分类模型

图2 的每个神经元节点包含一个阈值θi,网络中的弧线ωij表示两层神经元之间的权值;hi(i=1,2,…,n)为隐含层节点。隐含层和输出层的输入Ij为:

神经元的输出由激活函数得到,激活函数一般使用Sigmoid函数,神经元的输出Oj为:

网络的参数ωij和θj通过学习得到,使用神经网络替换式(2)中的分割策略,构建深度树对车辆和非车辆图像特征进行预测,它能够更好地划分特征空间,使得AdaBoost具有更好的检测性能。这种方法在每个局部感受野中进行更加复杂的运算,大大降低了网络的参数,且能够更快地从低层弱特征中学习到高层特征。

3.3 车辆检测器的构建

在检测过程中,LNPD特征存在一定的冗余,因此使用AdaBoost算法训练差异最大的N组特征构建强分类器[14],本文采用的是改进后的AdaBoost算法来训练LNPD特征多层感知器,即每个迭代过程中,一个多层感知器被划分为权重较低的弱分类器来进行学习,同时当前AdaBoost分类器的阈值也被学习,再将多个多层感知器组合成一个强分类器。对于一幅输入图像,首先将输入图像用网格划分,之后提取每个区域内的局部归一化像素特征,将所有的局部特征串联并存储在查找表中,使用微型神经网络进行特征筛选,提取局部归一化像素差值特征并进行特征筛选,过程如图3所示。

图3 LNPD特征提取及筛选过程

4 实验验证

(1)实验样本:取某市交警大队提供的10个交通路口电子卡口24小时采集的实时图像。

(2)样本角度:正视图(偏转角度±20°,包括车辆头部及尾部图像)及侧视图(20°~60°)。

(3)采集方式:虚拟线圈触发方式,原始图像大小从1 920×1 080到2 448×2 048不等。部分样图如图4所示。

图4 实验样图

用于训练的样本由1 502张图像中的5 103个车辆样本组成,通过对车辆图像进行镜像操作增加正样本,得到9 984个正样本,大小归一化为64×64,负样本由不包含车辆图像的25 660个样本组成,部分正负样本如图5所示。在实验中,将训练图像划分为4个区域,则LNPD特征维度为其为原始NPD特征维度的1/4,在保存样本细节信息的同时降低了特征维度。根据参考文献[8]推荐的最好级联次数,经过20次级联训练得到最终的检测器包含1 226个多层感知器,46 401个LNPD特征。对于非目标区域,平均大约210多次特征评估来排除。

图5 部分正负样本

图6 车辆检测结果

测试集是711张图像中的3 568个车辆图像,为了对结果进行评价,先对车辆使用包围框进行标记,使用训练好的分类器对测试集进行检测,当检测出的目标框与标记的框交并比大于某一阈值时(IOU>0.5)认为是正确的检测。为了分析不同难度的车辆检测结果,根据测试集中目标的分辨率及遮挡水平,将测试图像分为较难、中等和较易三个数据集:较难的数据库为目标大小范围32×32到128×128,且有20%~30%的部分被遮挡;中等的数据库为目标大小范围128×128到256×256,且有10%~20%的部分被遮挡;较易的数据库为目标大小范围256×256到625×625,且有10%以下的部分被遮挡。对应每个数据集的车辆数目分别为1 023、980和1 735。

4.1 定性分析

定性评价是由视觉评价得出的对检测效果的主观量度,本节主要根据几种不同检测方法的实验结果进行评价。NPD、ACF方法的检测度可用于评价上述几种检测方法的检测结果,图6分别给出了基于这些城市交通场景的检测结果。为了表明每种方法的检测效果,图6给出了五个具有代表性的图像的比较结果,其中参与比较的几种方法分别如图6的第一行至第三行所示。第一行三个图像分别为NPD方法得到的检测结果,由图像可以看出该方法在多角度状态下检测率较低。第二行采用的是ACF检测方法,可以看出,在遮挡的情况下识别率不高。第三行为本文采用的方法,可以看出在运动状态、多角度、有遮挡情况下识别率较高。结果表明,本文方法对有旋转、遮挡的车辆鲁棒性较好。

4.2 定量分析

本节对上述实验结果进行了定量评价,主要采用两种衡量方法:一种是利用平均处理时间与检测效果进行对比衡量;另外一种是采用每种车辆数据集所对应的检测结果进行对比分析。对比对象为RCNN、NPD、DPMV5、ACF方法,数据库为本文提出的数据库。对比过程如下:首先使用文献[11]提出的HOG和Haar组合特征在相同的训练集上训练AdaBoost分类器,正样本大小归一化为24×24,负样本从362张不含车辆的图片随机裁切,AdaBoost训练级数为20,每级的最低可接受检测率为95%,最高可接受虚警率为40%。接着使用训练好的分类器对三个难度不同的测试集进行测试,最终每种车辆数据集所对应的检测结果如表1所示。

实验结果表明,本文提出的MLP-CNN方法在三种数据库上检测率均为最高,在检测时间上继承了特征查找表的快速访问特点,对于降采样后平均尺寸为640×480的图像,使用MLP-CNN检测一张图像只需要125ms,比NPD特征更快。

表1 检测结果比较

采用数据集衡量的方法,可用每种车辆数据集所对应的检测度来进行衡量,方法如下:首先对于NPD方法,使用全部4 957个正样本进行训练,正样本大小归一化为24×24,使用深度二次树学习弱分类器。对于DPM目标检测方法,使用开源代码DPM-V5来做对比实验,设置组件的个数为6,正样本按照原始图像对应的车辆坐标标记的格式准备。对于ACF目标检测方法,对输入图像进行通道变换,获取归一化梯度幅值、梯度方向直方图及LUV颜色空间10个通道的图像,并在4×4加和池化后将特征存入查找表中,使用AdaBoost对在w×h的窗口上获取的维度为的特征进行训练,并组合2 048个深度为2的特征树,其中w和h分别为窗口的宽和高。每种方法在三种难度级别的数据库上实验结果如图7所示。

图7 实验结果柱状图

从实验结果可以看出,本文设计的基于微型神经网络的弱分类器优于传统的单阈值法和深度二次树法,神经网络进行了网络权值和误差反馈,使得其对特征的筛选能力更强。使用改进后的MLP-CNN法在三种数据库上的实验结果均为最优,同时在较难的数据集上与其他方法相比提升29%,与基于深度二次树的特征筛选方法相比识别率提高了10%左右,说明本文方法对尺度较小,遮挡较大的车辆检出率较高。

5 结束语

本文结合局部归一化像素差值特征(LNPD)和多层感知器(MLP),基于级联微型神经网络的算法提出了一种能够于视频中快速高效检测出车辆的方法。本文方法不仅检测速度优于目前常用的快速检测法,且对于复杂角度、多场景以及有遮挡物状态能够进行有效检测,更符合十字路口等复杂场景下的车辆检测,实用性较强。在实验中,将训练数据分为较难、中等和较易三个数据集,并与其他检测方法如ACF、NPD及DPM等进行对比实验,结果表明本文方法效果最优,且在车辆有遮挡、尺度比较小的数据集中检测率提升明显。

在实验过程中,发现优化后的局部归一化差值特征算法对光照变化场景的车辆检测具有鲁棒性,但对于对比度不明显的车辆图像检测效果适应性还不甚理想,后期工作中将在提取特征前对图像进行增强处理,并对特征进行预筛选以进一步提高检测率。

猜你喜欢

分类器像素神经网络
像素前线之“幻影”2000
神经网络抑制无线通信干扰探究
“像素”仙人掌
基于神经网络的中小学生情感分析
ÉVOLUTIONDIGAE Style de vie tactile
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
高像素不是全部
基于神经网络的拉矫机控制模型建立
基于支持向量机回归和RBF神经网络的PID整定