基于集成卷积神经网络的交通标志识别

2019-09-05 10:44张功国王梓权孙海霞
关键词:交通标志识别率分类器

张功国,吴 建,易 亿,王梓权,孙海霞

(重庆邮电大学 通信与信息工程学院,重庆 400065)

0 引 言

近年来随着汽车数量的增加,安全驾驶成为人们关心的问题,于是智能交通辅助驾驶系统应运而生。同时,自动驾驶汽车也逐渐受到各大公司的青睐,例如,百度在无人驾驶上做了很多的研究和贡献。在未来,自动驾驶将是一个研究热点。无论是智能交通辅助驾驶系统还是自动驾驶技术,交通标志识别都是其重要组成部分之一,受到了国内外研究人员的广泛关注。

早期交通标志识别方法主要依赖于图像形态学,分割和提取各种图像特征。文献[1]利用色段和形状检测技术创建了一种道路标志识别方法,该方法在50个道路标志识别上取得了很好的效果,但实时道路标志的颜色和形状会有较大变化,该方法受颜色和形状变化影响较大。文献[2]首先提取交通标志图像尺度不变特征变换(scale-invariant feature transform,SIFT)特征,然后对所识别的交通标志与标准交通标志进行相似度计算,从而识别交通标志。H Mahi等[3]提出了基于Zernike矩不变量和支持向量机的分类方法,该方法虽然对缩放和旋转后的交通标志有很好的识别效果,但光线变化会严重影响系统的分类效果。不少研究人员利用图像的方向梯度直方图(histogram of oriented gradient,HOG)特征对图像进行分类。Pei等[4]提出了一种新的有监督的低秩矩阵恢复模型,引入了一个有监督的惩罚项。然而在对图片做预处理操作时,每幅图像提取方向梯度(HOG)特征直方图的时间达到0.01 s,不能满足实时交通标志识别的要求。文献[5]采用K-d树与带有距离变换和HOG特征的随机森林方法对交通标志进行识别。同时,HOG特征结合SVM分类器早已被广泛应用于图像识别中,文献[6]采用具有HOG特征的SVM分类器用于交通标志识别。徐岩等[7]利用降维后的HOG特征进行极限学习机模型训练,然后利用经过训练的极限学习机模型识别交通标志图像。文献[8]在对交通标志的特征提取时采用集成的深玻尔兹曼机和典型相关分析相结合的算法进行,与基于HOG和LBP特征提取的算法相比具有更高的识别率。

尽管交通标志的识别已有多年的研究经验,但真实世界中的交通标志识别情况复杂,交通标志图像的质量会受到很多因素的影响,比如光照条件、复杂的背景环境、交通标志部分被遮挡、交通标志位置的偏移、行车速度等等,这些不定因素给实时的交通标志识别带来了很大的困难。

卷积神经网络(convolutional neural network,CNN)是近年研究的一大热点,并在图像识别领域取得了显著的成绩[9-13]。Lecun Y等[9]提出了LeNet-5模型,采用卷积层和下采样层交替连接对输入图像进行前向传导,在MNIST手写数字识别上取得了很好的效果,测试的正确率在97.5%~98.2%之间。Krizhevsky等[10]提出了深度卷积神经网络AlexNet结构,使用ReLU激活函数,并利用GPU进行训练,在2012年的ImageNet图像分类竞赛中取得了冠军。

鉴于CNN在图像识别领域取得的良好效果,本文提出一种基于集成卷积神经网络的交通标志识别的方法。集成网络的基分类器采用卷积神经网络,为提高基分类器的分类性能,对卷积神经网络进行了优化处理。具体包括使用ReLU激活函数来代替传统的激活函数;使用批量归一化方法来加快网络训练速度;利用SVM代替softmax分类器。

1 卷积神经网络

CNN是一种深度前馈人工神经网络,由于其局部感知和权值共享的特点,使其在图像识别领域得到了广泛应用。人们对外界事物的观察都是从局部到全局,而图像的局部像素联系紧密,相关性较高。CNN只需要对局部进行感知,然后在更高层将局部信息综合起来就得到了全局信息,这就是局部感知。图像的一部分统计特性与其他部分是类似的,因此,CNN通过在图像的某个部分学习到的特征应用到图像的其他部分,这就是权值共享。CNN利用局部感知和权值共享的思想极大地减少了训练网络所需参数的个数,加快网络训练速度。同时,CNN包括2个重要组成部分,卷积层和池化层。

1.1 卷积层

