基于Keras的交通标志识别研究

2020-10-27 09:56姚桂林
关键词:交通标志准确率卷积

白 杨, 姚桂林

(哈尔滨商业大学 计算机与信息工程学院, 哈尔滨 150028)

近年来,随着人们生活水平的不断提高,汽车的数量不断激增,安全驾驶[1]成为人们所关注的问题,智能交通辅助驾驶系统[2]的出现使得危险驾驶的机率大大降低.与此同时无人驾驶[3]也成为各大公司的研究热点,例如百度在无人驾驶方面就做出了很大的贡献.在未来,无人驾驶将成为人类研究的一个热点,但是无论是智能交通辅助驾驶系统还是无人驾驶,交通标志识别[4]都是其重要组成部分之一.

早期交通标志识别方法主要采用的是图像形态学[5]、图像分割技术[6]、图像特征提取[7]以及传统的机器学习算法[8]进行识别的.这些传统方法虽然表现良好,但是真实世界的交通标志容易受到环境、天气等因素的影响,造成准确率降低.卷积神经网络(CNN)[9]的出现成功解决了这个难题,并且在图像识别领域有着出色的表现.Lecun Y等提出了LeNet-5网络模型[10],该网络模型在MNIST手写数字识别[11]上取得了较好的效果,准确率在97.5%~98.2%之间.Krizhevsky等提出了深度卷积神经网络AlexNet网络模型[12],在2012年的ILSVRC比赛中夺得冠军.

1 卷积神经网络

1.1 卷积神经网络的构成

卷积神经网络由输入层、卷积层、池化层和输出层构成.输入层的作用是将数据输送到网络中,数据可以是各种形式的,如果输入的是一张图片,可以将这个图片看成一个矩阵输入到卷积神经网络中.卷积层的主要任务是对输入层传递来的数据做处理,就是对数据做卷积运算,从而提取数据的特征.卷积运算和数字图像处理中的“滤波”比较相似,卷积核以一定的步长在输入数据上进行滑动,然后将卷积核的元素与对应的数据相乘在相加求和,这样就得到输入数据各个区域的特征.每进行一次卷积运算,输入数据的尺寸就会变小,在进行多次卷积运算之后,输入数据的尺寸会变得很小,这样不但造成了数据的大量丢失,还会使后续的卷积运算无法正常进行.为了防止这种情况出现会在输入数据的外围添加元素0,这样既避免了数据的丢失而且添加的元素不会影响后续结果.池化层的主要任务是对经过卷积层的数据进行下采样,用来减少数据尺寸的大小,防止网络过拟合[13].见图1.

图1 卷积神经网络模型

1.2 卷积神经网络的训练

卷积神经网络的训练是指从训练数据中获取最优权重参数的过程.训练过程如下:首先从数据集中选取一批图像输入到卷积神经网络中,然后对数据进行卷积运算,提取物体的特征、轮廓等信息,接着对数据使用激活函数进行变换,将变换后的数据送入到池化层中,池化层对这些数据进行下采样以减小数据的长和宽,再将这些数据展成一维数据,最后使用softmax函数进行分类.

在整个训练过程中会使用激活函数和损失函数,这里使用的激活函数是非线性函数,因为卷积神经网络的每一层中输入的数据和输出的数据之间是线性关系的,如果没有非线性函数做变换,网络的层数将失去意义.损失函数用来衡量预测值与真实值之间的差距,这个差距叫做误差.误差产生的原因在于神经网络的权重值,不同的权重值会输出不同的结果,找到合适的权重是减小误差的关键.所以每训练一次就要对权重进行更新,更新权重的方法是利用误差反向传播来更新,也就是根据权重大小来分配每个节点的误差,权重大的节点分配的误差多一些,权重小的节点分配的误差小一些,然后将误差由输出层向输出层的前一层传播,这就叫误差的反向传播.根据这个原则为每个节点分配误差,然后对误差求偏导数,找到使误差最小的权值,然后更新权重,在重复多次这样的步骤后就能找到使误差最小的权值.见图2.

图2 卷积神经网络训练流程图

2 LeNet-5网络模型改进

LeNet-5作为卷积神经网络的经典模型,在手写数字识别领域有着不错的效果,但是在交通标志识别领域的效果表现较差.不过LeNet-5经典网络结构对于构造交通标志领域的卷积神经网络有着很好的指导价值,因而对LeNet-5网络进行改进,构建新的卷积神经网络以获取更好的性能.

原LeNet-5网络的输出层原本由10个节点组成,每个节点的输出是识别出的数字,在交通标志的识别中,交通标志的种类有62类,所以最终的输出应该为由softmax输出62类.

原LeNet-5网络使用的是sigmoid激活函数,sigmoid函数的值是介于0~1之间,并且容易求导.在负无穷远处函数值趋近于0,正无穷远处函数值趋近于1,但是函数左右两侧图像趋于平缓,梯度值逐渐趋近于0,容易造成梯度消失,减慢收敛速度,甚至造成网络无法学习.为了解决这个问题,将sigmoid激活函数用relu激活函数替代.

