APP下载

基于交叉熵的CNN交通标志识别方法研究

2018-02-12陈玉婷张凤瑜

软件导刊 2018年12期
关键词:卷积神经网络

陈玉婷 张凤瑜

摘要:为了弥补经典LeNet-5卷积神经网络模型在交通标志识别中易发生过拟合的不足,克服其识别准确率与训练效率较低的缺点,采用GTSRB德国交通标志数据集,并对数据集进行扩充,使训练集数量达到6 312 649张,同时对经典LeNet-5卷积神经网络模型在激活函数、池化策略、随机丢弃及网络结构等方面进行改进,使用基于交叉熵的梯度下降算法对模型的误差反向传播过程进行优化。实验结果表明,改进后的模型较改进前在识别准确率与训练效率上都有所提高,识别准确率最高可达97.04%。因此,基于交叉熵的卷积神经网络不仅能够提高模型的交通标志识别准确率,有效防止过拟合,还能够提升网络训练效率。

关键词:交通标志识别;卷积神经网络;交叉熵

Research on CNN Traffic Sign Recognition Method Based on Cross Entropy

CHEN Yu ting, ZHANG Feng yu

(School of Information Science & Technology, Northeast Normal University, Changchun 130117,China)

Abstract:In order to make up for the shortcomings of the classic LeNet 5 convolution neural network model in traffic sign recognition and overcome the shortcomings of the recognition accuracy and low training efficiency, the data set of GTSRB German traffic sign is used and the data set is expanded to make the number of training setup to 6 312 649. The classical LeNet 5 convolution neural network model is improved in the aspects of activation function, pooling strategy, random discarding and network structure, and the algorithm of gradient descent based on cross entropy is used to optimize the error back propagation process of the model. Through the related experiments, the improved model has improved the recognition accuracy and training efficiency compared with the improvement, and the recognition accuracy reaches 97.04%. The convolution neural network based on cross entropy can not only improve the recognition accuracy of traffic signs recognition, effectively prevent overfitting, but also improve the training efficiency of the network.

Key Words:traffic sign recognition;convolution neural network;cross entropy

0 引言

近年来,智能交通决策系统得到了迅速发展,其能够识别交通标志信息并作出下一步决策,从而辅助甚至代替驾驶员驾驶,减轻驾驶员的驾驶压力,同时可对驾驶员的违规驾驶行为作出提醒,进而减少交通事故发生[1]。交通标志在道路交通中扮演着重要角色,其能够直接指导驾驶员在行车过程中的行为。目前,汽车上普遍安装了行车记录仪,可以通过其采集道路交通信息,获取交通标志,并进一步识别出交通标志的所属种类。随着城市的发展,道路交通安全设施日趋完善,交通标志的种类也日益丰富[2],因此对交通标志识别的泛化能力也有着较高要求。

随着机器学习、深度学习[3]等人工智能技术的不断发展与应用,在很多方面都取得了较好的应用效果,也有越来越多学者将卷积神经网络算法引入到识别问题中。交通标志识别系统涉及多个领域[4],如模式识别、图像处理、人工智能等,其识别过程一般包括检测与识别两部分。检测过程一般利用交通标志的色彩、形状等特征,检测出包含交通标志符号的区域,然后通过相关技术判断是否为感兴趣区域[5];识别过程是先对感兴趣区域进行预处理,如图像归一化,然后提取圖像特征并判断是否为交通标志,以及所属的交通标志类别[6],进而识别出交通标志。本文侧重于研究交通标志的识别过程。目前,卷积神经网络在交通标志识别方面存在着一些不足,如训练过程冗长、识别准确率较低、网络容易产生过拟合现象、网络泛化能力不足等。因此,本文旨在利用浅层次卷积神经网络,达到缩短训练过程、提升网络识别准确率的目的。

1 卷积神经网络

