结合卷积和自注意力机制的交通标志识别模型

2023-10-29 01:31刘云翔石艳娇
计算机仿真 2023年9期
关键词:交通标志注意力运算

周 峰,刘云翔,石艳娇

(上海应用技术大学计算机科学与信息工程学院,上海 201418)

1 引言

随着人工智能、云计算和交通大数据等先进技术的发展,自动驾驶技术越来越成熟[1]。交通标志识别作为自动驾驶的重要组成部分,在自动驾驶领域安全上发挥巨大作用。交通标志中含有丰富的道路信息和语义信息,所以在车辆行驶的过程中,准确且高效的识别出交通标志,是保障车辆自动驾驶安全性的重要基础。交通标志通常是根据其形状和颜色分为不同的类别,例如:红框三角形危险标志、红框圆形限速标志和蓝色圆形强制性标志等。然而,在实践过程中,交通标志识别的各种情况是复杂的,比如:光照条件难以控制,不同的季节、天气下的亮度不同;交通标志常年暴露在室外,部分交通标识褪色不清晰等情况;交通标志也存在着被树木枝叶遮挡的情况,这些情况使得自动驾驶系统中的交通标志检测和识别任务变得困难。为了更好的解决自动驾驶的出行安全,提高交通标志识别的准确性和实时检测的鲁棒性对自动驾驶显得格外重要[2]。

近年来,越来越多的学者开始投身于使用基于深度学习的方法,与传统的机器学习算法相比,深度学习方法提取的特征更具有语义信息。YOLO[3]算法是一种实时监测器,赵坤等人[4]提出了一种基于YOLOv3的自适应图像增强方法来解决复杂光照下拍摄的图像样本模型的情况,然后改进YOLOv3中的聚类算法和损失函数,使训练模型更加鲁棒。郭继峰等[5]人将深度可分离卷积应用到YOLOv4模型的上,将特征提取网络得到的不同层次特征图输入双向特征金字塔网络结构中进行多尺度特征融合,不仅网络模型和计算量变小,而且检测速度与精度有了一定的提升。深度学习方法为交通标志识别提供了更好的工具。相较于传统基于颜色、形状的模型分析方法,基于深度学习的方法它通常可以获得更好的识别结果,但是大多数应用于交通标志检测的深度学习方法通常使用的是卷积神经网络,卷积神经网络在图像识别广泛应用,卷积是一种线性运算,它通过以给定图像特征为中心的面片X与窗形滤波器W,即WX + B之间的离散卷积运算提取局部图像特征,因此卷积受限于感受域(窗口滤波器)的大小设定,所以卷积很难获取长距离的像素关系[6]。同时卷积神经网络中的卷积函数缺乏旋转不变性,而且学习参数数量会随着卷积核的数量和卷积核尺寸大小变大而增大,这样容易导致模型的参数数量和计算量过大,不能满足交通标志识别的实时性要求。

针对上述提出的问题,本文设计出一种融合多头自注意力机制和卷积运算的A-CSP模块用于改进YOLOV4-tiny交通标志识别算法得到A-YOLO模型。本文提出的A-YOLO模型有以下特点:1)D-CSP模块将输入特征图分为两个分支,一个分支通过深度可分离卷积生成半冗余特征图,另一个分支通过普通卷积操作生成必要的特征映射,然后将两个输出融合获得最后的特征图,D-CSP模块明显减少了模型的参数数量。2)不同于VIT[7]模型,本文Attention层不直接将图片进行分割成固定长度的Tokens,而是使用卷积和展平操作将图片变为Tokens,卷积操作可以获得低级特征(物体的边缘、角等),这样的输入促进多头自注意力机制获取像素级特征的相关性,有助于Attention层提取细节信息。3)A-YOLO模型前几层采用D-CSP模块获取低层信息,在最后一层采用A-CSP模块对含有丰富语义的高层进行局部特征和全局特征提取,特征融合不采用逐元素相加,而采用1×1的卷积自适应调整融合特征,增强提取特征图的语义信息。4)对比于YOLOv4-tiny模型使用两层不同尺寸特征图进行预测回归,A-YOLO模型采用四层不同尺寸特征图进行交通标志识别,有效减少目标的漏检和误检。

实验结果表明,融合多头自注意力机制的跨阶段部分网络A-CSP模块和D-CSP模块的A-YOLO的模型大小小于YOLOv4-tiny,并且在交通标志识别的准确率有一定提升。

2 相关工作

2.1 YOLOV4-tiny

