APP下载

基于注意力机制的交通标志识别

2021-05-24廖璐明王亚刚

小型微型计算机系统 2021年6期
关键词:交通标志识别率神经网络

廖璐明,张 伟,王亚刚

(上海理工大学 光电信息与计算机工程学院,上海 200093)

E-mail:wzhang@usst.edu.cn

1 引 言

无论是在自动驾驶方面还是在高级驾驶辅助系统(Advanced Driving Assistance System,ADAS)方面,道路交通标志信息的获取都是必不可少的一部分.近年来随着我国车辆不断增加和道路交通系统不断完善,智能交通系统发展迅速,它在交通信号检测、车辆监测等方面广泛应用.交通标志识别作为核心技术之一,可以准确、实时的识别交通标志并做出提醒或决策,避免交通事故发生,实现安全驾驶[1].

2012年开始,深度学习蓬勃发展,以卷积神经网络的为基础单元的深度学习模型,在计算机视觉,自然语言处理和语音等方面相对于传统的机器学习方法有着更好的实时性和准确性.应用卷积神经网络进行交通标志识别一直是研究热点.

传统的机器学习方法识别交通标志分为两步,先对数据进行特征提取,然后进行识别,Ayoub Ellahyani[2]等使用图像的方向梯度直方图和HIS数字图像模型来提取特征,分类器采用随机森林和支持向量机.在德国交通标识数据集得到了较好的结果.文献[3]使用交通标志的二值模式特征进行训练,采用AdaBoost[4]分类器,但是该算法只能在少数类别交通标志上使用.基于神经网络的算法相对于人工提取图像特征的方法取得更好的结果,文献[5]基于InceptionV3的迁移学习[6]方法在微量数据集上取得96%的结果;文献[7]通过加权极限学习机和AdaBoost融合优化,通过加权最优表决得到最优分类器,在德国交通标志数据集上识别率达到99.12%;文献[8]融合图片的多尺度特征,增加低层特征的利用率,识别率达到99.25%;文献[9]通过对特征进行深度重构和权重分配,识别率达99.32%.

传统的图像特征提取加机器学习的方法,存在识别率低,特征设计复杂等缺点[10].虽然基于卷积神经网络的方法可以实现端到端的交通标志识别,但是目前的算法存在模型参数多,网络复杂的问题,识别率也有待提高.针对上述问题,本文结合空间变换网络(Spatial Transformer network,STN)[11]和注意力机制提出一种结构简单,参数量少的卷积神经网络模型,该模型在德国交通标志数据集上的识别率达到99.80%.与现有算法相比在识别率和识别时间上达到最优.

2 相关算法

2.1 空间变换网络

空间变换网络可以增加图像处理模型的鲁棒性,使模型具有空间不变性.当目标发生诸如旋转、偏移等转化后,模型依然能给出正确的结果.当交通标志发生放大、旋转、平移等变化后,模型仍然能够对其正确分类,卷积神经网络中的池化机制使得神经网络具备很少的尺度不变性,但仅依靠池化操作无法满足某些情况下模型对于较大的不变性的需求.

图1 空间变换网络Fig.1 Spatial transformer network

(1)

采样器利用采样网格和特征图U作为输入.采样器保证了空间变换网络自适应变换后输出图像的准确性,建立输出与输入上所有像素点灰度值联系[9].采样公式表示为:

(2)

2.2 CBAM模型

人工神经网络的设计灵感来源于生物的神经网络行为特征,注意力机制是人工神经网络模仿生物神经网络的经典案例.神经网络中的注意力机制指在全局信息中重点关注对当前任务有益的区域,如通过局部信息鸟喙分辨一只鸟.在视觉任务中SENet[12]是注意力机制的代表.SENet模块创造性地关注通道之间的关系,在神经网络训练过程中自动学习到不同通道特征的重要程度,对特征图每个通道施加不同的权重,关注重要的通道特征.

CBAM(Convolutional Block Attention Module)[13]结合了空间(spatial)和通道(channel)注意力机制模块,可以轻松嵌入到已有的卷积神经网络结构中进行端到端的训练.CBAM结构改进了SENet的通道注意力机制,并且增加空间注意力机制.CBAM结构如图2所示,从图中可以看出通道和空间注意力模块是独立的,结构简单,但功能强大,网络中加入CBAM结构实际上是对特征图在通道和空间层面做微调.