卷积神经网络(Convolutional Neural Networks,简称CNN)是在20世纪80年代后期发展起来的,在过去几年中,有关卷积神经网络的论文数量呈爆炸式增长,也取得了相当多的研究成果。卷积神经网络主要应用于以下几个方面:①图像、视频中的对象识别。如Facebook中的好友面孔标记、Snapchat中给图像添加滤镜等;②自然语言处理方面。如谷歌助理、亚马逊Alexa语音识别等;③游戏方面。“AlphaGo”在围棋领域首次战胜了人类的世界冠军。与神经网络的研究相同,CNN的灵感来源于自然界,特别是人脑中的视觉皮层。视觉皮层中的神经元集中在图像不同大小的斑块上,从而在不同层次获得信息,如果计算机可以利用该方式工作,即可能拥有类似大脑的识别图像能力[7]。

卷积神经网络的输入为原始图像[8],通过各层之间直接的信息处理与传递达到分类目的。图1为卷积神经网络基本结构。

卷积神经网络结构主要分为3部分:卷积、池化与全连接网络。

输入为原始图像,之后为卷积层(Convolution Layer),它是卷积神经网络特有结构,卷积层需使用激活函数加入非线性因素,因为线性模型的表达能力不够[9]。在卷积神经网络的一个卷积层中,一个神经元只与相邻层部分神经元连接,包含若干个特征平面(Feature Map),同一特征平面中的神经元共享同一权值,这里权值是指卷积核[10]。卷积核的初始化形式一般是随机的,在网络模型的不断训练过程中学习到恰当的权值。共享权值是卷积神经网络的特点,其优点是减少了网络层与层之间的连接,从而减少了网络参数数量,同时也降低了出现过拟合的风险[11]。

在卷积层之后是池化层(Pooling Layer),池化也称为子采样,根据特定規则进行池化以降低特征平面维度,可有效防止过拟合问题。池化层也是卷积神经网络的特有结构,但其没有激活函数。卷积层与池化层的组合在卷积神经网络中可出现多次,迭代次数根据具体应用场景与模型需要进行确定[12],卷积与子采样简化了模型复杂度[13]。

在若干卷积层与池化层组合之后是全连接层,全连接层的每一节点都与上一层的所有节点相连,用来将之前提取到的特征综合起来进行分类输出,在整个网络中起到“分类器”的作用。

2 基于交叉熵的CNN网络模型构建及优化

2.1 模型构建

LeNet-5卷积神经网模型已在手写字体识别方面取得了很好的应用效果[14],但该网络模型在交通标志识别问题中的分类效果仍不够理想。因此,本文对经典的LeNet-5模型进行改进,对其网络结构、参数设置等部分进行调整,主要改进方法有如下几种:

(1)采用sigmoid激活函数。该函数可以将输出结果映射到(0,1)区间,计算导数也非常方便。

(2)全连接层加入随机丢弃。将LeNet-5模型中最后一层卷积层定义为全连接层,网络的全连接层数为两层,并在全连接层加入随机丢弃。随机丢弃的使用不仅能够减少网络参数数量,还能提升网络训练准确率。

(3)最后一层为softmax层。softmax回归可用于多分类问题,其可将结果映射到(0,1)区间内,并将输出结果转化为概率问题。

因此,本文在原有LeNet-5神经网络的基础上改进了网络模型结构,改进后的网络模型架构如图2所示。 其中,部分网络参数设置如下:

(1)池化策略。在池化层中,常用池化策略有最大值采样[15]、均值采样与随机采样3种。根据相关理论,均值采样能够保留更多背景信息,而最大值采样能更多地保留纹理信息,随机采样介于两者之间,在平均意义上与均值采样相似,在局部意义上与最大值采样近似[16]。由于交通标志识别问题侧重于对交通标志本身的识别,而忽略了背景因素,所以本文采用最大值采样方法进行池化。