Bochkovskiy等人提出了YOLOv4[8]的模型,相比较YOLOv3[9]而言,YOLOv4在输入端进行了改进,主要包括Mosaic数据增强、SAT自对抗训练等,在BackBone主干网络中将各种新方法结合在一起,包括:CSPDarknet53、MISH激活函数和DropBlock正则化方法。YOLOv4-tiny是YOLOv4的轻量级网络模型,YOLOv4-tiny的模块如图1所示。YOLOv4-tiny取消特征金字塔的合并,将PAN结构替换为FPN结构,只选择两个缩放的特征层进行分类和回归。YOLOv4-tiny中,其使用了CSPdarknet53_tiny作为主干特征提取网络。和CSPdarknet53相比,为了更快速,将激活函数重新修改为LeakyReLU激活函数。YOLOv4-tiny模型参数量小,推理速度比YOLOv4更快,可用于交通标志识别,满足交通标志识别的实时性。

图1 YOLOv4-tiny架构

2.2 卷积运算

卷积运算如图2所示。

图2 卷积运算示意图

由图2可知,卷积运算公式如式(1):

f(x,y)*g(m,n)=∑f(x,y)g(m-x,n-y)

(1)

从式(1)和图2可以知道,卷积运算实际上只考虑距离点(x,y)相邻像素的影响,影响大小随着卷积核尺寸的大小而变化。卷积运算受限于感受域的大小设定,卷积很难获取长距离的像素关系,但是自注意力机制很好地解决了这个问题。

2.3 深度可分离卷积

深度可分离卷积将一般卷积过程分为了逐深度卷积和逐点卷积,在损失一点精度的情况下,使模型计算量大幅下降,速度更快。深度可分离卷积被应用于两个著名模型:Xception[11]和MobileNet[12]。

2.4 多头自注意力机制

本质上,注意力就是从大量信息中过滤出少量重要的信息,并专注于重要信息而忽略大部分无关信息。自注意力机制[13]是注意力机制的一种变体,它以自身作为输入,减少对外部信息的依赖,更好地捕捉数据或特征的内部相关性[14,15]。近年来,自注意力模型更广泛地应用于机器翻译和自然语言处理,这启发了自注意力机制于图像识别、图像合成、视频预测中的应用。Chen等人[16]提出了自注意力机制在图像分类的改进,并使用非局部手段的变体在视频动作识别任务上实现很好的结果。Bello等[17]人没有单独使用卷积,而是通过直接串联将卷积和自注意力机制结合起来,取得了很有希望的改进。这表明组合这两个操作符对提高性能有很大帮助。

3 A-YOLO模型

A-YOLO模型将融合多头自注意力机制的A-CSP模块融入到Darknet53-tiny作为特征提取网络,使用多头自注意力模块允许模型关注全局像素间的相互作用,同时卷积的平移不变性为它对图像进行局部特征构造提供强大动力,A-CSP模块将同一尺度的多头自注意力模块提取的全局特征和卷积运算提取的局部特征融合在一起,对四个不同尺度特征图进行目标框的回归和种类的预测,检测出不同大小的目标。损失函数采用YOLOV4-tiny的CIOU损失作为边界框回归损失,置信度损失和分类损失为交叉熵损失函数。

A-YOLO模型的网络结构如图3所示。

图3 A-YOLO架构图

3.1 D-CSP模块

D-CSP跨阶段网络模块如图4所示,通过1.3节的分析可知,深度可分离卷积的运算量远小于普通卷积的运算量,同时受到CSPNet[18]启发,将深度可分离卷积融入到CSP跨阶段网络结构中,使用深度可分离卷积去计算生成半冗余特征图来减少运算量。所以正如图4所示的D-CSP模块结构图,第一个分支使用深度卷积操作生成半冗余特征图,另一个分支只通过一个3×3的普通卷积来生成另一半必要特征映射,然后将两个输出通过一个1×1的普通卷积运算交互在一起获得特征图。

图4 D-CSP模块结构图

3.2 A-CSP模块

A-CSP模块是D-CSP模块的变体,正如图5,将D-CSP模块中的普通卷积运算替换成多头自注意力机制模块,就是将深度可分离卷积运算与多头自注意力机制并联起来,最后再通过1×1的普通卷积运算将两个通道的特征融合在一起。其中Attention层的网络结构如图6所示,Attention层将分成以下二个部分介绍。

图5 A-CSP模块结构图

图6 Attention层结构图

A)图像数据转序列化数据:

在自然语言处理中,语言是序列化的,可用相对应得词向量输入到多头自注意力机制模块中得到结果,但是在图像识别中得图像数据是三维的,所以需要将图像这种三维数据转化为序列化数据。设图像大小为(H,W,N),多头自注意力机制很难高效地提取一些细节信息,所以本文先使用1×1的普通卷积运算和展平操作将图像转成矩阵X∈RHW×Nin,为了对图像原始位置编码,本文使用线性变化函数y=XAT+b对上述的二维矩阵进行映射操作,同时将映射出来的结果再加上X得到X′,使X′保持原来的序列,公式如下式(2)

