APP下载

基于TensorFlow的交通标志识别方法研究

2019-11-11王全

价值工程 2019年27期
关键词:卷积神经网络

王全

摘要:交通标志识别系统是智能驾驶系统的重要组成部分;本文分析了现有方法存在的问题,基于TensorFlow框架搭建了改进的卷积神经网络,用于识别交通标志;整个系统在TensorFlow上实现,使用行车记录仪采集的视频验证了本文的算法,结果表明本文算法有一定的实用性,而且在准确率,鲁棒性和实时性等方面也表现较好。

Abstract: Traffic sign recognition system is an important part of intelligent driving system. This paper analyzes the problems existing in the existing methods. Based on the TensorFlow framework, an improved convolutional neural network is built to identify traffic signs. Finally,  the whole system is implemented based on TensorFlow, and the algorithm is verified by the collected video in the traffic recorder. The results show that the algorithm is practical, and has excellent performance in accuracy, stability and real-time.

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

Key words: traffic sign recognition;convolutional neural networks;Tensor Flow

中图分类号:TP391;U461.6                             文献标识码:A                                  文章编号:1006-4311(2019)27-0204-03

1  绪论

近年来,智能交通系统[1,2]越来越受到人們的关注。随着其智能化程度越来越高,它现在可以帮助甚至取代驾驶员的工作。智能交通决策系统需要识别交通标志来做出判断,从而提醒驾驶员的各种行为,以减少交通事故的发生。此外,无人驾驶技术[3]也正迅速发展,各大互联网巨头正在开发无人车,交通标志识别是其中重要的一环。因此,本文选取了交通标志识别这个课题进行研究。

2  基于TensorFlow的卷积神经网络的构造

本文选择的是德国交通标志数据集GTSRB[4]。这个数据集样本数量庞大,有近5五万张图片,并且涉及到了不同光照强度、不同角度、不同天气的情况,覆盖情况较多,能达到较好的训练效果。这个数据集一共有43种交通标志,如图1所示,每种交通标志有样本200到2000不等。

2.1 数据集预处理

2.1.1 将彩色图像灰度化

不同国家的交通标志的颜色存在差异,如果此时通过颜色来区分不同的交通标志,准确率就可能很低。再者,交通标志里的颜色,不是区分不同交通标志的主要信息。最后,彩色图像比灰色图像要处理的数据更多。

图像灰度化有很多方法,因为选择的GTSRB数据集,所以选择了加权平均法,就是把彩色图像中每一个像素点的RGB的亮度值分别乘以不同的系数,其结果就是灰度图中对应该点的灰度值。

2.1.2 直方图均衡

本文选择了直方图均衡[5,6]的方法进行图像增强。均衡就是将输入的图片映射到具有类似像素点的输出图片,一般是通过一定的灰度映射的方法来完成的。简言之,就是均衡图片的亮度级别,加强明暗对比。

随机的选取三张图片,依次输出每一张图片的原图、灰度图和直方图,灰度化和直方图均衡的效果如图2所示。

2.2 搭建卷积神经网络

2.2.1 定义架构

本文使用了LeNet架构[7]。有卷积和池化各两层,全连接三层。建立架构的基本步骤如下。

①卷积:要先了解卷积的过程,才能更深入的了解卷积层。下面简单的介绍一下卷积的过程:首先确定卷积核的大小,它要根据实际情况设定,本文设定为5*5;另一个参数是步长,即卷积核移动的距离,假定为1。卷积时,首先输入图片,然后卷积核会从图片的左上角,按照步长,移动到右下角。

②池化:池化的模型有很多,根据处理方式的不同可将它分为最大池化和平均池化。池化的过程和卷积的过程类似,不同的是,池化的所使用的池化窗口分别是要处理对应区域中最大的那个数还是该区域所有数的平均。池化的主要作用是对图像进行特征降维,缩减模型的大小,减少参数的数量,在避免过拟合的同时,又保证特征的位置不变,提高识别的准确率。

2.2.2 测试

①测试验证集:样本本来有34799张,后来对其进行了扩充,所以训练集增至47781张。验证集就是从扩充过的训练集中分出来的,占总量的20%。所以验证集和训练集是完全一样的。

首先建立session,在会话中,运行模型的时候通过feed_dict函数向占位符传入数据。由于BATCH_SIZE被设置为128,所以每次会随机选取128张图片传入模型。EPOCHS的值为30,也就是将所有的样本传递30次,每传递一次输出一次,显示其准确率、损失值和本批次运行的时间,以便更好的监控整个训练过程。训练结束,准确率达到97.6%。