(2)权重初始化。在开始训练网络之前,网络中的权重等参数是不确定的,需要根据实际训练情况初始化参数。在训练过程中,通常希望网络能够尽快收敛,而且输出结果能够具有较高准确率。因此,需要控制权重参数初始值范围,使网络输出结果能够尽量控制在希望的范围内。本文权重初始化使用标准正态分布,以均值为0、方差为1进行随机初始化,生成截断正态分布的随机数。截断分布是在标准正态分布基础上对其加以限制,从而使生成的数据在一定范围内[17]。标准正态分布生成的数据范围为负无穷到正无穷,但截断式正态分布生成的数据在均值-2倍方差与均值+2倍方差范围内。随机产生的值不能偏离平均值的2个标准差范围,如果超出则将其舍弃并重新获取。偏置使用常量初始化函数,设置为0。

(3)Dropout随机丢弃。在一批数据迭代时,每次更新参数前,随机从全连接层中暂时去掉一部分隐藏层神经元。Dropout随机丢弃并不是将这些神经元永久性删除,以后不再使用,而是在下一批数据迭代前,模型恢复成最初的全连接模型,然后随机去掉部分隐藏层神经元,迭代更新权值W与偏置值b,但是随机去掉部分隐藏层后的残缺全连接层与之前的残缺全连接层是不同的。本文中所使用的Dropout值为0.5,Dropout能够在一定程度上减少计算量,提升网络识别率。

2.2 模型优化

在理想情况下,人们通常希望神经网络能够快速从错误中学习,以获得更好结果,但在实践过程中效果往往不如人意。当使用二次代价函数作为损失函数时,其函数可表示为 C=(y-a)2 2。现假设神经元输入为a,训练输入为x=1,目标输出为y=0。如果使用权重及偏置表达该损失函数,有a=σ(z)。σ()表示激活函数,其中z=wx+b,则将x、y带入后,权重与偏置的偏导数为:

从以上公式可以看出,权重与偏置的偏导数只与σ′(z)函数有关。

交叉熵可以在神经网络的反向传播过程中作为损失函数,在网络权重更新中起到一定作用。用p表示样本真实标记分布,q表示网络模型训练后预测标记的分布,交叉熵损失函数用来衡量p与q 的相似性。交叉熵损失函数还能避免sigmoid在梯度下降过程中出现学习速率降低的问题。Sigmoid函数图像如图3所示。

由图3可以看出,图像两端sigmoid函数的曲线趋于水平,也即是说在激活函数 σ(z)的值等于1或0时,σ′(z)的值会很小,从而导致Cw与Cw的值也非常小,所以学习速率缓慢[18]。因此,本文引入交叉熵代价函数。

假设需要训练一个网络,网络输入为x 1,x 2,…,其对应权重为w 1,w 2,…,偏置值为b,则神经元输出为a=σ(z),其中z=∑ jw jx j+b是输入的带权和,则该网络的交叉熵代价函数可定义为:

其中,n为训练数据总数,对所有输入样本x进行求和,y为标签真实值(目标输出),则w权重参数梯度为:

其中,σ(z)-y表示输出值与真实值之间的误差,σ′(z)=σ(z)(1-σ(z)),则在w权重参数的梯度公式中,σ′(z)被消除。所以,当σ(z)-y的值越大,误差则越大,梯度值也越大,权重参数w调整则会越快,因此训练速度也会更快。同理,计算偏置值b的梯度为:

因此,将二次代价函数更换为交叉熵损失函数,可避免因 σ′(z) 饱和带来的学习率下降问题,从而提升学习效率。

3 实验与分析

3.1 实验设计

实验分为两个阶段:网络训练阶段与网络测试阶段。训练阶段将样本批量输入到网络中,通过向前学习与误差反向传播对网络权重等参数进行训练,以获得更好的网络模型;测试阶段将测试样本输入到训练好的网络中,测试网络训练效果,整体流程如图4所示。

