首页

应用深层卷积神经网络的交通标志识别

  摘 要: 在实际交通环境中,由于运动模糊、 背景干扰、天气条件以及拍摄视角等因素,所采集的交通标志的图像质量往往不高,这就对交通标志自动识别的准确性、鲁棒性和实时性提出了很高的要求。针对这一情况,提出一种基于深层卷积神经网络的交通标志识别方法。该方法采用深层卷积神经网络的有监督学习模型,直接将采集的交通标志图像经二值化后作为输入,通过卷积和池采样的多层处理,来模拟人脑感知视觉信号的层次结构,自动地提取交通标志图像的特征,最后再利用一个全连接的网络实现交通标志的识别。实验结果表明,该方法利用卷积神经网络的深度学习能力,自动地提取交通标志的特征,避免了传统的人工特征提取,有效地提高了交通标志识别的效率,具有良好的泛化能力和适应范围。

  关键词: 交通标志; 识别; 卷积神经网络; 深度学习

  中图分类号: TN911.73?34; TP391.41 文献标识码: A 文章编号: 1004?373X(2015)13?0101?06

  Abstract: In actual traffic circumstance, the image quality of collected traffic signs is worse due to motion blur, background disturbances, weather conditions, and shooting angle. The higher requirements are proposed for accuracy, robustness and in real?time of traffic signs auto?recognition. In this situation, the traffic signs recognition method based on deep?layer convolution neural network is presented. The method adopts supervised learning model of deep?layer convolution neural network. Taking the collected traffic sign images through binarization as the inputs. The inputs are conducted multilayer process of convolution and pooling?sampling, to simulate hierarchical structure of human brain perception visual signals, and extract the characteristics of the traffic sign images automatically. Traffic signs recognition is realized by using a full connected network. The experimental results show that the method can extract the characteristics of traffic signs automatically by using deep learning ability of the convolution neural network. The method has good generalization ability and adaptive range. By using this method, the traditional artificial feature extraction is avoided, and the efficiency of traffic signs recognition is improved effectively.

  Keywords: traffic sign; recognition; convolution neural network; deep learning

  0 引 言

  随着智能汽车的发展,道路交通标志的自动识别[1?3]作为智能汽车的基本技术之一,受到人们的高度关注。道路交通标志识别主要包括两个基本环节:首先是交通标志的检测,包括交通标志的定位、提取及必要的预处理;其次是交通标志的识别,包括交通标志的特征提取和分类。

  如今,交通标志的识别方法大多数都采用人工智能技术,主要有下述两类形式[4]。一种是采用“人工特征+机器学习”的识别方法,如基于浅层神经网络、支持向量机的特征识别等。在这种方法中,主要依靠先验知识,人工设计特征,机器学习模型仅负责特征的分类或识别,因此特征设计的好坏直接影响到整个系统性能的性能,而要发现一个好的特征,则依赖于研究人员对待解决的问题的深入理解。另一种形式是近几年发展起来的深度学习模型[5],如基于限制波尔兹曼机和基于自编码器的深度学习模型以及卷积神经网络等。在这种方法中,无需构造任何的人工特征,而是直接将图像的像素作为输入,通过构建含有多个隐层的机器学习模型,模拟人脑认知的多层结构,逐层地进行信息特征抽取,最终形成更具推广性和表达力的特征,从而提升识别的准确性。

  卷积神经网络作为深度学习模型之一,是一种多层的监督学习神经网络,它利用一系列的卷积层、池化层以及一个全连接输出层构建一个多层的网络,来模仿人脑感知视觉信号的逐层处理机制,以实现视觉特征信号的自动提取与识别。本文将深层卷积神经网络应用于道路交通标志的识别,通过构建一个由二维卷积和池化处理交替组成的6层网络来逐层地提取交通标志图像的特征,所形成的特征矢量由一个全连接输出层来实现特征的分类和识别。实验中将加入高斯噪声、经过位移、缩放和旋转处理的交通标志图像以及实际道路采集交通标志图像分别构成训练集和测试集,实验结果表明,本文所采用的方法具有良好的识别率和鲁棒性。   1 卷积神经网络的基本结构及原理

  1.1 深度学习

  神经科学研究表明,哺乳动物大脑皮层对信号的处理没有一个显示的过程[5],而是通过信号在大脑皮层复杂的层次结构中的递进传播,逐层地对信号进行提取和表述,最终达到感知世界的目的。这些研究成果促进了深度学习这一新兴研究领域的迅速发展。

  深度学习[4,6?7]的目的就是试图模仿人脑感知视觉信号的机制,通过构建含有多个隐层的多层网络来逐层地对信号特征进行新的提取和空间变换,以自动学习到更加有效的特征表述,最终实现视觉功能。目前深度学习已成功地应用到语音识别、图像识别和语言处理等领域。在不同学习框架下构建的深度学习结构是不同的,如卷积神经网络就是一种深度的监督学习下的机器学习模型。

  1.2 卷积神经网络的基本结构及原理

  卷积神经网络受视觉系统的结构启发而产生,第一个卷积神经网络计算模型是在Fukushima的神经认知机中提出的[8],基于神经元之间的局部连接和分层组织图像转换,将有相同参数的神经元应用于前一层神经网络的不同位置,得到一种平移不变神经网络结构形式。后来,LeCun等人在该思想的基础上,用误差梯度设计并训练卷积神经网络[9?10],在一些模式识别任务上得到优越的性能。

  卷积神经网络本质上是一种有监督的深度学习算法,无需事先知道输入与输出之间精确的数学表达式,只要用已知的模式对卷积神经网络加以训练,就可以学习到输入与输出之间的一种多层的非线性关系,这是非深度学习算法不能做到的。卷积神经网络的基本结构是由一系列的卷积和池化层以及一个全连接的输出层组成,可以采用梯度下降法极小化误差函数对网络中的权值和阈值参数逐层反向调节,以得到网络权值和阈值的最优解,并可以通过增加迭代次数来提高网络训练的精度。

  1.2.1 前向传播

  在卷积神经网络的前向传播中,输入的原始图像经过逐层的卷积和池化处理后,提取出若干特征子图并转换成一维特征矢量,最后由全连接的输出层进行分类识别。

  在卷积层中,每个卷积层都可以表示为对前一层输入图像的二维卷积和非线性激励函数,其表达式可用式(1)表示:

  [Ylj=f i=1Ml-1Yl-1i?Wlij+blj] (1)

  式中:[Ylj]是第l层中第[j]个卷积特征子图的输出;[Ml-1]是前一层([l-1]层)的输出[Yl-1j]的总数;[Wlij]是第[l]层中第[j]个卷积的权值;[blj]是第[l]层中第[j]个卷积的阈值;符号“*”表示二维卷积运算;[f(?)]是非线性激励函数,其表达式如下:

  [f(x)=11+e-x] (2)

  式中:[x]是函数的输入。对于一幅[Nl-1x*Nl-1y] 的输入图像[Yl-1i]和[Klx*Kly]的卷积权值[Wlij,]输出[Ylj]的大小为[Nl-1x-Klx+1,Nl-1y-Kly+1。]

  在池采样层中,每个池采样层通过一个非重叠的[kx×ky]矩形区对上一卷积层输出的特征子图进行采样(求矩形区内像素的均值或最大值)。经过池采样后输出的特征子图在两个维度上分别缩小[kx]和[ky]倍,其表达式为:

  [Yl+1j=down(Ylj)] (3)

  式中:[Yl+1j]表示第[l+1]层中第[j]个池采样的输出;[Ylj]是前一层(l层)的输出特征子图;down()实现对[Ylj]的池采样。图1给出了上述卷积和池采样的示意图。

  在输出层中,首先利用一个全连接层将输入的特征子图转换为一个一维的特征矢量,然后再应用一个BP神经网络完成特征矢量的分类识别。BP神经网络输出层的每一个神经元的输出值对应于输入图像所属不同交通标志图像的概率,表达式为:

  [Yj=fi=1nWij×Yl+1i+bj] (4)

  式中:[Yj]表示输出层中第[j]个输出;[Yl+1i]是前一层([l+1]层)的输出特征(全连接的特征向量);[n]是输出特征向量的长度;[Wij]表示输出层的权值,连接输入[i]和输出[j];[bj]表示输出层第[j]个输出的阈值;[f(?)]是输出层的非线性激活函数。

  对于一个有[C]种不同的交通标志和共计[N]个样本的情况,整个网络的误差平方代价函数[11]为:

  [EN=12n=1Nk=1Ctnk-ynk2=12n=1NTn-Yn2] (5)

  式中:[T=[t1, t2, …, tC]]为网络的理想输出目标矢量;[Y=[y1, y2, …, yC]]为网络的实际输出矢量;[tk=0,1,][yk∈[0,1],][k=1,2,…,C。]

  当只考虑第[n]个单个样本时,网络的误差平方代价函数可以表示为:

  [En=12k=1Ctnk-ynk2=12Tn-Yn2] (6)

  1.2.2 反向传播

  在反向传播过程中,卷积神经网络的训练方法采用类似于BP神经网络的梯度最速下降法,即按极小化误差的方法反向传播调整权值和阈值。网络反向传播回来的误差是每个神经元的基的灵敏度[12],也就是误差对基的变化率,即导数。下面将分别求出输出层、池采样层和卷积层的神经元的灵敏度。

  (1) 输出层的灵敏度

  对于误差函数式(6)来说,输出层神经元的灵敏度可表示为:

  [δ=-fu×T-Y] (7)

  [u=W×Yl+1+b] (8)

  式中:[T]表示目标输出;[Y]表示网络的实际输出;[Yl+1]表示上一层(池采样层)的输出;[W,b]分别是输出层的权值和阈值。那么输出层的权值和阈值的导数为:

  [?E?W=Yl+1×δT] (9)   [?E?b=δ] (10)

  (2) 池采样层的灵敏度

  池采样层没有权值和阈值,所以不存在权值和阈值的导数,只需要求出该层的灵敏度。

  ① 若池采样层的下一层为全连接的输出层,那么池采样层的灵敏度为:

  [δl+1i=WijTδj] (11)

  式中:[δil+1]表示输出层的第[j]个灵敏度;[Wij]表示输出层的权值。

  ② 若池采样层的下一层是卷积层,那么假设第[l+1]层为池采样层,第[l+2]层为卷积层,且卷积层的灵敏度为[δl,]有[M]个特征图。第[l+1]层中的每个特征的灵敏度等于第[l+2]层所有特征核的贡献之和,那么池采样层的灵敏度为:

  [δl+1i=j=1Mδl+2j?Wl+2ij] (12)

  式中:“[?]”表示卷积;[δil]表示第[l]层第[i]个特征映射的灵敏度;[δjl+1]表示第[l+1]层第[j]个特征映射的灵敏度;[Wl+1ij]表示第[l+1]层的权值,连接第[i]个特征灵敏度与第[j]个特征灵敏度。

  (3) 卷积层的灵敏度

  假设第[l]层为卷积层,第[l+1]层为池采样层,且池采样层的灵敏度为[δl+1,]那么卷积层的灵敏度为:

  [δlj=up((δl+1j))] (13)

  [up(δl+1j)≡δl+1j?1kx×ky] (14)

  式中:up(・)表示池采样第[l+1]层的灵敏度特征映射;[δjl]表示第[l]层第[j]个特征映射的灵敏度;[δjl+1]表示第[l+1]层第[j]个特征映射的灵敏度;[kx×ky]表示采样池的大小。

  现在对于一个给定的特征映射,就可以计算出卷积层的权值和阈值的导数:

  [?E?Wlij=u,v(δlj)uv(Yl-1i)uv] (15)

  [?E?blj=u,v(δlj)u,v] (16)

  式中:[Yl-1i]是第[l-1]层与权值[Wlij]作卷积的特征映射;输出卷积映射的[(u,v)]位置的值是由第[l-1]层的[(u,v)]位置的特征映射与权值[Wlij]卷积的结果。

  1.3 网络权值和阈值的调整

  所有层的权值和阈值的导数都可以用上述方法求得,然后再依据梯度下降法[13]调整权值和阈值,如下:

  [ΔWijk+1=ηΔWijk+α(1-η)?E?Wijk] (17)

  [Wijk+1=Wijk+ΔWij(k+1)] (18)

  [Δbjk+1=ηΔbjk+α(1-η)?E?bjk] (19)

  [bjk+1=bjk+Δbj(k+1)] (20)

  其中:[k]表示迭代次数;[ΔWij,][Δbj]分别表示权值和阈值的调整值;[Wij,][bj]分别表示权值和阈值调整后的值;[α]为学习效率;[η]为动量因子。

  在前向传播过程中,得到网络的实际输出,进而求出实际输出与目标输出之间的误差;在反向传播过程中,利用误差反向传播,采用式(17)~式(20)来调整网络的权值和阈值,极小化误差;这样,前向传播和反向传播两个过程反复交替,直到达到收敛的要求为止。

  2 深层卷积神经网络的交通标志识别方法

  2.1 应用原理

  交通标志是一种人为设计的具有特殊颜色(如红、黄、白、蓝、黑等)和特殊形状或图形的公共标志。我国的交通标志主要有警告、禁令、指示和指路等类型,一般采用颜色来区分不同的类型,用形状或图形来标示具体的信息。从交通标志设计的角度来看,属于不同类型(不同颜色)的交通标志在形状或图形上有较大的差异;属于相同类型(相同颜色)的标志中同类的指示信息标志在形状或图形上比较接近,如警告标志中的平面交叉路口标志等。因此,从机器视觉的角度来分析,同类型中同类指示信息的标志之间会比不同类型的标志之间更易引起识别错误。换句话说,相比于颜色,形状或图形是正确识别交通标志的关键因素。

  因此,在应用卷积神经网络识别交通标志时,从提高算法效率和降低错误率综合考虑,将交通标志转换为灰度图像并作二值化处理后作为卷积神经网络的输入图像信息。图2给出了应用卷积神经网络识别交通标志的原理图。该网络采用了6层交替的卷积层和池采样层来逐层提取交通标志的特征,形成的特征矢量由一个全连接的输出层进行识别。图中:[W1i](i=1,2,…,m1),W1j(j=1,2,…,m2),…,[W1k](k=1,2,…,m(n?1))分别表示卷积层[L1,L3,…,Ln-1]的卷积核;Input表示输入的交通标志图像;Pool表示每个池采样层的采样池;map表示逐层提取的特征子图;[Y]是最终的全连接输出。

  交通标志识别的判别准则为:对于输入交通标志图像Input,网络的输出矢量[Y=[y1,y2,…,yC],]有[yj=Max{y1,][y2,…,yC},]则[Input∈j,]即判定输入的交通标志图像Input为第[j]类交通标志。

  2.2 交通标志识别的基本步骤

  深层神经网络识别交通标志主要包括交通标志的训练与识别,所以将交通标志识别归纳为以下4个步骤:

  (1) 图像预处理:利用公式Gray=[0.299R+][0.587G+0.114B]将彩色交通标志图像转换为灰度图像,再利用邻近插值法将交通标志图像规格化,最后利用最大类间方差将交通标志图像二值化。

  (2) 网络权值和阈值的初始化:利用随机分布函数将权值[W]初始化为-1~1之间的随机数;而将阈值[b]初始化为0。

  (3) 网络的训练:利用经过预处理的交通标志图像构成训练集,对卷积神经网络进行训练,通过网络前向传播和反向传播的反复交替处理,直到满足识别收敛条件或达到要求的训练次数为止。   (4) 交通标志的识别:将实际采集的交通标志图像经过预处理后,送入训练好的卷积神经网络中进行交通标志特征的提取,然后通过一个全连接的网络进行特征分类与识别,得到识别结果。

  3 实验结果与分析

  实验主要选取了我国道路交通标志的警告标志、指示标志和禁令标志三类中较常见的50幅图像。考虑到在实际道路中采集到的交通标志图像会含有噪声和出现几何失真以及背景干扰等现象,因此在构造网络训练集时,除了理想的交通标志以外,还增加了加入高斯噪声、经过位移、旋转和缩放处理和实际采集到的交通标志图像,因此最终的训练样本为72个。其中,加入的高斯噪声为均值为0,方差分别为0.1,0.2,0.3,图像的位移、旋转、缩放的参数分别随机的分布在±10,±5°,0.9~1.1的范围内。图3给出了训练集中的交通标志图像的示例。图4是在实际道路中采集的交通标志图像构成的测试集的示例。

  在实验中构造了一个输入为48×48个神经元、输出为50个神经元的9层网络。网络的输入是像素为[48×48]的规格化的交通标志图像,输出对应于上述的50种交通标志的判别结果。网络的激活函数采用S型函数,如式(2)所示,其输出范围限制在0~1之间。

  表1给出网络的结构参数,包括每一层的特征数、神经元数、卷积核尺寸和均值采样尺寸等。

  图5给出一幅交通标志图像在卷积层和均值采样层的特征子图的示例。

  图6是交通标志的训练总误差[EN]曲线。在训练开始的1 500次,误差能迅速地下降,在迭代2 000次以后是一个平稳的收敛过程,当迭代到10万次时,总误差[EN]可以达到0.188 2。

  在交通标志的测试实验中,为了全面检验卷积神经网络的识别性能,分别针对理想的交通标志,加入高斯噪声、经过位移、旋转和比例缩放以及采集的交通标志图像进行实验,将以上测试样本分别送入到网络中识别,表2给出了测试实验结果。

  综合分析上述实验结果,可以得到以下结论:

  (1) 在卷积神经网络的训练学习过程中,整个网络的误差曲线快速平稳的下降,体现出卷积神经网络的训练学习具有良好的收敛性。

  (2) 经逐层卷积和池采样所提取的特征具有比例缩放和旋转不变性,因此对于旋转和比例缩放后的交通标志能达到100%的识别率。

  (3) 与传统的BP网络识别方法[11]相比较,卷积神经网络能够达到更深的学习深度,即在交通标志识别时能够得到更高的所属类别概率(更接近于1),识别效果更好。

  (4) 卷积神经网络对实际采集的交通标志图像的识别率尚不能达到令人满意的结果,主要原因是实际道路中采集的交通标志图像中存在着较严重的背景干扰,解决的办法是增加实际采集的交通标志训练样本数,通过网络的深度学习,提高网络的识别率和鲁棒性。

  4 结 论

  本文将深层卷积神经网络应用于道路交通标志的识别,利用卷积神经网络的深层结构来模仿人脑感知视觉信号的机制,自动地提取交通标志图像的视觉特征并进行分类识别。实验表明,应用深层卷积神经网络识别交通标志取得了良好的识别效果。

  在具体实现中,从我国交通标志的设计特点考虑,本文将经过预处理二值化的图像作为网络的输入,主要是利用了交通标志的形状信息,而基本略去了颜色信息,其优点是在保证识别率的基础上,可以简化网络的结构,降低网络的计算量。在实际道路交通标志识别中,将形状信息和颜色信息相结合,以进一步提高识别率和对道路环境的鲁棒性,是值得进一步研究的内容。此外,本文的研究没有涉及到道路交通标志的动态检测,这也是今后可以进一步研究的内容。

  参考文献

  [1] 刘平华,李建民,胡晓林,等.动态场景下的交通标识检测与识别研究进展[J].中国图象图形学报,2013,18(5):493?503.

  [2] SAHA S K, DULAL C M, BHUIYAN A A. Neural network based sign recognition [J]. International Journal of Computer Application, 2012, 50(10): 35?41.

  [3] STALLKAMP J, SCHLIOSING M, SALMENA J, et al. Man vs. computer: benchmarking machine learning algorithms for traffic sign recognition [J]. Neural Network, 2012, 32(2): 323?332.

  [4] 中国计算机学会.深度学习:推进人工智能梦想[EB/OL].[2013?06?10].http://www.ccg.org.cn.

  [5] 郑胤,陈权崎,章毓晋.深度学习及其在目标和行为识别中的新进展[J].中国图象图形学报,2014,19(2):175?184.

  [6] FUKUSHIMA K. Neocognition: a self?organizing neural network model for a mechanism of pattern recognition unaffected by shift in position [J]. Biological Cybernetics, 1980, 36(4):193?202.

  [7] LECUN Y, BOTTOU L, BENGIO Y, et al. Gradient?based learning applied to document recognition [J]. IEEE Journal and Magazines, 1989, 86(11): 2278?2324.

  [8] LECUN Y, BOTTOU L, BENGIO Y, et al. Backpropagation applied to handwritten zip code recognition [J]. Neural Computation, 1989, 1(4) : 541?551.

  [9] CIRESAN D, MEIER U, MASCI J, et al. Multi?column deep neural network for traffic sign classification [J]. Neural Networks, 2012, 32(2): 333?338.

  [10] NAGI J, DUCATELLE F, CARO D, et al. Max?pooling convolution neural network for vision?based hand gesture recognition [C]// 2011 IEEE International Conference on Signal and Image Processing Application. Kuala Lumpur: IEEE, 2011, 342?347.

  [11] 杨斐,王坤明,马欣,等.应用BP神经网络分类器识别交通标志[J].计算机工程,2003,29(10):120?121.

  [12] BUVRIE J. Notes on convolutional neural networks [EB/OL]. [2006?11?12]. http://cogprints.org/5869/.

  [13] 周开利,康耀红.神经网络模型及其Matlab仿真设计[M].北京:清华大学出版社,2005.

  [14] 孙志军,薛磊,许阳明,等.深度学习研究综述[J].计算机应用研究,2012,29(8):2806?2810.

  [15] 刘建伟,刘媛,罗雄麟.深度学习研究进展[J].计算机应用研究,2014(7):1921?1930.