LR(X)=X′=X+(XAT+b)

(2)

B)序列化数据编码

首先对于自注意力模块来说,底层的输入为X′,首先使用三个矩阵MQ∈RNin×Nq,MK∈RNin×Nk,MV∈RNin×Nv分别与X′相乘映射得到q,k,v,其中Nq、Nk、Nv代表着查询、键、值的深度,公式如式(3)、(4)、(5)

q=MQX′

(3)

k=MkX′

(4)

v=MVX′

(5)

(6)

多头自注意力模块是由h个自注意力模块组成,对于输入数据X′进行可学习的线性映射后,接着输入到各自的自注意力模块中可得到不同的特征值,然后将所有头部的输出进行连接并再次投影,公式如式(7)所示,其中w∈RhNv×Nin为一个可学习的线性转换。

MHSA(X′)=Concat[b1,b2,b3,…,bh]w

(7)

Attention层受到残差网络的启发,加入残差网络结构,直接引入一个短链接到多头自注意力层后线性层的输出上,使得整个映射变为:O(X)=MHSA(LR(x))+X,引入残差网络好处是一方面是残差网络使输入信号可以从任意低层直接传播到高层。因为含有一个直接的恒等映射,这样可以解决网络训练退化的问题;另一方面是错误的信号可以不经过任何中间权重矩阵变换直接传播到低层,可以缓解梯度弥散问题。

由第1节可知,卷积运算和多头自注意力机制这两个计算模块是相互补充的,即卷积运算提取的局部信息和多头自注意力机制提取的全局信息可以相互结合,卷积采用了局部处理的归纳偏置,产生有效的局部语义特征。与卷积不同,多头自注意力机制体现了低归纳偏差,释放出更多的自注意力空间来自由探索数据集的固有特征,有利于更好的性能和泛化,同时多头自注意力机制动态的生成各个像素之间不同连接的权重,这样多头自注意力机制更容易获得远距离的像素的相互依赖关系,所以将这两个模块相互结合强化各自的优势,这样更有效提取图像的特征,相应的结合自注意力和卷积操作可以写成式(8):

A-Conv(X)=Concat[O(X),Conv(X)]

(8)

3.3 Detecion层

A-YOLO模型对不同尺度的特征图进行自下而上的多尺度特征融合,同时本文为了提升网络检测能力降低漏检率,对四个不同尺度的特征图进行目标框的回归与预测。例如图3所示,输入图像的分辨率为640×640,最后在160×160、80×80、40×40、20×20这四个分辨率上不同大小的目标进行检测。

4 实验结果与分析

本文实验环境为Ubuntu 18.04系统,显卡为两张TITAN X,显存共为24GB。

4.1 实验数据集

本文实验数据集采用Tsinghua-Tencent 100K Tutorial(TT100K)数据集[19],该数据集是清华大学和腾讯公司合作制作,从 10 万张腾讯街景全景图中创建了一个大型交通标志基准,数据集提供了训练集6107张图片,验证集包含3073张图片,这些图像涵盖了照度和天气条件的巨大变化,同时人工标注的交通标志数据集标有类别标签、边界框和像素掩码。TT100K中图像的分辨率为2024×2024,为高清摄像头拍摄真实街景,其基数庞大、语义信息含量丰富,但数据样本仍存在长短尾效应,出现次数最多的交通标志达 1479 次,最低的仅有 112 次,所以本文对数据集较少的交通标志进行马赛克数据增强的操作,输入进模型的数据如下图7所示,同时本文在本次实验中训练的输入图像分辨率为1280×1280。

图7 训练输入图片,batch-size大小为16

在本文算法中,对于检测框的大小是根据K-means聚类算法计算得出的,对于本文A-YOLO模型来说,检测框需要12个,通过使用K-means聚类算法计算后,在分辨率为1024×1024的图像上,本文采用检测框的大小为[8,9]、[11,12]、[14,15]、[18,19]、[15,28]、[23,24]、[29,30]、[37,38]、[32,55]、[49,48]、[66,63]、[106,99]。

4.2 评估指标

本文采用mAP(mean Average Precision)作为评判标准,mAP即各类别AP的平均值,mAP的精度越高代表算法的识别效果越好。mAP被描述为如下式(9),K表示类别

(9)

其中AP计算方式如下式(10):

(10)

4.3 结果与分析