卷积层是卷积网络的核心组成部分,完成大部分繁重计算的工作。卷积层的参数由一组可学习的过滤器组成,在正向传播过程中,我们沿着输入图片的宽度和高度滑动每一个过滤器,并计算过滤器的条目和任意位置的输入之间的点积。当网络在输入图片的宽度和高度上滑动滤波器时,网络将生成一个二维激活图,展示出每个空间位置滤波器的响应,再经过激活函数得到新的特征图像,详细运算过程表示为

(1)

1.2 池化层

池化操作是在尽量不破坏数据的内在联系的情况下对卷积后的特征图进行抽样操作,以降低网络计算复杂度,提高对位移、缩放等变换的鲁棒性,对原图像特征进行保留,同时在一定程度上防止过拟合。常见的池化计算有最大池化和平均池化,本文采用最大池化进行运算,详细运算过程为

(2)

2 CNN-SVM交通标志识别器

2.1 激活函数的选取

激活函数对网络的收敛速度有很大影响,效果好的激活函数可以使网络的收敛速度得到提高。同时激活函数使得卷积神经网络有了非线性映射能力,在传统神经网络中最常用的2个激活函数分别为Sigmoid和Tanh,其表达式分别为(3)式与(4)式,它们都属于饱和非线性函数。本文选择ReLU函数作为卷积神经网络的激活函数以减少网络训练时间,函数表达式为(5)式。对于梯度下降(gradient descent,GD)训练时间而言,线性修正函数ReLU作为激活函数可以使卷积神经网络更快速地收敛[11]。

Sigmoid函数表达式为

(3)

Tanh函数表达式为

(4)

ReLU函数表达式为

f(x)=max(0,x)

(5)

2.2 批量归一化方法

CNN-SVM交通标志识别系统的主要部分是依靠CNN对交通标志图像的特征提取,而训练深度卷积神经网络是一个相当复杂的过程。卷积神经网络是一种前馈神经网络,网络中每一层都会受到它上一层的影响,这就导致了卷积层前面几层发生微小的变化,后面几层就会把这个微小的变化进行放大。卷积神经网络在训练的过程中,每一层的训练数据分布会不断的发生变化,而每一层的学习率也不同,为满足损失函数有效下降,通常选择最小的学习率来保证整个卷积神经网络的有效训练,这样就减慢了网络训练速度,同时使训练网络变得困难。针对这种问题,Sergey Ioffe等[14]提出批量归一化方法,BN算法对每一层的线性和非线性计算的中间数据归一化为均值为0,方差为1,使处理后的数据稳定,这样可以以较大的学习率去训练整个网络,让网络快速收敛,从而训练速度得到提高。BN算法对某一层网络的数据做归一化处理为

(6)

批量归一化公式(6)对网络某一层数据做归一化处理时,会影响到这一层所学习到的特征。为此BN算法又加入了2个参数γ和β,使得

(7)

(8)

2.3 分类器的选取

卷积神经网络的卷积层和池化层具有较好特征提取的能力。因此,本文将CNN作为交通标志图像的特征提取器,以实现对交通标志的分类处理。Softmax分类器会计算出所有类别的概率,并且不断计算让概率分布更趋向于标准结果,这样会花费大量的计算时间。SVM是基于结构风险最小化理论在特征空间中构建最优分类超平面,使得学习达到全局最优,可达到良好的分类效果。而SVM分类器只计算各个类别的得分,当各类得分满足了分类器的要求,知道了正确分类结果后就不再计算,从而能大幅提高训练速度。所以,本文用SVM分类器代替Softmax分类器,极大地缩短了网络的训练时间,能快速收敛到最优值。

CNN-SVM交通标志识别算法主要有2个步骤:①利用CNN网络提取交通标志的图像特征,并将其输入到SVM中;②利用SVM进行交通标志分类。图1为CNN-SVM的基本算法框架。

图1 CNN-SVM的算法框架Fig.1 Framework of the proposed CNN-SVM

3 实验与分析

本次实验所使用的计算机配置为Intel(R) Core(TM) i5-6500 CPU,3.2 GHz主频,8 GByte内存,使用GTX1060显卡内存6 GByte来加速训练,实验平台为Windows7(64 bit)操作系统,开发平台为Keras,后端为theano。

3.1 数据准备