②测试测试集:测试集是从官网下载的.p文件,它有4410个样本,具体的测试过程和对验证集的测试是类似的,只是传入的样本不同。最后的训练结果是“Test Accuracy = 92.6%,Test Loss = 0.536”。用tensorboard分别作出准确率和损失值的变化曲线图。如图3所示,从图中我们可以看出,随着传入批次的增多,准确率在逐渐增高,慢慢的趋近于1;损失值在逐渐降低,慢慢的趋近于0。

3  实验结果及分析

3.1 模型的优化

3.1.1 学习率的选择

学习率对模型的训练和神经网络的优化有着重要作用。学习率是结合梯度来更新权值的,选择的学习率要适应当前梯度的变化。如果学习率设置过大,会导致每次改变的太多,总是错过那个最佳的点;学习率设置的过小,又会导致收敛过慢,运行效率不高。本文选择了0.0005、0.0009和0.005三组学习率进行试验。

表1总结了不同学习率运行的结果,包含准确率和损失值。总体看来,表现比较好的时学习率为0.0005和0.0009,准确率均在98%以上,损失值也都在0.1以下;但是0.005的准确率和损失值都十分不理想,准确率只有3.5%,损失值也高达3.7。相比较两个表现较好的学习率,0.0009的准确率更高,损失值更低,所以是最优的。最终我们选择了0.0009为我们的学习率。

3.1.2 激活函數的选择

激活函数是训练中必不可少的一部分,而激活函数又有多个种类,怎么选择合适的激活函数就显得非常重要。在本研究中,选择了relu函数、sigmoid函数、tanh函数和softplus函数四种激活函数进行试验。

从表2中能看到,选的这四种激活函数的测试结果都还可以。其中relu表现最好,准确率高达0.983;tanh和softplus的准确率差不多,但是tanh的损失值有点高;sigmoid表现较差,准确率最低,损失值最高。综上所述,在所有的激活函数中,relu的表现是最好的,所以其被作为本文的激活函数。

3.2 复杂环境下交通标志识别

从研究交通标志开始,专家们虽然已经收获一些成果,但是都遇到了一些问题。出现这些问题大部分是因为交通标志处于室外,阴晴雨雪等复杂天气都能对其产生影响。这些复杂情况主要有:光照条件多变、运动模糊、被遮挡一部分和发生形变等。本文对各种复杂环境下交通标志识别进行实验,结果如图4所示。

综上所述,本文训练的网络对光线较强、雾天或者阴雨天气、运动模糊和被遮挡一部分条件下的交通标志的识别的准确率都较高,一般能达到90%以上,对发生形变的测试勉强使人满意,只有71%。

4  结论

交通标志识别系统的设计与实现,是智能交通系统的一个重要分支,具有研究价值和使用前景。本文着重研究了基于TensorFlow的交通标志识别系统的设计与实现。本文的主要工作如下所示:①本文首先对该课题的背景和意义做了深入的探讨,对交通标志的识别的应用前景和重要现实意义有了深刻的认识。②选择了GTSRB这一标准数据集,对其进行了预处理。预处理分为三步,分别是灰度化、直方图均衡(数据增强)和数据扩充。以上对数据集的预处理都是为了改善特征提取,提高识别的准确率。③介绍了卷积神经网络的搭建。通过卷积、池化、全连接一层层将整个框架搭建起来。然后使用训练好的模型分别对验证集和测试集进行了测试,并可视化训练结果。④结果分析。对不同的学习率、不同的激活函数进行验证和分析,找出了一套最优的方案。对一些复杂环境下的交通标志进行了测试,包括光线较强、光照较暗、雾天或者阴雨天气、运动模糊、被遮挡一部分和发生形变等各种情况,结果表明本文算法有一定的实用性,而且在准确率,鲁棒性和实时性等方面也表现较好。

参考文献:

[1]Spadafora W G,Paielli P M, Llewellyn D R, et al. Intelligent transportation system. US. US7689230, 2010.

[2]Wen Y, Lu Y, Yan J, et al. An Algorithm for License Plate Recognition Applied to  Intelligent Transportation System.IEEE Transactions on Intelligent Transportation Systems, 2011, 12(3 ):830-845.

[3]马振贵.疯狂收购英特尔布局无人驾驶.上海信息化,2017(04):40-43.

[4]Stallkamp J,Schlipsing M,Salmen J,et al. The German Traffic Sign Recognition Benchmark: A multi-class classification competition[C]. International Joint Conference on Neural Networks. IEEE, 2011:1453-1460.

[5]白璐.基于图像处理的车牌识别系统的研究[D].长安大学,2010.

[6]宋小潞.基于大气物理模型的单幅图像去雾算法研究[D].华南理工大学,2015.

[7]Lecun Y,Bottou L,Bengio Y,et al.Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.

猜你喜欢

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