3.2 GTSRB德國交通标志数据集

本文使用GTSRB德国交通标志数据集进行训练,GTSRB是2011年国际神经网络联合会议(IJCNN)举办的多级单一图像分类挑战赛中使用的数据集,为会议上公布的旨在为各类交通标志分类算法提供公开比较平台的一个交通标志数据库[19]。GTSRB专注于分类问题,数据集中的图像大多没有背景,因而比较适合本文的研究方向。GTSRB数据库中的交通标志图像全部从自然场景中采集得到,共有43类标志,其中训练集有39 209幅图像,测试集有12 630幅图像,合计共51 839幅图像[20],训练集与测试集比例大致为4∶1。

为了丰富训练数据集,提升网络泛化能力与识别准确率,对原有数据集进行扩充。扩充采用图像旋转与平移两种变换组合方式,变换后图像大小不变,空缺部分用黑色填充。将旋转角度控制在[-10°,10°]范围内,负数表示逆时针旋转,正数表示顺时针旋转,每旋转1°定义一张新图像;将平移控制在2个像素之内,分别在上、下、左、右4个方向进行平移,每平移一个像素定义一张新图像。在生成数据集时,将旋转与平移进行组合变换(旋转+平移)生成新图像,图像变换效果如图5所示。

图5(a)为原始图像,经过向下平移2像素并顺时针旋转10°变换为图5(b)。因此,通过旋转与平移的组合变换,原数据集中的一张图像可演变出(10*2)*(2*4)=160张图像。经过图像变换,将训练样本集扩充为39 209*160=6 273 440张图像,再与原GTSRB数据训练集构成新的训练集,共6 273 440+39 209=6 312 649张图像。

3.3 结果对比

3.3.1 基于交叉熵的梯度下降算法优化前后对比

将网络损失函数的最小值设为0,将网络迭代次数设置为13 000次,目的在于排除网络到达误差阈值内而提前结束训练的情况,以便于观察损失函数在迭代次数增加时损失值的变化情况。

首先,使用传统的平方差函数作为训练损失函数,在训练过程中,每迭代500次测试一次网络的loss值与识别准确率。输出使用平方差代价函数时,网络loss值与准确率变化情况如图6所示。

从图6(a)中的loss值变化情况可以看出,网络在第11 000次迭代以前的loss值不断发生变化。其中,在4 000次内迭代时,loss值迅速下降,网络收敛速度较快,在4 000~11 000次迭代时,网络收敛减慢,但loss值也在下降;大约在11 000次后,loss值趋于零且网络收敛。同时,网络识别准确率的变化幅度也很小,使用平方差函数的网络经过训练,在13 000次迭代内达到的最高准确率为96.61%。

将平方差函数换成交叉熵,测试在sigmoid激活函数下该优化策略对网络的影响。使用基于交叉熵的梯度下降算法,网络loss值与准确率变化情况如图7所示。

从图7(a)中可看出,基于交叉熵的梯度下降算法在2 000~2 500次迭代前,loss值下降迅速;在2 500~10 000次迭代时loss值也在下降,网络收敛趋于缓慢;在10 000次迭代后loss值趋于零,网络收敛。使用基于交叉熵的梯度下降算法的网络经过训练,最高识别准确率达97.04%。

基于交叉熵的梯度下降算法使网络误差值增大,从而增大了梯度。参数w调整得越快,训练速度也越快。改进的梯度下降算法较改进前能够使网络提前收敛,如果在训练中设置一定误差阈值,训练迭代次数将会更少。实验表明,基于交叉熵的梯度下降算法能够使网络收敛加快。

3.3.2 网络改进前后对比

