基于坐标注意力的轻量级交通标志识别模型
2023-02-24李文举储王慧
李文举,张 干,崔 柳,储王慧
(上海应用技术大学 计算机科学与信息工程学院,上海 201418)
0 引言
交通标志识别技术是视觉导航和计算机视觉在智能驾驶中应用的研究热点。道路交通标志识别任务中,微小的错误可能会带来灾难性的后果[1]。在多种约束条件下,需要通过复杂的方法以实现高精度的实时检测。由于遮挡、目标小以及背景复杂等问题,使交通标志牌比一般目标更难检测,并且实时性也是实际应用中的一大挑战[2]。由此可以看出交通标志的快速检测与精确识别对于改善辅助驾驶系统的安全性和可靠性具有重要意义。
以往在交通标志识别任务中通常使用基于颜色、形状和机器学习的方法进行检测和分类。文献[3]中使用基于AdaBoost 二进制分类器和循环霍夫变换的颜色分割对交通标志进行检测,该方法准确率较高并拥有较好的鲁棒性;文献[4]中根据交通限速标志的颜色和形状特征,通过特征匹配有效对自然场景中的限速标志进行检测与识别。随着卷积神经网络的快速发展,近几年深度学习被广泛应用于道路交通标志识别任务中。文献[5]中采用基于改进胶囊网络(Capsule Network,CapsNet)的交通标志分类模型,充分保留了图像的空间特征;文献[6]中通过对检测分支特征在通道和空间2 个维度进行重新标定,使网络聚焦和增强有效特征;文献[7]中设计了感兴趣区域提取方法,依靠神经元来表示动态路由、路径姿态和方向等目标参数,有效地从不同角度或方向获取交通标志信息。上述方法在改善交通标志识别性能的同时仍然存在各自的局限性。其中:文献[4]方法只针对限速标志进行检测与识别,实用性有待提升;文献[3-7]中未能解决检测精度与检测速度之间的性能不均衡问题,无法满足实时性。
2020 年,精度和速度都非常优秀的单阶段网络模型YOLOv5 被提出。基于最新的YOLOv5 网络,本文设计并改进了一种基于坐标注意力(Coordinate Attention,CA)的轻量级交通标志识别模型。1)在主干网络[8]中加入坐标注意力(CA)机制[9],将位置信息嵌入通道注意力中,使网络能够获得更广泛的区域信息,尽可能避免了参数量和计算量的增加。2)采用具有跨层连接的双向特征金字塔网络(Bidirectional Feature Pyramid Network,BiFPN)[10]代替路径聚合网络(Path Aggregation Network,PANet)[11],提高网络的特征提取能力,从而获得更多道路交通标志的通道特征,同时删除只有一条输入边的节点并取消加权操作,极大地降低了计算成本。3)对CIoU(Complete Intersection over Union)[12]损失函数进行改进,将中间点之间的欧氏距离进行开平方运算,降低中目标和大目标的损失权重。在TT100K 数据集[13]上的实验结果表明,改进网络对受遮挡以及小尺寸的道路交通标志检测效果良好,并满足实时性的要求。
1 坐标注意力与特征金字塔
1.1 坐标注意力
注意力机制起源于对人类视觉机制的研究,并能够从这一角度进行直观解释。视觉系统倾向于关注图像中有利于判断的部分信息,并忽略掉不相关的信息[14]。注意力机制作为提高神经网络特征提取能力的一种有效方法,已经成为该领域的一个重要概念,目前在自然语言处理、统计学习、语音和计算机视觉等领域有着大量的应用。
现有研究表明,将注意力机制融入卷积神经网络模型中可以带来比较显著的性能提升,但传统的注意力机制应用于轻量级网络的效果明显落后于深度网络,由此带来的计算开销对于轻量级网络而言也是无法承受的。目前比较流行的注意力机制包括SE(Squeeze and Excitation)[15]、BAM(Bottlenect Attention Module)和CBAM(Convolutional Block Attention Module)[16]。SE 只考虑内部通道信息而忽略了对视觉任务非常重要的位置信息和空间结构,这些位置信息对生成空间选择性注意力图至关重要;BAM 和CBAM 通过在通道上进行全局池化来引入局部的位置信息,但是无法捕获特征图上的长程依赖。
坐标注意力作为一种新的高效注意力机制,第一步将位置信息嵌入通道注意力中,使得轻量级网络能够获得更大区域的信息,减少了注意力模块的参数量同时避免了过多的计算开销。为了避免二维全局池化造成位置信息的丢失,将二维全局池化分解为两个并行的一维特征编码,分别沿着两个空间方向进行特征聚合,高效地将空间坐标信息整合到注意力图中。在坐标信息嵌入过程中,对X方向的输入采用尺寸为(H,1)和(1,W)的池化核沿着水平坐标方向和垂直坐标方向对每个通道进行编码,H、W分别为当前注意力模块对应的输入特征图的高度和宽度,数值会随着网络的下采样而改变。高度为h的第c个通道的输出如式(1)所示:
类似地,宽度为w的第c个通道的输出如式(2)所示:
利用两个一维全局池化操作将水平和垂直方向的输入特征分别聚合为两个独立的方向感知特征图并分别编码为两个注意力图,每个注意力图都包含了输入特征图沿着一个空间方向的远距离依存关系,并保存沿着另一个空间方向的精确位置信息,使得网络能够更准确地获取感兴趣区域。
第二步,为了更好地利用坐标信息嵌入产生的具有全局感受野并拥有精确位置的信息,在遵循如下3 个标准的基础上设计了坐标注意力生成操作。
1)在移动环境中使用时应该尽可能简单高效;
2)能够充分利用获取到的位置信息,精确定位感兴趣区域;
3)能够有效地捕捉通道与通道之间的关系。
将X方向与Y方向平均池化的输出张量进行拼接,通过一个共享的1×1 卷积操作进行F1变换,如式(3)所示,生成的是空间信息在水平方向和竖直方向的中间特征图,r表示下采样的步长,和SE 模块一样用来控制模块的大小。
经归一化和非线性处理后,沿空间维度将f切分为两个独立的张量,之后利用两个1×1 的卷积Fh和Fw将特征图f h和f w分别变换到和X输入相同的通道数,如式(4)和式(5)所示:
其中:σ代表sigmoid 激活函数,采用这种方式来降低模型的复杂度并减少计算开销。
最后对得到的结果进行拓展,采用矩阵相乘的方法求得最终的注意力权重矩阵,坐标注意力模块的最终输出如式(6)所示:
坐标注意力模块结构如图1 所示。
图1 坐标注意力模块结构Fig.1 Structure of coordinate attention module
1.2 特征金字塔网络
传统的特征金字塔网络(Feature Pyramid Network,FPN)[17]可将具有高分辨率的浅层特征图和具有丰富语义信息的深层特征图进行融合,由于受到单向信息流的限制,导致在传递过程中丢失掉较多的细节信息,如图2(a)所示;YOLOv5 在FPN 的基础上进行改进,通过增加一条自下而上通道来缩短信息路径以达到减少底层信息丢失的目的,同时增加了参数和计算量,如图2(b)所示;而双向特征金字塔网络是一个更加高效的特征融合网络。首先,删除只有一条输入的节点,如果一个节点只有一条输入而没有特征融合,那么它对以融合不同特征为目标的特征网络的贡献就会更小;如果有超过两个的输出特征图在同一层,则增加跨层连接,即添加一条额外的路径以便在不增加成本的情况下融合更多的特征,如图2(c)所示。
图2 三种不同的特征金字塔网络结构Fig.2 Structures of three different feature pyramid networks
在以往的特征融合方式中,往往是将所有输入特征直接相加或拼接。但不同阶段的输入特征会对输出特征产生不同程度的影响,因此为每个输入特征引入了一个可学习的权值,使网络自行学习每个输入特征的重要性来实现加权特征融合。计算方法如式(7)所示:
其中:Ti是可学习的权重,可以为标量、向量或多维张量;ε的作用是避免数值不稳定。实验结果表明这种融合方法可以提升网络的检测精度,但由此带来的庞大计算量是轻量级网络无法承受的,因此对于轻量级网络而言,跨层连接的思想更加实用。
2 改进的YOLOv5网络结构
2.1 网络结构
改进的YOLOv5 网络由主干网络和头部组成。主干网络包括跨阶段局部网络模块、坐标注意力模块和快速空间池化金字塔(Spatial Pyramid Pooling Fast,SPPF)模块,头部包括特征融合网络和检测模块。改进的网络结构如图3 所示。
图3 改进的YOLOv5网络结构Fig.3 Structure of improved YOLOv5 network
删除原有的Focus 模块,使用一个卷积操作来代替。Focus 模块既保证在下采样的过程中没有信息丢失,又变相增加了网络的批处理大小,但在浅层网络中,保留上述信息对网络性能并没有明显增益,更多的是为了减少浮点数和提高运行速度,因此采用一个大的卷积核Conv(kernel_size=6,stride=2,padding=2)对其进行替换,进一步压缩模块大小,获得更好的性能。
空间金字塔池化(Spatial Pyramid Pooling,SPP)[18]包括四条路径,残差连接、k=5 的二维最大池化、k=9 的二维最大池化和k=13 的二维最大池化,如图4(a)所示。为了提高模块的运行速度,将其替换为快速空间池化金字塔模块,仅使用池化核为5(k=5)的二维最大池化,采用并行残差结构,在减少计算量的同时达到与原模块相同的效果,如图4(b)所示。其中,路径①与k=5 时池化效果相同,路径②与k=9 时池化效果相同,路径③与k=13 时池化效果相同。
图4 两种空间金字塔池化对比Fig.4 Comparison of two spatial pyramids pooling
空间池化金字塔计算量如式(8)所示:
快速空间池化金字塔计算量如式(9)所示:
可以看出,改进后的空间池化金字塔在池化过程中的计算量比原来减少了约72.7%,从而加快了模块的运行速度。将快速空间池化金字塔模块设置在主干网络的最后一层,并为原先最后一层的跨阶段局部网络模块添加残差结构。
YOLOv5n 网络作为一种轻量级网络模型,与YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x 相比网络层数显著减少,在训练和检测过程中只需要占用较少的内存,正因如此,可以在不改变显存大小的情况下将图片输入分辨率从原先的640×640 增加为1 280×1 280。此外,在主干网络中增加一次下采样,通过这种方式将检测尺度增加到了四种。
2.2 损失函数
在YOLOv5 中,损失函数由三部分组成,分别为分类损失、定位损失和置信度损失。本文对CIoU Loss 进行改进,实现了在交通标志识别任务中对预测框与真实框之间更精确的损失计算。
交并比(Intersection over Union,IoU)[19]代表预测框与真实框交集与并集的比值,用于衡量预测框的准确度,如式(10)所示:
其中:B和Bgt分别代表预测框和真实框。但采用IoU 作为性能度量时,如果两个物体不重叠,IoU 值和梯度都为0,无法进行优化。
GIoU(Generalized Intersection over Union)[20]首先计算预测框与真实框的最小闭包区域面积E,之后计算闭包区域中不属于两个框的部分占闭包区域的比例,最后用IoU 减去这个比例得到GIoU,如式(11)所示:
其中:A代表预测框,B代表真实框,均为张量。
GIoU 与IoU 不同,不仅关注预测框与真实框的重叠区域,还关注非重合区域,能够更好地反映两者的重合度;但当检测框和真实框之间出现包含的现象时会存在IoU相同的问题。
DIoU(Distance Intersection over Union)[12]计算的不是框之间的交并比,而是每个检测框之间的欧氏距离ρ。加入框与框中心点之间的距离信息,有效提升了模型训练效果。相较于GIoU,DIoU 不仅收敛速度更快,准确率也更高,如式(12)所示:
其中:b代表预测框的中心坐标;bgt代表真实目标边界框中心的参数;ρ2代表两个中心点距离的平方;d代表两个矩形的最小外接矩形对角线长度。
CIoU 在DIoU 的基础上增加了检测框尺度的损失以及长和宽的损失,使预测框更加符合真实框,如式(13)所示:
在惩罚项中加入了αv,其中α为权重函数,而v用来比较两个框宽高比的吻合度,定义为:
本文在CIoU 的基础上进行改进:将分子上的欧氏距离进行开平方运算。目标越大时,预测框和真实框的中心点距离通常也会越大,那么在计算损失时就会明显高于小目标,不利于小目标的损失计算。在中国交通标志TT100K 数据集中,存在大量的小目标,因此,通过开平方降低大中目标的损失权重,更好地计算损失,改进后的损失函数如式(15)所示:
3 实验与结果分析
3.1 数据集
TT100K 中国交通标志数据集[13]由清华大学和腾讯的联合实验室所整理和公开,在中国的5 个不同城市中选择了10个区域,从腾讯数据中心下载了10 万张全景图,通过水平滑动将每张图片分割成2 048×2 048 的大小,之后对图像中的交通标志进行了边界框标注、类别标注以及像素级的标注。
TT100K 数据集包含的151个类别当中,只有45个类别的实例数超过50,并且有接近一半的实例数为个位的类别,这造成了严重的数据分布不均衡,直接训练会产生过拟合现象。因此,对数据集进行处理,仅保留实例数超过50的45个类别[21]。
3.2 实验配置
处理后的TT100K 数据集,共9 170 张图片,约占10 GB内存,仅使用CPU 无法通过深度学习的方式拟合神经网络模型。因此,在GPU 上对改进网络进行训练和测试。
本文实验均在Windows 10 操作系统下进行,GPU 型号为2080TI,内存为16 GB×2,CUDA 版本为10.2,Cudnn 版本为7.6.5,OpenCV 版本为3.4.0。
3.3 实验结果与分析
为了验证改进方法的有效性和泛化性,分别对五种尺度的YOLOv5-P6 模型进行了消融实验。
实验1 是TT100K 数据集在传统的YOLOv5 模型上的检测结果。分析可知,随着网络深度的减少,YOLOv5 模型的检测速度逐渐加快但识别精度逐渐降低,YOLOv5x 模型比YOLOv5n 的精度高9.66 个百分点,但YOLOv5n 的检测速度是YOLOv5x 的7.47 倍,模型大小仅3.85 MB,为YOLOv5x 模型大小的2.3%,因具有模型小、参数量低等特点,可以在不改变设备显存的情况下将图片输入分辨率增加为1 280×1 280,检测精度为86.81%,比精度最高的YOLOv5x 高1.51个百分点,检测速度是它的3.5 倍。实验结果如表1 所示,部分实验数据来源于文献[22]。
表1 传统YOLOv5模型的训练结果对比Tab.1 Training results comparison of traditional YOLOv5 models
实验2 为不同深度的YOLOv5-P6 模型的检测结果对比,和实验1 相同,网络深度的减少伴随着检测速度的提升和识别精度的降低。对比实验1和实验2可以看出,拥有四种尺度检测头的YOLOv5-P6 模型的识别效果优于对应的传统模型,精度分别提高了5.93、1.98、3.98、4.23 和2.32 个百分点,随着参数量的上升,模型大小分别增加了2.66 MB、10.3 MB、27.7 MB、65.1 MB 和103 MB,检测速度分别降低了70.18 FPS、41.7 FPS、17.09 FPS、7.73 FPS 和4.32 FPS。将YOLOv5n-P6 的输入分辨率增加到1 280×1 280,实验结果表明,与YOLOv5x-P6 模型相比,虽然模型大小仅为其2.7%,但检测精度相当,并且检测速度达到了它的3.7倍。由此可以看出,YOLOv5n-P6模型在检测速度与识别精度两方面的表现更加均衡。实验结果如表2 所示。
表2 不同深度的YOLOv5-P6模型的训练结果对比Tab.2 Training results comparison of YOLOv5-P6 models with different depths
实验3 为不同深度的YOLOv5-P6 模型分别结合坐标注意力模块的检测结果对比。可以看出,YOLOv5n-P6 和YOLOv5s-P6 在主干网络中融入坐标注意力机制后,精度分别提高了3.13 和1.18 个百分点,召回率分别提高了1.35 和0.12 个百分点,速度损失仅为30.59 FPS 和9.09 FPS。而其他三种模型结合坐标注意力机制后,精度和召回率产生了不同程度的下降,并且网络越深,精度下降越多。因为随着网络深度的增加,模型复杂度和参数量逐渐上升,收敛速度逐渐下降,并且会影响梯度传播的效率,这些情况都会导致注意力模块的参数在训练时难以拟合出好的结果。同时,1 280×1 280 输入分辨率的YOLOv5n-P6 结合坐标注意力,精度达到89.87%,召回率为85.35%,帧处理速率为144.93 FPS,模型大小仅为7.22 MB。综上,坐标注意力是针对轻量级网络模型的一种有效的注意力机制,对YOLOv5n-P6模型的改进效果尤为突出。实验结果如表3所示。
表3 不同深度的YOLOv5-P6模型结合坐标注意力的训练结果对比Tab.3 Training results comparison of YOLOv5-P6 models with different depths combined with coordinate attention
实验4 中的数据表明,本文提出的轻量级交通标志识别模型在精度、召回率、帧处理速率等指标上远远优于大部分最新的交通标志识别模型,在识别精度与检测速度两方面更加均衡。将输入分辨率固定为1 280×1 280,在YOLOv5n-P6的主干网络中融入坐标注意力的基础上,在特征融合网络中加入跨层连接来融合更多的特征,检测精度提高了1.18 个百分点。在此基础上引入改进的CIoU 损失函数,从图5 中可以看出,与传统的CIoU 相比,改进算法的收敛更快,效果更好。最终本文模型的检测精度达到91.5%,召回率为86.64%,与传统的YOLOv5n 模型相比分别提高了20.96%和11.62%,对图像中的交通标志具有更好的识别率,帧处理速率为140.84 FPS,满足实时检测的要求。图6 中给出了训练过程中精度与召回率的演化图。模型大小仅为7.32 MB,部署在手机等硬件设备上时能够避免内存溢出而导致的无法运行等情况。实验结果如表4 所示。
图5 改进的损失函数与CIoU的训练效果对比Fig.5 Comparison of training effect between improved loss function and CIoU
图6 本文模型的训练过程演化图Fig.6 Training process evolution diagram of the proposed model
表4 本文模型与其他最新模型的训练结果对比Tab.4 Comparison of training results between the proposed model and other latest models
选择受遮挡和小尺寸的道路交通标志实例,利用YOLOv5n-P6、YOLOv5n-P6 结合坐标注意力机制和最终模型进行检测。
根据图7(a)检测结果可以看出,YOLOv5n-P6 模型未能在真实场景下检测出小尺寸的交通标志;结合注意力机制后,能够成功检测到目标,但置信度得分不高,仅为0.54;而本文模型不仅能够准确地框出目标位置,置信度得分也达到了0.84,显著高于上述模型。
图7 不同模型的检测效果对比Fig.7 Comparison of detection effects of different models
在受遮挡的情况下,本文模型检测出的交通标志置信度最高,分别达到了0.81 和0.92,相较于其他两种模型分别提高了0.39、0.15 和0.14、0.07,如图7(b)(c)所示。
与前两种模型相比,改进模型不仅准确识别出了被遮挡的目标,并且在回归任务中完整地定位到了图像中的道路交通标志。综上,本文改进模型与传统模型相比能够更加精确地检测和识别出受遮挡的目标、小目标以及受遮挡的小目标,性能表现良好。
最后,本文还展示了一些检测错误的示例,在图8 中使用方框标出。可以看出,导致漏检和误检主要原因包括:1)拍摄过程中产生畸变、背光以及角度过大等现象,2)关键信息被遮挡,3)相似度较高的小目标。以上几种情况,都会导致无法获取到检测过程中需要的关键信息,从而使得检测效果不佳。
图8 一些检测错误的示例Fig.8 Some examples of detection error
4 结语
本文提出了检测速度与识别精度更加均衡的基于坐标注意力的轻量级交通标志识别模型,在YOLOv5n-P6 模型的主干网络中融入坐标注意力模块,通过将位置信息嵌入通道注意力中来获取特征图上的远距离依赖关系,更准确地获取感兴趣区域;在特征融合阶段,采用加权双向特征金字塔中跨层连接的思想,将不同阶段的特征信息融合在一起,增强网络的特征提取能力,提高对遮挡目标的识别效果;最后对CIoU 损失函数进行优化,降低大目标的损失权重,缓解由样本尺寸差异造成的损失误差,改善模型对小目标的检测性能。实验结果表明,与基础模型相比,本文提出的模型在保持极高的检测速度同时有效提升了对道路交通标志的识别精度。下一步将对模型的样本匹配策略进行优化,以提高模型对真实场景中道路交通标志的定位精度和召回率。