神经网络的学习目的是为了找到使损失函数的值尽可能小的权重参数值,寻找这个参数的过程称为最优化.原LeNet-5网络使用的是随机梯度下降法(SGD)[14],这种方法的缺点是权重更新的方向过分依赖于当前的batch,造成更新的不确定性,为了解决这个问题采用Adam优化算法[15],Adam优化算法计算高效,内存使用较少,对目标函数平稳没有要求,对存在较多噪音的样本也能很好的处理.

对网络模型的池化层也进行了改变,原LeNet-5网络使用的是平均池化,平均池化是将滤波器范围内的值求和取平均值,得到输出.在图像识别领域使用更多的是最大池化,最大池化是将滤波器范围内的值取最大的值作为输出,最大池化对细微的变化具有较强的鲁棒性.

本文的卷积神经网络详细参数如表1所示.

表1 本文卷积网络详细参数

3 实与分析

3.1 数据集预处理

本文使用的数据集是比利时交通标志数据集,该数据集共有4 575张训练图片和2 520张测试图片,并且数据集拥有62种不同的交通标志.由于数据集中的图片尺寸大小不一,为了使卷积神经网络的全连接层的输入大小固定,防止网络发生变化,对图像尺寸大小进行调整,将图像的尺寸裁剪为64×64.为了提高网络的性能,将图片的像素归一化到0~1之间.

3.2 数据集扩充

本文所使用的比利时交通标志数据集图片数量较少,网络容易造成过拟合,为了解决这个问题,使用数据增强的方式来增加训练集图片的数量,提高模型的泛化能力.本文对训练数据集中的图片翻转一定角度、平移一定距离、增加图片对比度来增加样本数量.

3.3 实验结果分析

3.3.1 学习率的选择

学习率对网络模型的选择和网络的训练有着重要的作用.梯度下降速率的快慢取决于学习率,学习率越大,每次梯度下降的速度越快,权值变化幅度越大,容易错过最小值点.学习率越小,每次梯度下降的速度越慢,权值变化幅度越小,容易陷入局部最小值点,造成收敛速度变慢.本文选择了0.001、0.005、0.0005、0.0006、0.0007、0.0008、0.0009 七组学习率进行实验.

表2总结了不同学习率对准确率和损失值的影响.从表2中可以看出,表现最好的学习率是0.000 8,准确率是98.26%,损失值为0.09,而其他的学习率、准确率均不超过98%,损失值均大于0.109,综上所述最终学习率选择0.000 8.

3.3.2 激活函数的选择

本文选取了relu函数、sigmoid函数、tanh函数和softplus函数这四种激活函数进行实验.

从表3中可以看出,softplus激活函数表现效果最差,准确率只有2.4%,sigmoid激活函数表现稍好,准确率有91.42%,tanh激活函数表现更好,准确率有95.27%,表现最好的是relu激活函数,准确率有97.24%.

表2 不同学习率对准确率和损失值的影响

表3 不同激活函数对准确率和损失值的影响

3.3.3 添加Dropout层

Dropout是神经网络最有效也是最常用的正则化方法之一.对某一层使用Dropout,就是在训练过程中随机将该层的一些输出特征舍弃.本文将Dropout的比率设置为0.5,也就是说每次将有一半的特征被舍弃.

从表4中可以看出,采用Dropout层比不采用Dropout层的准确率要高.

表4 Dropout层对准确率的影响

综上所述,本文的算法使用的学习率是0.000 8,采用relu激活函数,在训练过程中使用Dropout层,对数据集训练50次.图3显示的是训练过程和预测过程.刚开始训练时训练集的损失值在迅速下降,准确率在迅速提升,测试集亦如此.当训练次数大于10次以后,训练集和测试集的损失值下降缓慢,甚至产生一些波动,准确率变化相同.

图3 损失值和准确率的变化曲线

图4是4张测试集的图像,这4张图像各有特点第1张图片是在移动的物体上进行拍摄的,拍摄出来的图片比较模糊.第2张图片是在阳光充足的地方拍摄的,整个图片比较亮.第3张图片是一个发生形变的交通标志.第4张图片是一个由树木遮挡的交通标志.方括号中的数字代表交通标志的类别,后面的数字代表分类的准确率.可以看出这四张图片分类的准确率均为100%,事实上对测试集中的所有图像,分类的准确率均在98%以上.

图4 4种不同环境下的交通标志

4 结 语

本文重点研究了基于Keras交通标志识别系统的设计与实现.选择比利时交通标志识别数据库作为本文的数据集,对其进行了预处理操作,预处理的主要内容是将数据集中尺寸不一的图片统一成64×64.为了防止训练数据集中样本数量不足,使用数据增强的方式对训练数据集中的图片进行操作,增加了样本的数量.介绍了卷积神经网络的搭建,通过卷积、池化、全连接层将神经网络搭建出来,然后使用训练好的模型对测试集进行测试,并将测试结果可视化.对不同的学习率、不同的激活函数和是否添加Dropout层做了实验和分析,找出了最优的方案.对一些复杂环境下的交通标志进行了测试,包括光照较强或较暗、阴雨天、被部分遮挡和发生形变等各种情况,结果表明本文的算法具有一定的实用性,在鲁棒性和准确率方面表现较好.

猜你喜欢
交通标志准确率卷积
基于双向特征融合的交通标志识别
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
交通标志小课堂