图2 卷积模块的注意力机制模块Fig.2 Convolutional block attention module

CBAM中的通道注意力模块对比SENet增加全局平均池化分支提取特征信息,结构如图3所示,对输入的特征图F,对每个特征图做全局平均值池化和全局最大值池化,分别经过全连接神经网络(多层感知机),全连接层的输出维度和特征图F的通道数相同,接着对两个输出执行elementwise加操作,sigmoid激活函数将值压缩到0和1之间.得到通道层面的注意力特征图Mc.将Mc和特征图F做elementwise乘法操作,得到经过通道注意力机制微调后的特征图.

图3 通道注意力模块Fig.3 Channel attention module

CBAM中的空间注意力模块结构如图4所示,输入为通道注意力模块输出的特征图F′,首先对特征图F′做基于通道的全局最大值池化和全局平均值池化,得到两个和特征图F′相同宽高,通道数为1的特征图,如图4所示,将这两个特征图在通道维度叠加.经过卷积操作,降维为1个通道.再经过sigmoid将值压缩到0和1之间,生成空间层面的注意力特征图Ms.Ms和特征图F′做乘法,得到最终的特征图.

图4 空间注意力模块Fig.4 Spatial attention module

2.3 标签平滑

多分类问题对类别向量进行独热编码(one-hot vector),对于长度为n的数组只有一个值为1其余都为0,1所在位置代表物体的类别.独热编码使得模型容易过拟合,模型过于相信预测的类别.为了解决这个问题,文献[14]提出了标签平滑(Label Smoothing Regularization)对数据集的标签进行优化.将类别概率很小一部分分给其他类别,对分类正确做了惩罚.标签平滑公式如下:

y′=(1-)×y+×u

(3)

其中,y′为标签平滑后数据标签,y为数据one-hot标签,为平滑因子,u是人为引入的一个固定分布.

(1)总吸能E(Total energy absorption),定义为结构密实化前载荷-位移曲线下的面积,见式(1),式中,δ为压溃位移:

3 交通标志识别算法

3.1 基于注意力机制的交通标志识别模型

本文提出的基于注意力机制的交通标志识别模型由空间变换网络、卷积层、池化层和改进的注意力机制模块组成.图5为改进的注意力机制模块.改进后的注意力机制模块将通道注意力模块和空间注意力模块分开.其中,通道注意力模块和空间注意力模块的细节可以从图3和图4中了解.

图5 改进的注意力机制模块Fig.5 Improved attention mechanism module

整个网络模型输入为统一大小的交通标志图片,首先经过空间变换网络,图片经过伸缩,旋转和平移等变换,获得空间不变性,接着卷积层和池化层交替出现,提取图片特征和降维,在网络中加入通道注意力模块和空间注意力模块,输出对应43个类别的交通标志.整体网络结构简单明了.空间转换网络和两个注意力机制模块以模块化的方式嵌入到网络中,在模型训练过程中实现自学习.

表1 网络参数表Table 1 Network parameter table

3.2 网络参数

本文设计的网络模型共764945个参数.网络参数如表1所示.定义网络模型除去空间变换网络和注意力机制模块的网络为Backbone.从表1中看出,本文模型的Backbone包括4个卷积层,3个池化层,1个全局平均池化代替全连接层,减少模型参数.为了防止过拟合和加快训练,在每个池化层后面加入Batch Normalization和Dropout.网络最后接Softmax分类器用于多分类.

4 实验结果及分析

实验使用Ubuntu18.04,64位操作系统,CPU为Inter Corei7,2.6GHz,内存16G.显卡为英伟达GTX 1660 Ti,显存6G.Pytorch深度学习框架.Miniconda集成开发环境,Python3编程语言.

4.1 实验整体流程

实验整体流程如图6所示,首先将数据集划分为训练集、验证集和测试集,统一交通标志图片尺寸,数据预处理还包括数据增强,模型建立完成后,设置初始超参数,在训练集训练网络权重,验证集调整超参数,测试集验证模型泛化能力.

