基于改进卷积神经网络的交通标志牌识别研究
2019-09-24张璟
张璟
摘要:在真实路况行驶过程中发现并准确识别周围的交通标志是自动驾驶系统和辅助驾驶系统的研究重点。为解决经典的VGG网络在训练过程中需要消耗大量计算资源和参数量巨大的问题,提出了使用深度可分离卷积模块,用其代替传统的卷积层减少了近9倍参数量且获得了更多局部感受野,使用平均池化层取代全连接层进一步压缩了参数量。改进的模型在真实场景下的交通标志图像数据集GTSRB的准确率达到98.38%。实验结果表明,改进的模型提高了识别准确率的同时减少模型参数量,具有实际意义。
关键词:卷积神经网络;交通标志牌检测;交通标志牌识别;交通标志牌分类;深度可分离卷积
中图分类号: TP18 文献标识码:A
文章编号:1009-3044(2019)21-0195-03
开放科学(资源服务)标识码(OSID):
Abstract:Finding and identifying the traffic signs in the real driving process is the research focus of the automatic driving system and the auxiliary driving system. To address the problem that the classical VGG network needs a lot of computational resources and parameters in the training process, a deep separable convolution module is proposed to replace the traditional convolution layer, which reduces the parameters by about 9 times and obtains multiple local receptive fields. The average pooling layer is used instead of the full connection layer to further reduce the parameters. The accuracy of GTSRB traffic sign image data set in real scene is 98.38%. The experimental results show that the improved model improves the recognition accuracy and reduces the number of model parameters, which is of practical significance.
Key words: convolutional neural network; traffic sign detection; traffic sign recognition; traffic sign classification; Separable convolution layer
1引言
具有指揮与规范意义的交通标志是保证道路交通安全有序的重要部分,交通标志牌通常用符号,数字和文字等简短的内容传达信息。但容易受到自然条件下光线照射,雨水腐蚀及能见度等干扰情况的制约,所以道路标志的准确识别依然需要探索与研究。
交通标志牌的颜色与形状比较固定,主要是红色、黄色和蓝色等主要颜色与长方形、三角形、圆形等轮廓形状组成[1],所以传统的识别方法主要通过颜色和形状这两种显著的特征,但这些手工设计的特征提取方法在真实场景中各种因素影响下表现欠佳。
卷积神经网络的方法可以设计更加深的网络并通过非线性模块的叠加可以提取与组合更加抽象的图像细节特征,在图像识别领域十分有效。在2011年的德国交通标志识别比赛中第一名的选手设计的基于的卷积神经网络的方法取得了99.46%的准确率超过了最佳人类测试员99.22%与平均人类表现的98.84%的识别率[2]。卷积神经网络通过端到端的训练方式减少了人为因素的影响,通过权值共享和局部连接方式降低了冗余参数量并有空间不变形,具有较高的鲁棒性。
2卷积神经网络
在ILSVRC-2012比赛中AlexNet模型取得了最高的准确率,共包含5层卷积层和3层全连接层,并加入了ReLU激活函数、Dropout随机失活和最大池化层方法解决了卷积神经网络深度加深导致的梯度弥散和过拟合问题。作为AlexNet的加深版本,VGG[3]依旧使用了5段卷积和3个全连接层,通过堆叠3*3的小卷积核增加了非线性模块提取到更多细节特征的同时有效地降低了参数量。
2.1 VGG模型
VGG16卷积神经网络层数达到了16层,延续了AlexNet网络5段卷积与3层全连接层的经典结构,其中包含了13个卷积层和3个全连接层。如图1所示,前2段卷积均使用了2个连续的局部感受野大小为3x3滤波器,后3段卷积则是3个线性堆叠的3x3的小卷积核并在卷积层之间加入ReLU激活函数,通过组合小尺寸的滤波器加深了网络深度可以提取到更加丰富的细节特征同时降低了参数量;接下来是3个全连接层连接所有的神经元,分别是4096,4096通道数和最后一个用于图像特征分类层,并通过SoftMax损失函数输出分类结果。VGG16模型选择了尺寸为2x2的池化层,相比较于AlexNet中3x3的较大池化层,加深了网络中特征图的宽度,提高了网络对于空间形变的鲁棒性但不可避免的增加了计算量。虽然VGG16识别率更高,收敛速度更快,但是仍然存在有一些缺点。VGG16的容量为528MB,其中最后3层的全连接层参数数量为123642856约占总参数量的89.36%,这些复杂的参数量需要较长的训练时间和优化方法用于模型的收敛与避免过拟合现象的发生,所以VGG16依然有改进的必要性和可行性。
3基于改进VGG16网络的识别模型
改进VGG16网络的识别模型用深度可分离卷积层代替了传统的卷积层,并在卷积层之间添加了归一化层,使用全局平均池化层代替了全连接层。在传统VGG16中通过组合卷积层增加网络的深度以提高识别率,但是随着网络深度的加深导致参数量十分巨大,模型的收敛过程中会发生波动且时间漫长,甚至出现了网络退化的现象。深度可分离卷积层[4]可以跨越多个通道组织空间特征信息用于提高网络的表达能力且参数量仅为传统卷积层的[19],增加了网络深度且充分压缩了网络的参数量加速模型的收敛速度。由于训练过程中各层输入的分布因为前一层参数分布的改变而变得复杂,所以只能通过较低的学习速率和参数初始化进行实验,从而减慢了模型的训练速度。加入归一化层(batch normalization)使得中间神经元的激活保持均值为0,方差为1的高斯分布,令各层中的输入数据分布变得稳定,从而达到了加速训练的目的。使用全局平均值池化层代替最后的全连接层,降低了参数量并避免过拟合现象发生。
深度可分离卷积层中先使用空间卷积依次卷积所有通道特征图,然后再使用N个1x1的点卷积分别遍历不同通道间的信息并进行特征融合,通过分开映射卷积层通道间的相关性和空间相关性达到了更好的识别效果。
假设使用的空间卷积核的大小为3*3形状,N为卷积核的个数,M为输入通道大小,K为输入的大小。
那么标准卷积运算计算量为
深度可分离卷积运算计算量为
通过如上公式(2)得出,深度可分离卷积层将传统卷积层分解为2个步骤,将计算量压缩为传统卷积参数量的[19],提高网络识别能力的同时也增强了对于抽象特征的有效利用,减少了冗余的参数量。
本文采用的改进的卷积神经网络结构如图2 所示,整个网络深度为38, 使用了3个普通空间卷积和8个深度可分离卷积,具体结构如下。
输入层为32×32像素大小的交通标志训练图片;首先网络连续使用了2个普通卷积层,每层均为8个卷积核大小为3×3的小卷积, 步长为1,并且在卷积之间加入了BN层批归一化与ReLU修正线性单元,充分活跃了网络中的神经元并使得训练过程更加平稳,可以得到28[×28×8]的特征图输出。在模型中间部分,连续使用了4段深度可分离卷积,每段卷积包括2个深度可分离卷积层和1个最大化池化层并加入了BN层与ReLU激活函数,通过 2个连续的3[×3]的卷积核代替5[×5]的大卷积核,额外增加了一层卷积层与激活层,增强了非线性模块结构并减小了参数量。4段卷積分别输出14[×14×16]、7[×7×32]、4[×4×64]和2[×2×128]的特征图。最后模型采用全局平均池化层替代了传统模型使用的全连接层,加入softmax激活函数进行多分类识别,进一步压缩了参数量,降低了训练的成本。
4 实验结果与分析
为了验证改进的VGG16网络框架对交通标志的识别效果,使用德国交通标志数据库进行实验。操作系统为Ubuntu18.04,运行环境为Python3.6,TensorFlow-Gpu==1.5和keras==2.1.5版本的深度学习框架,安装了GPU计算加速库CUDA 9.0和cuDNN v7,电脑配置为Intel Xeon E5-2637,64 GB 内存以及12GB显存的NVIDIA Tesla K40C。
4.1数据集介绍
实验使用的数据集是德国交通标志数据库GTSRB,将交通标志划被划分为43类,其中有39209张属于训练数据,12630张为测试图像。每幅图像中交通标志唯一且大小分布在 15*15像素到222*193 像素之间,但是部分交通标志存在图像模糊、部分遮挡、形变等影响。其中训练集中分别属于43类的数据分布如图3所示。
4.2 预处理
交通标志数据集中的图片大小界于 15*15到222*193 像素之间不等,所以本文将实验图片进行尺寸归一化至32*32的统一大小作为模型的输入。本文使用水平翻转、水平偏移、竖直偏移、随机转动等图像增强方法实时扩充训练数据用于规定次数的训练,通过一些细微的形变与旋转等方式增强模型的鲁棒性和泛化能力,有效地避免了过拟合现象的发生。
本文在训练过程中使用ReLU激活函数用于加快模型的收敛速度,利用Adam优化方法自适应调整参数学习率,避免落入局部最优解。
4.3实验结果及其分析
通过分别运用LeNet5、AlexNet、经典VGG16 卷积神经网络以及改进的VGG16 卷积神经网络对上述数据集进行训练测试。表1为本文模型与其他模型的实验结果对比, 图4为改进的VGG16模型的训练过程。可以看出改进VGG16的参数量相比于使用3个全连接层的经典VGG16方法,参数量大大减少且将准确率提高了3.6%。改进的VGG16模型的识别率98.49%与比赛中平均人类表现的准确率98.84%几乎一致。通过实验证明,使用深度可分离卷积模块可以在增加网络深度的同时也减少网络参数量。
5 结论
本文结合普通的空间卷积与深度可分离卷积改进了VGG模型,减少了冗余的参数量且提高了识别率,降低了训练的时间与成本。在德国交通标志数据集测试中,我们的识别率为98.49%与平均人类表现一致,但是改进的模型在大雾天气下能见度不足下的准确率仍然存在不足。在未来的工作,我们将重点研究如何加强交通标志在模糊场景下的准确识别。
参考文献:
[1] 张鹏. 基于改进卷积神经网络的交通标志牌识别算法研究[D].吉林大学,2017.
[2] Stallkamp J , Schlipsing M , Salmen J , et al. Man vs. computer: Benchmarking machine learning algorithms for traffic sign recognition[J]. Neural networks: the official journal of the International Neural Network Society, 2012, 32:323-332.
[3] Simonyan K , Zisserman A . Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. ComputerScience,2014.
[4] Chollet, Fran?ois. Xception: Deep Learning with Depthwise Separable Convolutions[J]. 2016.
[5] 刘志. 基于特征融合与深度卷积神经网络的交通标识识别[D].广东工业大学,2017.
[6] 宋青松,张超,田正鑫,等.基于多尺度卷积神经网络的交通标志识别[J].湖南大学学报(自然科学版),2018,45(08):131-137.
[7] 朱永佳. 基于卷积神经网络的交通标志检测与识别研究[D].上海师范大学,2018.
[8] Zhao J D , Bai Z M , Chen H B . Research on Road Traffic Sign Recognition Based on Video Image[C]// 2017 10th International Conference on Intelligent Computation Technology and Automation (ICICTA). 2017.
[9] 党倩. 基于深度卷积神经网络的交通标志识别[D].陕西师范大学,2016.
[10] 田正鑫. 基于多尺度卷积神经网络的交通标志识别方法[D].长安大学,2017.
[11] 王猛. 基于深度学习的交通标志图像识别研究[D].兰州理工大学,2018.
【通联编辑:唐一东】