本文为了验证A-CSP模块在特征提取和融合的功能上的效果,本文在ImageNet数据集[23]上做分类实验,ImageNet是一个标准的大规模数据集,用于跨一系列架构的高分辨率影像。本文从ResNet架构[20-22]开始,因为它应用广泛,并且能够在许多计算预算内轻松扩展。本文在ResNet架构的最后1个阶段的每个剩余块中应用A-CSP模块,将A-CSP模块融入到Resnet30、Resnet50、Resnet101上,多头自注意力模块的头数量为4。由下表实验所知,与原Resnet30、Resnet50、Resnet101相比,A-CSP模块不仅衰减了一定的网络参数量,而且提升平均分类精度,证明了多头自注意力机制提取的全局信息有效的补充了卷积运算在局部近邻的工作,所以卷积运算通过线性计算提取局部信息,多头自注意力机制对高阶上下文关系进行建立长距离像素的相互作用提取全局信息,两者运算相互融合增强提取特征能力。

表2 A-CSP模块消融实验

接着,本文为了验证D-CSP模块网络的表现,将YOLOv4-tiny模型中的CSP模块替换为D-CSP模块,按照第一阶段2层D-CSP模块,第二阶段4层D-CSP模块,第三阶段6层D-CSP模块,相比较YOLOv4-tiny的61层,替换后的YOLOv4-tiny模型变成了277层,但是参数仅为4.81M,相比YOLOv4-tiny模型降低了21%,两者精度很接近,仅差0.6%。在YOLOv4-tiny主干网络上直接添加A-CSP模块,即在YOLOv4-tiny模型上直接引入多头自注意力模块,参数数量有所增加,平均精度比原来的YOLOv4-tiny提高了1.2%。

最后,为了进一步测试A-YOLO算法的性能,本文在相同参数下进一步将A-YOLO与YOLOv3、,YOLOv3-tiny、YOLOv4-tiny、YOLOv5s等算法分别进行对比,不同算法的性能对比,如表4所示。

从表4可知,A-YOLO的mAP对比于其它轻型网络如YOLOv3-tiny、YOLOv4-tiny、YOLOv5s检测的平均精度有一定提升。由表3所知,虽然A-YOLO模型参数量多于YOLOv4-tiny模型,但是本文采用模型量化技术,在不明显的精度损失情况下,使得A-YOLO模型大小小于YOLOv4-tiny模型的大小,虽然在相同设备上A-YOLO模型的FPS低于YOLOv4-tiny模型,也就是A-YOLO模型每秒处理的速度要低于YOLOv4-tiny模型,A-YOLO模型的推理时间高于YOLOv4-tiny模型,这是由于多头自注意力机制推理速度慢于卷积运算,但是A-YOLO模型检测确高于YOLOv4-tiny模型,在一定的检测效率上进一步保证了自动驾驶的安全。最后对比于最新的YOLOv5s模型,同样是微模型,将多头自注意力机制和深度可分离卷积结合在一起的A-YOLO模型检测交通标志的精度与速度均超过YOLOv5s模型。下图8为A-YOLO模型在TT100K数据集的识别效果图,可以看出,不管是远处的小目标还是近处的大目标,A-YOLO模型都能识别出来。

表3 不同主干网络在TT100k数据集进行目标检测

表4 不同算法在TT100K数据集的目标检测

图8 识别效果图

5 结论

本文提出一种结合多头自注意力机制改进YOLOv4-tiny模型的A-YOLO交通标志识别模型,旨在解决现有路标识别方法中模型参数过大、识别速度慢、识别准确率低等问题。本文设计的A-YOLO模型将多头自注意力机制与卷积运算结合在一起,卷积的性质使像素无法建立长期关系,而长期关系通常有助于更好的视觉理解,多头自注意力机制正好弥补这个缺陷。由于整体模型若都使用A-CSP模块会导致模型参数量过大,所以本文在模型低层使用含有深度可分离卷积的D-CSP模块以减少特征提取网络参数大小,最后在四层不同尺度的特征图上进行检测回归,加强对各种尺寸目标检测。通过实验结论证明,本文提出的A-YOLO模型大小比传统的YOLOv4-tiny模型减小了0.9MB,同时mAP提升了2.1个百分比,检测精度提高到90.7%,在检测速度方面,略低于YOLOv4-tiny模型。本文使用的多头自注意力机制模块是基于像素级操作,导致计算量较大、推理速度较慢,只能运用在模型的最后一个尺度上进行全局语义提取,在减少计算量和加快推理速度的同时将自注意力机制和卷积运算更有效的有机结合,并应用在目标检测上提升检测精度仍有待进一步研究。

猜你喜欢
交通标志注意力运算
基于双向特征融合的交通标志识别
重视运算与推理,解决数列求和题
让注意力“飞”回来
有趣的运算
“扬眼”APP:让注意力“变现”
“整式的乘法与因式分解”知识归纳
A Beautiful Way Of Looking At Things
交通标志小课堂
我们欢迎你!