图6 实验流程图Fig.6 Experiment flow chart

4.2 实验数据集及数据增强

本次实验使用德国交通标志数据集,包括35339张训练图片,3870张验证图片,12630张测试图片,每张图片包含一个交通标志.共43类交通标志,图片大小从15×15到250×250不等,类别分布不均匀.图片尺寸统一为43×43×3.部分交通标志图片如图7所示.

图7 德国交通标志数据集Fig.7 German traffic sign recognition benchmark

在实验中对训练数据使用数据增强,它可以增强模型的泛化能力,减小过拟合.实验对训练集进行亮度、对比度、饱和度、翻转、平移、旋转、随机裁剪等数据增强.扩充训练集到原训练集的10倍.

4.3 实验超参数设置

本文实验超参数设置为:初始学习率为0.001,总损失在5个epoch后不再减小则学习率减半.BatchSize为64,epoch总次数为50次.Dropout为0.5.使用LeakyReLU激活函数.优化器为Ranger,Ranger由RAdam[15]和LookAhead[16]组合而成,被认为是当前最好的深度学习优化器之一.

4.4 实验结果分析

为了解空间转换网络,数据增强,标签平滑和注意力机制对模型识别率的影响,进行多次消融实验.实验结果如表2所示.从表2可以看出,模型Backbone识别率为99.18%,超过了文献[7]和文献[17]的结果,说明本文算法Backbone的有效性,但是识别率存在提升的空间;加入空间变换网络后模型识别率达到99.44%,识别率提高了0.26%,表明空间不变性在交通标志识别任务方面非常重要;进一步使用数据增强之后识别率进一步提高,达到99.56%,数据增强对识别率的提高不大,这可能是数据增强中的几何变换(旋转,平移等)带来的效果和空间变换网络对模型的效果存在部分重叠;标签平滑对模型的识别率提高较小,但实验中证明对模型识别率是有积极影响的;加入改进的注意力机制模块后识别率提高了0.18%,效果明显,最终识别率达到99.80%.

表2 不同方法对模型识别率影响Table 2 Influence of different methods on model recognition rate

4.5 本文算法与其他算法比较

将本文算法和其它算法在德国交通标志数据集上的识别率进行比较,比较结果如表3所示.从表中看出,本文算法99.80%的识别率,比其他算法的识别率高3%以上,远远高于人类98.84%的表现.Committee of CNNs算法不仅识别率不如本文算法,而且该模型复杂,参数多,训练时间长.STN+ 重构 CNN 特征的算法也用了空间变换网络,还有复杂的特征重构网络,但识别率比本文算法低4.8个百分比.

表3 不同模型识别率对比Table 3 Comparison of recognition rates of different models

表4 不同模型识别时间对比Table 4 Comparison of recognition time of different models

表4列出了本文算法和其他算法在单幅交通标志平均识别时间的对比.本文算法在测试集上Batch Size设置为4,单幅交通标志图片的平均识别时间为0.29ms.远少于其他算法,在实时性方面明显优于其他算法.满足自动驾驶等场景实际需求.

5 结束语

本文提出了一种基于注意力机制的交通标志识别算法,该算法结构简单,参数少,结合STN,数据增强,标签平滑和改进的注意力机制等方法,在德国交通标志数据集上实验,识别率达到99.80%,单幅交通标志图片识别时间为0.29ms,在识别率和识别速度方面对比其他算法有明显提高.本文探讨了多种方法对识别模型的影响,可以对其他识别任务提供参考.下一步可以在模型融合、识别错误样本针对性数据预处理等方面进行研究,进一步提高算法识别率.

猜你喜欢

交通标志识别率神经网络
基于神经网络的船舶电力系统故障诊断方法
基于双向特征融合的交通标志识别
基于人工智能LSTM循环神经网络的学习成绩预测
MIV-PSO-BP神经网络用户热负荷预测
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
档案数字化过程中OCR技术的应用分析
基于PCA与MLP感知器的人脸图像辨识技术
科技文档中数学表达式的结构分析与识别
人工智能现状和发展
交通标志小课堂