由图8可知,在13 000次迭代内,LeNet-5模型对扩充后的GTSRB交通标志数据集的识别准确率相对较低,最高识别率为93.73%。随着迭代次数增加,在训练到12 000次左右达到最高识别率。本文改进后的模型在10 000~11 000次迭代之间收敛,且最高识别率为97.04%,说明改进后的模型能够提升识别准确率。相比于改进前的LeNet-5模型,其对扩充后的GTSRB数据集识别准确率提升了3.31%,并且能够加快网络训练速度,使网络提前收敛,表明改进后的模型增强了网络识别能力。

4 结语

本文在经典LeNet-5模型基础上,使用基于交叉熵的卷积神经网络模型,实现了一种高性能的交通标志识别算法。通过在德国交通标志数据集上进行实验,实验结果表明,改进后的模型相比于原模型具有更高的识别率,提高了网络泛化能力,有效减少了过拟合现象,同时降低了网络迭代次数,提升了训练效率,改进后模型的识别准确率最高可达97.04%。通过对基于交叉熵的卷积神经网络在交通标志识别方面的研究发现,在本文构建的模型中使用交叉熵作为损失函数,能够使网络提前收敛,并且在一定程度上提升了识别准确率。在今后的研究中,可以使用更深层次的网络进行研究,深层次网络对图像特征的表达能力更强,并能进一步提升识别准确率,但深层网络意味着更多的网络参数,训练时间也将更长,因此可以考虑使用交叉熵作为损失函数,进一步研究其对训练速度的提升效果。

參考文献:

[1] 毕建彬.道路交通事故的人因分析与驾驶员可靠性研究[D].北京:北京交通大学,2012.

[2] 王昔鹏.复杂场景下的交通标志识别技术研究[D].合肥:合肥工业大学,2017.

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

[4] 齐飞.交通标志识别技术研究[D].北京:北京交通大学,2013.

[5] 荣慕华.道路交通标志识别研究现状[J].群文天地,2012(2):273.

[6] 秦飞.交通标志实时检测与识别技术研究[D].重庆:重庆大学,2011.

[7] 吴正文.卷积神经网络在图像分类中的应用研究[D].成都:电子科技大学,2015.

[8] 李彦冬,郝宗波,雷航.卷积神经网络研究综述[J].计算机应用,2016,36(9):2508 2515,2565.

[9] 张雪洪,杭晓敏,胡洪波.计算机在生命科学中的应用[M].上海:上海交通大学出版社,2003.

[10] 宋光慧.基于迁移学习与深度卷积特征的图像标注方法研究[D].杭州:浙江大学,2017.

[11] 方宁,周宇,叶庆卫,等.基于无监督学习卷积神经网络的振动信号模态参数识别[J].计算机应用,2017,37(3):786 790,822.

[12] 姜伶俏.基于卷积神经网络的盲车牌识别算法研究[D].大连:大连海事大学,2017.

[13] CSDN博客.卷积神经网络[EB/OL].http:∥m.blog.csdn.net/article/details? id=52644511.

[14] 张庆辉,万晨霞.卷积神经网络综述[J].中原工学院学报,2017,28(3):82 86,90.

[15] JI S W, XU W, YANG M, et al. 3D convolutional neural networks for human action recognition[J]. Pattern Analysis and Machine Intelligence. IEEE Transctions on, 2013,35(1):221 232.

[16] 彭劲璋.面向交通标志识别的卷积神经网络研究[D].北京:北京交通大学,2017.

[17] CSDN博客.采用TensorFlow的截断式正态分布生成数据[EB/OL].http:∥blog.csdn.net/weixin_40271376/article/details/79488267.

[18] CSDN博客.关于神经网络中的代价函数——交叉熵的由来[EB/OL].http:∥blog.csdn.net/yqljxr/article/details/52075053? _t_t_t=0.13459043968053863.

[19] 范延军.基于机器视觉的先进辅助驾驶系统关键技术研究[D].南京:东南大学,2016.

[20] 唐睢睢.交通标志识别算法研究[D].北京:北京交通大学,2014.

猜你喜欢

卷积神经网络
卷积神经网络语言模型研究
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法