本文使用的数据集是德国交通标志识别数据库[15],GTSRB数据库中的交通标志图像全部从德国自然场景中采集得到,能够真实反映出实时的交通标志,共有43类交通标志,合计51 839幅图像,被分为训练集和测试集2部分,其中训练集有39 209幅图像,测试集有12 630幅图像。图2显示数据集中43类交通标志集合。图3显示训练集中43类交通标志的分布情况。图4显示测试集中43类交通标志的分布情况。其中,每幅图像内只包含一个交通标志,每幅图像都是从实时车载上取得的交通标志,所有的交通标志图像尺寸在15×15像素到222×193像素之间。数据集中包含了大量不利条件下的交通标志图像,比如低分辨率、图像中部分标志被遮挡、不同光照强度、运动模糊、视角倾斜等,能较全面的反映现实驾车情况,增加识别系统的鲁棒性。

图2 GTSRB的交通标志种类Fig.2 Traffic signs classes of the GTSRB

图3 GTSRB训练集中交通标志种类的分布Fig.3 Class distribution across training GTSRB dataset

图4 GTSRB测试集中交通标志种类的分布Fig.4 Class distribution across test GTSRB dataset

为满足本次集成卷积神经网络的需求,需要对GTSRB数据集做预处理,具体步骤如下。

1)每幅交通标志图像都有10%的冗余边,为减少背景信息的干扰和冗余信息,对图片进行裁剪,使交通标志充满整个图像。

2)对数据集进行扩展:

①对图像做镜像处理;

②将图像旋转-8°和 8°;

③将图像向左、右各平移4个像素;

3)将图片分别转换成像素大小为48×48和32×32这2种大小格式。

3.2 集成卷积神经网络的结构设计

集成学习算法是在实践中总结出来的具有良好效果的算法。集成学习是指对多个分类器通过某种方式进行集成,使得分类性能得到提高。总的来说,标准的集成卷积神经网络的识别率要比被集成的单个卷积神经网络高。

本文选用Bagging集成算法[16],它是在训练集中进行随机抽样,每次抽取样本后都要放回到训练数据集中,抽取后的单个数据集大小和原训练数据集大小相同,内容上有一定差异。选择CNN-SVM交通标志识别器作为基分类器模型,本次集成卷积神经网络选用6个不同结构的CNN-SVM交通标志识别器进行集成,采用简单投票的方法对基分类器的分类结果进行融合,其大致结构如图5。

图5 集成卷积神经网络结构图Fig.5 Structure of ensemble convolutional neural network

CNN的卷积层数对CNN-SVM的性能有很大的影响,对卷积神经网络而言,卷积层数的增加会使得网络对图像特征的提取更加充分,同时也会导致网络过拟合。卷积层数过低导致图像特征提取不充分,影响系统识别率。为了选择合适的卷积层数,本文采用控制变量法,每一层卷积核个数设置为108个,采用随机初始化,然后逐层增加卷积层数来对比不同卷积层数对CNN-SVM识别率的影响。实验数据采用德国交通标志数据库,实验结果如表1。从表1中可以看出,采用本文的CNN-SVM系统,以德国交通标志数据集为研究对象,当卷积层数为3时识别率最高,因此,本系统卷积层采用3层最合适。

表1 卷积层数与正确率的关系

合理的构建基分类器才能体现集成算法的优越性,在保证基分类器分类正确率的同时,也要保证不同基分类器的分类能力的差异性。本文使用的所有CNN-SVM交通标志识别器的卷积层数为3层,主要区别在于各层卷积核的大小和特征图的个数。其中,基分类器CNN-SVM_1,CNN-SVM_2,CNN-SVM_3的输入交通标志图片的像素大小为32×32,基分类器CNN-SVM_4,CNN-SVM_5,CNN-SVM_6的输入交通标志图片的像素大小为48×48。本文通过对各个基分类器的卷积核大小以及特征图个数的合理设置,让各个基分类器来学习交通标志图像的不同特征,从而保证基分类器的差异性。基分类器CNN-SVM_1,CNN-SVM_2,CNN-SVM_3的卷积层的详细参数如表2,基分类器CNN-SVM_4,CNN-SVM_5,CNN-SVM_6的卷积层的详细参数如表3。本文使用3层卷积层的CNN-SVM,采用卷积层和池化层交替的结构。其中,卷积核的步长均为1,池化层均采用最大池化,池化窗口大小为2×2,步长为2。

表2 CNN-SVM_1,CNN-SVM_2,CNN-SVM_3卷积层详细参数

表3 CNN-SVM_4,CNN-SVM_5,CNN-SVM_6卷积层详细参数Tab.3 Detailed parameters of CNN-SVM_4,CNN-SVM_5,CNN-SVM_6 convolution layer

