基于改进卷积神经网络的交通标志识别方法①
2018-10-24赵银玲周武能
赵银玲, 周武能
(东华大学 信息科学与技术学院, 上海 201620)
近年来, 随着居民汽车保有量的迅速增加, 自动驾驶技术和辅助驾驶技术受到广泛关注[1]. 其中, 交通标志的自动检测和识别是其重要的组成部分, 正确并高效地检测和识别实景道路中的交通标志是实现自动驾驶的前提基础[2]. 同时, 随着汽车数量的急剧增长, 在道路行驶过程中发生交通事故的几率也明显增加, 交通标志的自动检测和识别能够在辅助驾驶系统中为驾驶人起到良好和及时的提醒作用, 为驾驶人的人身安全和交通安全提供保障. 因此, 如何准确高效地识别实景交通标志是目前研究的热点之一[3,4].
目前, 交通标志的检测与识别有多种方法, 人工设计特征的提取方法较为普遍, 主要有随机森林(HOG)算法[5]和线性判别式分析(LDA)[6]等方法, 但这些方法在提取特征的选择上需要较多的设计, 且所设计特征的优劣将直接影响其识别结果. 基于多特征的Multi-Scal CNN算法[7]可以自动提取特征, 避免了特征661041选择的困难, 但其主要的不足在于算法复杂度较高, 检测和识别的时间较长, 不能满足检测实时性的要求.
卷积神经网络是一个新的研究方法, 近年来在机器学习领域快速发展, 目前已在学术界被广泛关注[8,9],并且已经应用于图像识别问题[10,11]. 卷积神经网络具有很好的特征学习能力[12,13], 其所具有的优良特性使其备受关注.
本文将在已有研究的基础上, 深入研究卷积神经网络算法的内容和实现方法, 并对其结构进行改进, 将其应用于交通标志的自动检测和识别中, 为研究和开发实用有效的交通标志自动检测系统奠定良好的基础.
1 卷积神经网络
卷积神经网络的思想来源于1962年生物学家Hubel和Wiesel对猫脑视觉皮层的研究[14], 他们发现在视觉皮层中的一系列细胞对视觉输入的局部区域非常敏感, 因此称之为“感受野”. 感受野所具有的局部作用能够更好地挖掘出自然图像中强烈的局部相关性.
卷积神经网络的结构包括输入层、卷积层、池化层、全连接层和输出层几个部分, 一般来说, 卷积层和池化层会交替出现, 一个卷积层和一个池化层统称为一个固定卷积层.
卷积层具有稀疏交互性, 即各个神经元之间不一定具有直接联系, 但必定具有间接联系. 这也是卷积操作局部性的体现, 一个神经元只与前一层输入神经元中的局部直接相关, 但是统观网络的整体结构, 各个神经元间具有间接联系.
池化层也称采样层, 对上一个卷积层所提取的特征进行采样. 池化层的存在可以增强卷积神经网络的抗扰性.
卷积神经网络的训练可以直接采用有监督学习训练方式, 比如可以通过BP算法进行有监督训练, 经过信息的正向传播和误差的反向传播两个步骤.
卷积神经网络可以自动提取特征, 避免了人工特征设计和选择的困难. 目前, 卷积神经网络已经运用到图像分类、人脸识别和音频检索等领域.
2 改进的卷积神经网络
本文采用卷积神经网络作为交通标志自动检测的主要方法, 并在其基础上进行改进. 理论上, 检测系统的复杂度在很大程度上取决于卷积神经网络结构的复杂性[15], 卷积神经网络的层数越深、卷积核数目越多,卷积神经网络的结构就越复杂, 进而识别系统的检测识别率也越高. 但是与此同时, 复杂的网络结构也会使得系统运行的网络训练和识别时间增加, 这将会降低识别系统的时间效率.
在交通标志识别的实景应用中对于识别的准确性和实时性都有着较高的要求, 这就使得网络结构的设计需要在两者之间取得平衡, 从而尽可能将准确性和实时性两个条件都满足. 据此, 本文对传统的卷积神经网络进行改进, 力争在满足一定准确性的同时提高系统的实时性.
在卷积神经网络的训练和运行中, 卷积操作这一环节占据总用时的很大比例[16], 而池化等其它操作则用时较少. 这样, 相应地减少卷积核的数量就可以使总用时大为缩减. 同时, 增加池化类型, 即增加采样数量则可以弥补卷积核减少所带来的准确性影响. 本文采取平均池化方法和最大值池化方法这两种方法进行采样.
本文采用的改进的卷积神经网络结构如表1所示,整个网络共分为12层, 具体结构如下.
表1 改进卷积神经网络结构参数
(1) 输入层为32×32的彩色图片数据;
(2) 网络共有3个卷积层, 其卷积核数目为3, 卷积核大小均为5×5, 相较于传统卷积神经网络中几十或上百个卷积核来说, 本文的卷积核数目大为减少, 从而缩短其运行时间. 卷积层中, 步长stride为1, 同时周围进行大小为2的零填充, 因此卷积层的结果与输入层图像大小相同, 保持不变;
(3) 网络共有3个池化层, 每个池化层中含有两种池化方式:平均池化和最大值池化, 即对卷积层中输出的每一个特征图都进行两次不同的采样, 池化窗口大小均为3×3. 池化层中, 步长stride为1, 同时周围进行大小为1的零填充, 因此每种池化方式取得的结果与卷积层的结果大小相同. 因为每一池化层包含两种池化方式, 所以池化层总体输出维数增加;
(4) 在每一池化层后, 都设有一层归一化层, 使数据进行归一化操作;
(5) 网络设有2个全连接层和1个Softmax输出层. 同时, 特征图在卷积核池化过程中都保持32×32大小不变;
(6) 在全连接层采用Dropout操作, 使网络中的神经元随机失活, 其Dropout概率设为0.5.
3 样本数据
本文所采用的样本数据为真实场景下拍摄的道路交通标志图像数据集GTSRB. GTSRB数据集是以.ppm格式存储的图像数据集, 其中包含实景中的42种不同的交通标志, 每种交通标志都含有大量的图像数据以供训练和测试.
GTSRB数据集中的交通标志可以分为指示标志类、限速标志类、警告标志类、其他禁令类、解除禁令类和其它6大类交通标志, 其详细分类如下:
(1) 指示标志类. 起指示作用, 指示车辆、行人行进的标志. 颜色为蓝底、白图案;形状分为圆形、长方形和正方形;
(2) 限速标志类. 起限制速度的作用, 限制机动车在限速路段内的瞬时最高速度. 颜色为白底、红边、黑色数字图案, 形状为圆形;
(3) 警告标志类. 起警告作用, 警告车辆、行人注意危险地点的标志. 颜色为黄底、黑边、黑图案, 形状为顶角朝上的等边三角形;
(4) 其他禁令类. 起到禁止某种行为的作用, 禁止或限制车辆、行人交通行为的标志. 除个别标志外, 颜色为白底, 红圈, 红杠, 黑图案, 图案压杠;形状为圆形、八角形、顶角朝下的等边三角形;
(5) 解除禁令类. 起到解除某种禁令的作用, 对之前限制或禁止车辆行为的禁令进行解除的标志. 颜色为白底、黑边、黑色图案, 并有从右上至左下的五条细线, 形状为圆形;
(6) 其它. 除以上5中交通标志外的其它交通标志.
同时, GTSRB数据集中的图片是在真实场景中的交通标志图片, 包含阴雨、大雾和夜间等天气因素的影响, 能够较好地反映真实的道路交通状况, 使训练和测试的结果更为真实和全面.
本文所采用的数据集为GTSRB图像数据集, 包括42种不同的交通标志图像共51 839张, 其中训练数据为39 210张, 测试数据为12 631张. 其中, 每张图片均为RGB三通道的彩色图像. 另外, 因为多张图像可能是通过对一张原始的拍摄图片进行不同程度的裁剪所得, 所以图像数据的像素大小不尽相同, 交通标志图像的分辨率从 15×15 到250×250. 图1为实景状态下交通标志图片的示例, 图2为不同种类的交通标志示例.
图1 实景状态下交通标志图片的示例
图2 不同种类的交通标志示例
4 仿真实验
要实现实景交通标志的自动检测和识别, 本文采用上述改进的卷积神经网络进行实验, 通过BP算法进行有监督学习, 其网络训练和测试的步骤如下:
Step1. 对数据集中的图像进行预处理, 将每张图像的大小调整为32×32像素, 以便对其进行卷积神经网络的训练和测试;
Step2. 网络模型参数随机初始化;
Step3. 信息进行前向传播, 逐层计算, 得到输出结果;
Step4. 将输出结果与标签值进行比较, 计算误差值;
Step5. 根据误差进行反向传播, 同时更新网络参数;
Step6. 重复Step3~5, 直至误差值小于设定的最大误差值或迭代次数超过设定的最大迭代次数;
Step7. 改进的卷积神经网络训练好后, 将测试数据投入到网络中, 计算输出结果, 记录其测试结果并进行分析.
5 实验结果与分析
5.1 GTSRB交通标志分类
本文对GTSRB图像数据集进行训练, 得到了较为良好的实验结果. 图3为模型训练过程中的Loss值的变化, 图4为模型准确率的曲线图. 由图3和图4可以看到, 随着训练迭代次数的增加, Loss值逐渐变小, 准确率逐渐增加, 最终稳定在98.38%.
图3 训练误差变化曲线
图4 识别准确率变化曲线
表2为本文模型与其它模型的实验结果对比, 由表2可以看出以下事实:
(1) 在识别限速类标志上, 本文算法的识别准确率高于随机森林(HOG)算法、LDA算法和PCA+ELM算法[17];
(2) 在识别警告类标志上, 本文算法的识别准确率高于Multi-Scal CNN算法、随机森林(HOG)算法、LDA算法和PCA+ELM算法;
(3) 在识别指示类标志上, 本文算法的识别准确率高于Multi-Scal CNN算法和LDA算法;
(4) 在识别其它禁令类标志上, 本文算法的识别准确率高于LDA算法;
(5) 在识别解除禁令类标志上, 本文算法的识别准确率高于随机森林(HOG)算法和LDA算法;
(6) 在识别其它类标志上, 本文算法的识别准确率高于Multi-Scal CNN算法和LDA算法.
总体来看, 本文方法在GTSRB数据集上的识别准确率低于Multi-Scal CNN方法, 但却高于随机森林(HOG)算法、LDA算法和PCA+ELM算法, 其综合识别率较高.
5.2 时间复杂度
本文方法的实验环境为Intel(R) Core(TM)2 i5-3210M, CPU主频2.3 GHz, 内存2 GB, 操作系统为Windows 7, 软件环境为Anaconda3(64-bit), 仿真程序使用Python语言.
本文算法是对传统的卷积神经网络进行改进, 从GTSRB交通标志数据集中随机选取出2000个样本,采用与上述相同的方法对样本图像进行检测和识别.将本文的模型算法与Multi-Scal CNN算法进行对比,表3为本文模型与Multi-Scal CNN算法的结果对比.
由表3中可以看出, 本文算法针对单幅图像所用的平均时间为37.28 ms, 其用时远少于Multi-Scal CNN算法的用时, 可满足真实环境下交通标志检测的实时性要求. 因此本文算法可以在保证较高的识别准确率的情况下用时更少.
6 总结与展望
本文对真实场景中的交通标志识别进行研究, 将卷积神经网络进行改进, 并将其运用到实景交通标志的识别中, 在仿真实验中得到了较为良好的实验结果.该算法的特点是可以大为缩短网络的运行时间, 使其在实际应用中有更大的价值.
表2 本文模型与其他模型的识别准确率对比(%)
表3 本文模型与卷积神经网络的结果对比
本文利用图像数据集GTSRB中的实景交通标志图像进行了仿真实验, 得到总体识别准确率为98.38%.在交通标志的识别准确率上, 本文算法达到了较好水平, 同时, 在运行用时方面也有显著地降低, 这就使得其具有较好的可应用性.
进一步的工作主要是提高各类别的识别准确率,使其能够更加准确、高效地进行交通标志的识别.