3.3 实验结果

本文所使用6个卷积神经网络的卷积层的权值都使用均值为0,方差为0.01的高斯分布函数进行随机初始化,所有偏置初始化为0。本次训练采用批量随机梯度下降法,mini-batch大小为128。

1)本文改进的卷积神经网络CNN-SVM与传统卷积神经网络的性能对比。

取CNN-SVM_1作为改进后的卷积神经网络的代表,然后构造出一个卷积层结构大小和CNN-SVM_1相同的卷积神经网络CNN,其网络结构是3层卷积层和3层池化层交替连接,一个全连接层和一个分类层,分类层使用softmax分类器,以sigmoid函数作为激活函数。以本文经过预处理的GTSRB数据库,图片像素大小为32×32作为本实验的训练和测试数据集,实验结果如表4和表5。从表4可以看出,没有经过改进的CNN,虽然卷积结构相同,但识别率仅为88.67%,而经过改进的卷积神经网络CNN-SVM_1识别率可达97.12%。同时从表5可以看出,CNN-SVM_1的训练时间为363.12 min,而具有相同卷积结构的CNN的训练时间为486.91 min。CNN-SVM_1的单幅图片测试时间为0.21 ms,具有相同卷积结构的CNN的单幅图片测试时间为0.23 ms。虽然CNN-SVM_1在单幅图片测试时间上没有显著性的提高,但训练时间减少了25.42%。

表4 CNN-SVM_1与相同卷积结构的CNN识别率对比Tab.4 Comparison of recognition rates between CNN-SVM_1 and CNN of the same convolution structure %

表5 CNN-SVM_1与相同卷积结构的CNN训练和测试时间对比Tab.5 Comparison of training and test time between CNN-SVM_1 and CNN of the same convolution structure

2)集成卷积神经网络的交通标志识别的性能评估。

利用bagging算法处理训练集原则对经过预处理的训练集进行处理,抽选出6组大小和预处理后的训练集相同但内容有一定差异性的训练集。其中,从交通标志图像尺寸为32×32像素和48×48像素中各抽取3组训练集,这样一共有6组训练集分别供CNN-SVM_1,CNN-SVM_2,CNN-SVM_3,CNN-SVM_4,CNN-SVM_5,CNN-SVM_6进行训练。用训练好的集成卷积神经网络来对测试集进行测试,其识别率可达98.29%。并与现有SVM,LDA on HOG1,Random Forests,Committee of CNNs方法进行对比,其中SVM通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析;LDA on HOG1利用交通标志图像的HOG特征,采用Fisher线性判别来对图像进行识别;Random Forests是包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定;Committee of CNNs则是以有监督的学习方式,将多列DNN组合成一个较为复杂的系统。各算法识别率结果如表6所示。本文算法识别率优于SVM,LDA on HOG1,Random Forests方法,接近于人类识别能力,而本文单幅交通标志图像的测试时间为1.32 ms,识别速度远高于人类识别速度。而Committee of CNNs算法识别率达到99.46%[17],但网络比较复杂导致训练时间过长,需要4块GPU训练37 h。因此,本文算法在保证识别时间较短的同时取得了较高的识别率。

表6 各算法识别率对比Tab.6 Comparison of recognition rates of different algorithms %

4 结束语

本文以真实场景中拍摄的德国交通标志数据集(GTSRB)为研究对象,提出了一种基于集成卷积神经网络的算法对交通标志图像进行识别。算法的特点是:首先对传统卷积神经网络进行改进,提出了一种CNN-SVM的分类器,实验结果表明该分类器不仅缩短了网络训练时间,还提高了网络对交通标志图像的识别率;然后以CNN-SVM作为基分类器来构建集成卷积神经网络,最后的识别率达到98.29%,接近人类识别能力,且单幅交通标志图像的测试时间为1.32 ms,能够满足实际应用要求。后续工作目标是能够在真实环境中迅速检测到交通标志,结合本文的交通标志识别算法,设计出一个能应用在实时交通环境中的交通标志检测与识别系统。

猜你喜欢
交通标志识别率分类器
基于双向特征融合的交通标志识别
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
听力正常青年人的低通滤波言语测试研究*
提升高速公路MTC二次抓拍车牌识别率方案研究
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
高速公路机电日常维护中车牌识别率分析系统的应用
交通标志小课堂
基于层次化分类器的遥感图像飞机目标检测
我们欢迎你!