面向交通标志的Ghost-YOLOv8检测算法

2023-10-30 08:58:16熊恩杰张荣芬刘宇红彭靖翔
计算机工程与应用 2023年20期
关键词:交通标志注意力卷积

熊恩杰,张荣芬,刘宇红,彭靖翔

贵州大学 大数据与信息工程学院,贵阳 550025

近年来,随着无人驾驶技术和智能辅助驾驶系统进入高速发展的阶段,对道路上交通标志检测的要求也越来越高。因此设计出一种检测精度高、模型参数量小的交通标志检测算法非常有必要。

传统的交通标志检测算法主要是靠人为地去提取交通标志的形状、颜色以及边缘等表层信息进行识别,还有一种是基于深度学习的卷积神经网络目标检测算法。传统的目标检测算法大多采用的是通过使用滑动窗口在输入图片上选择候选区域,再对候选区域进行特征提取,最后通过分类器进行分类。所以传统的目标检测算法存在运行时间长、特征提取模块复杂、计算成本大、提取的特征鲁棒性低、识别精度低等问题。相反,基于深度学习的卷积神经网络使用逐级提取图像特征并自主学习获取特征信息,可以使得精度更高并且模型相比更小,所以近年来在交通标志的检测邻域多使用基于深度学习的卷积神经网络。

近些年基于深度学习的卷积神经网络的目标检测算法发展迅速,根据检测阶段的数量不同,分为两类。一类是二阶段(two-stage)检测算法,需要先生成候选区域,再去对候选区域进行识别,所以存在检测时间过长,不能满足实时需求等问题,具体的有Girshick等人提出的R-CNN[1]、Fast-RCNN[2]以及Faster-RCNN[3]等方法;另一类就是单阶段的检测算法,具体的有YOLO[4-7]系列、SSD[8-10]系列以及OverFeat[11]等。其中YOLOv8作为YOLO系列中最新的模型,具有更高的精度以及更小的参数量和模型大小,所以本文基于YOLOv8n 网络针对交通标志检测任务进行改进和优化。

在交通标志的检测方面,Lee 等人[12]提出基于SSD(single shot multibox detector)算法构建的CNN 算法同时估计交通标志位置与边界,在基于VGG16 模型下最高的平均准确率(mean average precision,mAP)达到88.4%,但是使用CNN的检测方法,网络设计复杂,参数量庞大,不利于移动端的部署。Jin等人[13]将底层特征融合到顶层特征中以提高对中小目标的检测性能,并且通过增强有效通道的特征以及抑制无效通道特征改善检测的效果,但是该方法对模型性能的提升并不明显。随着关注像素重要特征的注意力机制在开始应用于神经网络,注意力机制为单目标检测算法在不同应用背景下的障碍物检测的准确率也带来了巨大提升。Jiang 等人[14]提出使用平衡特征金字塔网络加入通道注意力的方法来提升YOLOv5对小目标的检测效果,但是仅仅使用通道注意力对特征金字塔网络的改进,在特征融合(Neck)时仍然无法很好地传递位置信息。薄景文等人[15]提出改进YOLOv3 的矿石输送带杂物检测方法,引入CBAM[16]注意力机制,但是该注意力机制依次进行通道和空间注意力操作,忽略了通道与空间的相互作用,进而丢失了跨维信息。

针对上述存在的问题,本文引入了一种基于Ghost-YOLOv8的交通标志检测模型,以此来解决当前传统网络对交通标志进行检测时存在的精度低、模型过大等问题。主要贡献在于:

(1)引入Ghostconv模块以及设计的全新模块C2fGhost,使得网络达到轻量化的效果,网络的参数量大大减小,提升了网络模型检测的性能。

(2)将注意力模块GAM[17]融合到特征融合网络(Neck)中,提高了网络对小目标的兴趣,增强了网络的特征提取以及特征融合能力。

(3)增加160×160 尺度的小目标检测层,增强了深层语义信息与浅层语义信息的结合,提升了小目标检测的精确度。

(4)使用广义交并比边界损失函数GIoU[18]代替原模型中的CIoU[19]边界损失函数,有效提升了模型的边界框回归性能。

1 YOLOv8n网络介绍

YOLOv8作为最新的YOLO模型,可使用于对象检测、图像分类和实例分割任务,本文用于对象检测任务。根据网络深度和宽度的不同,YOLOv8分为YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l、YOLOv8x。基于模型大小的考虑,本文选用体积小、精度高的YOLOv8n网络。YOLOv8n模型检测网络主要由四个部分组成(如图1所示):Input、Backbone、Neck、Head。

图1 YOLOv8n模型结构图Fig.1 YOLOv8n model structure diagram

Input 使用Mosaic 进行数据增强,但是在最后的10个epoch 会将其关闭;使用anchor-free 机制直接预测对象的中心而不是已知锚框的偏移量,减少了锚框预测的数量,从而加速了非最大抑制NMS[20]。

主干部分(Backbone)主要用于特征提取,其中包含Conv、C2f、SPPF 等模块。其中Conv 模块主要作用就是对输入图像进行卷积、BN 和SiLU 激活函数操作;YOLOv8n设计了全新的C2f结构,这是对残差特征进行学习的主要模块,其结构让YOLOv8n 可以在保证轻量化的时候能够同时拥有丰富的梯度流信息;SPPF 模块又称空间金字塔池化,它能够将任意大小的特征图转换成固定大小的特征向量。

颈部网络(Neck)的主要作用是对多尺度的特征进行融合,生成特征金字塔,Neck部分采用的结构是PANet 结构,其核心结构由特征金字塔网络FPN[21]和路径聚合网络PAN[22]两部分组成。FPN 首先在卷积神经网络中提取特征图来构建特征金字塔,随后自顶向下利用上采样与更粗粒度的特征图融合来实现不同层次特征的融合,但是如果仅有FPN 就会缺少目标的位置信息;PAN 则是FPN 的补充,使用自底向上的结构,通过使用一个卷积层来融合来自不同层次的特征图,精确地保留了空间信息。FPN与PAN的结合,充分实现了网络的上下信息流的融合,提升了网络的检测性能。

Head 输出端作为最后的预测部分,根据不同尺寸的特征图来获取不同大小目标物体的类别和位置信息。

2 YOLOv8n算法改进策略

针对当前传统网络对交通标志的检测不准确、模型参数量以及模型大小过大等问题,本文引入一种基于Ghost-YOLOv8的交通标志检测模型。本文所提出算法模型Ghost-YOLOv8的网络结构如图2所示,主要有4个改进部分。针对当前交通标志的检测模型过大的问题,引入GhostNet 网络中的GhostConv 以及全新设计模块C2fGhost来减少模型参数量;为确保模型算法集中于小目标的检测,引入GAM注意力机制;基于交通标志的图像数据集中远处目标居多,即图像中小目标居多的现象,增加小目标检测层,如图2中的黑色框内所示;为提升网络模型的边界框回归性能,引入GIoU损失函数。

图2 Ghost-YOLOv8模型结构图Fig.2 Model structure drawing of Ghost-YOLOv8

2.1 GhostNet模块

GhostNet[23]是华为诺亚方舟实验室在2020 年设计的轻量级网络,Ghostconv 是GhostNet 网络中的一个卷积模块,可以代替普通的卷积。如图3 所示,GhostNet轻量级网络模型可以保持原有卷积输出特征图的尺寸以及通道大小的前提下,降低网络的计算量和参数量,首先利用少量的普通卷积核对输入的特征图进行特征信息的提取,然后对特征图进行相比普通卷积更加廉价的线性变化运算,最后通过Concat生成最终的特征图。

图3 GhostNet设计核心Fig.3 GhostNet design core

如图4所示,其中的Cheap operation是一种廉价的线性运算,GhostConv首先使用原卷积一半大小的卷积生成一半的特征图,接着继续经过一个5×5 卷积核、步长为1的廉价计算Cheap operation得到另一半特征图,最后通过Concat 操作将两部分特征图拼接成完整的特征图。

图4 GhostConv结构Fig.4 GhostConv structure

如图5 所示,GhostBottelneck 首先经过作为扩展层的第一个GhostConv增加通道的数量,接着经过正则化和SiLU 激活函数,然后经过第二个GhostConv 减少输出特征图的通道数使其与输入通道数相匹配,最后将上一步得到的特征图与残差边相加进行特征融合。

图5 GhostBottelneck结构Fig.5 GhostBottelneck structure

如图6所示,设计的全新模块C2fGhost是将原网络中C2f 模块中的Bottelneck 全部替换为GhostBottelneck得到,该结构利用跨阶段特征融合策略和截断梯度流技术增强不同网络层间学习特征的可变性,从而减少冗余梯度信息的影响,增强网络的学习能力。由于引入GhostConv和C2fGhost模块减少了原结构中大量的3×3的普通卷积,大大压缩了网络的模型大小,减少了参数量以及计算量,使得模型可以部署在移动端,更易实现交通标志的边缘计算检测。

图6 C2fGhost结构Fig.6 C2fGhost structure

2.2 GAM注意力

由于本文使用的数据集的图像中背景占图像的大部分,并且需要检测的交通标志中小目标居多,为了提高模型对交通标志的特征表达能力,本文算法模型中引入了GAM(global attention mechanism)注意力机制。GAM 是继CBAM 后全新的注意力模块,其结构如图7所示,是一种结合通道注意力机制和空间注意力机制的模块,是可以在减少弥散信息的同时放大全局维度特征交互的注意力机制。通过给定一个特征图F1,经过两个独立的注意力子模块,先通过通道注意力机制模块对原特征图进行校正,得到中间状态F2,然后经过空间注意力机制模块再次校正,得到最终特征图F3。

图7 GAM注意力模块Fig.7 GAM attention module

通道注意力子模块如图8所示,使用三维排列来保留三维信息,然后利用两层的多层感知器MLP 以此来放大跨维通道空间依赖关系。

中间状态的定义为式(1)(其中MC是通道注意图,⊗表示基于元素的乘法):

空间注意力子模块如图9 所示,输入特征图F2的大小为C×H×W,使用两个7×7 的卷积来建模7×7 方块中像素点的非线性关系,因此参数能够更多捕获像素空间之间的关系。

图9 空间注意力子模块Fig.9 Spatial attention submodule

中间状态的定义为式(2)(其中MS是空间注意图):

2.3 小目标检测层

由于小目标样本的尺寸较小并且YOLOv8 的下采样倍数比较大,较深的特征图比较难学到小目标的特征信息,所以YOLOv8 原模型对小目标的检测能力较差。原始模型的输入图像大小640×640,最小检测尺度80×80检测每一个网格所得到的感受野是8×8,如果原始图像中的目标高宽均小于8像素,原网络就难以识别网格内的目标特征信息。

因此本文提出增加小目标检测层,如图2中黑色框所示,在原来的网络中增加160×160尺度的小目标检测层,其中包括补充的融合特征层以及引入的额外的检测头,以此增强小目标的语义信息和特征表达能力。首先将Backbone中的第五层的80×80尺度特征层与Neck中的上采样特征层继续向上堆叠,经过C2f和上采样处理后得到包含小目标特征信息的深层语义特征层,继续与Backbone中的第三层的浅层位置特征层进行堆叠,补充完善160×160 尺度融合特征层对小目标语义特征以及位置信息的表达能力,最后经过C2f送至Head中的一个额外的解耦头(Decoupled Head)。

Head部分的补充,使得小目标的特征信息通过Head结构继续沿着下采样路径传递到其他三个尺度特征层,从而加强网络的特征融合能力,提升小目标的检测精度;额外的解耦头的引入,可以扩大交通标志的检测范围。检测精度以及范围的改进,使得网络更加精确地识别道路旁的交通标志。

2.4 GIoU损失函数

原始的YOLOv8 模型使用的是DFL Loss+CIoU Loss 作为回归损失,但是CIoU 在纵横交并比描述的相对值方面存在一定的模糊,并且没有考虑难易样本的平衡问题。因此本文引入GIoU Loss 代替CIoU Loss,GIoU 作为IoU 的改进形式,同样具有尺度不变性的优点,并且,相比IoU,GIoU 还考虑了目标的非重叠区域,弥补了IoU 边界损失函数无法量化真实框与预测框不相交的缺点。GIoU的定义为式(3):

式中,C为包围A、B的最小矩形框,IoU的取值区间为[0,1],而GIoU的取值区间为[-1,1],其中IoU的定义为式(4):

GIoU作为损失函数,表示为式(5):

3 实验设计与结果分析

3.1 TT100K数据集

本实验使用由清华大学和腾讯的联合实验室所整理公开的TT100K[24]中国交通标志数据集,在中国5个不同城市中选择了10 个区域,从腾讯数据中心下载了十万张全景图,每张全景图的尺寸为8 192×2 048,通过水平滑动将每张图片分割成4幅图像,之后对图像中的交通标志进行了边界框标注,类别标注以及像素级标注。其中包括警告、禁令、指示3 大类共120+个小类的中国交通标志。本实验从其中选取了实例数都大于100 张的42 类交通标志,其中6 598 张作为训练集,1 889 张作为测试集。

3.2 实验环境与参数配置

本实验在操作系统Ubuntu18.04 下进行,GPU 为NVIDIA RTX 1080TI,主机内存为12 GB,编程语言为Python3.8,使用CUDAv10.1 和CUDNNv7.1.4 对GPU 进行加速,基于深度学习框架Pytorch1.7.1 进行训练。训练参数设置如表1所示。

表1 训练参数设置Table 1 Training parameter setting

3.3 评价指标

本实验使用精确率Precision、召回率Recall、平均精度均值mAP 对模型进行评价,其中精确率是指正确预测为正(TP)的占全部预测为正(TP+FP)的比例,计算公式如式(6)所示:

而召回率是指正确预测为正(TP)的占实际为正(TP+FN)的比例,计算方式如式(7)所示:

平均精度均值(mAP)中m 代表平均,AP@0.5 指的是当混淆矩阵的IoU 的阈值取0.5 时,针对这一类样本的平均精确度,而mAP@0.5 即是将所有的类别的样本的Precision 值取平均值,它反映的是模型的精确率(Precision)随召回率(Recall)的变化趋势,该值越高代表模型越容易在高召回率下保持着高精确率;而mAP@0.5:0.95 则代表在不同IoU 阈值(从0.5 到0.95,步长0.05)上的平均mAP。计算方式如下所示:

3.4 实验结果与分析

3.4.1 对比实验

为验证本文算法Ghost-YOLOv8 相比当前热门的交通标志检测模型的优越性,以Precision、Recall、mAP@0.5、mAP@0.5:0.95、Parameters、Model size 作为评价指标,将本文算法与Faster R-CNN、YOLOv3、YOLOv4、YOLOX、YOLOv5、YOLOv7、YOLOv8、文献[25]、文献[26]算法在相同的条件下(统一的配置以及相同的数据集)进行实验对比。

根据表2 可得,YOLOv8n 在参数量及模型大小均小于其他五个网络的情况下,精确率、回归率、mAP 均优于Faster R-CNN、YOLOv3-tiny、YOLOv4、YOLOX以及YOLOv7,虽然YOLOv5s 略高于YOLOv8n,但是YOLOv5s的参数量及模型大小差不多是YOLOv8n的两倍。本文改进算法Ghost-YOLOv8 相比原始YOLOv8n虽然FPS略微降低,但是改进模型的参数量及模型大小更小,并且精确率等均优于原始YOLOv8n 算法。并且相比近些年相关文献算法如文献[25]、文献[26],本文算法在各个指标方面都展现了其优越性。

表2 对比实验Table 2 Contrast experiment

3.4.2 消融实验

为了验证本文算法改进模块的有效性,以原始模型YOLOv8n为基线模型,并以Precision、Recall、mAP@0.5、mAP@0.5:0.95、Parameters、Model size 作为评价指标,通过多个改进模块不同的组合方式进行消融实验。如表3所示。

表3 消融实验Table 3 Ablation experiment

根据表3可得,添加了小目标检测层的模型相比原始的YOLOv8n模型,Precision、Recall、mAP@0.5、mAP@0.5:0.95 分别提高了7.4、2.2、5、3.7 个百分点;在添加了CBAM 注意力机制后,相比添加GAM 一些指标都存在降低,所以选择加入GAM注意力机制;添加了GAM 注意力机制后,Precision、mAP@0.5、mAP@0.5:0.95 分别提高了2.6、1、0.6个百分点;添加了轻量化模型GhostConv以及设计的C2fGhost后,Precision提高了0.4个百分点,并且模型参数量(Parameters)、模型大小(Model size)分别下降了0.576×109、1.12 MB;添加了GIoU 损失函数后,Recall、mAP@0.5、mAP@0.5:0.95 分别提高了5、1.2、0.7 个百分点。通过表3 的实验结果表明本文改进后的Ghost-YOLOv8 模型相比较于原始的YOLOv8n 网络模型,虽然FPS有略微下降,但是在Precision、Recall、mAP@0.5、mAP@0.5:0.95 上分别提高了9.5、4.5、6.5、4.5 个百分点,并且模型的参数量(Parameters)、模型大小(Model size)分别下降了0.223×109、0.2 MB,证明了本文所提出的算法改进的有效性。

3.4.3 算法验证

通过YOLOv5s、YOLOv8n 以及本文改进的Ghost-YOLOv8 算法(从左至右)在交通标志的检测结果进行可视化图片对比,如图10所示,根据A组以及B组的实验结果对比,可得到:改进的Ghost-YOLOv8 算法具备更高的识别精度,证明本文算法可以改善远处较小目标的交通标志识别不佳的问题;并且根据C组的实验结果对比,可以看出改进的算法可以检测到其他模型检测不到的目标,证明本文算法可以改善交通标志目标定位不准确及目标特征表达不充分的问题。

图10 交通标志检测效果对比图Fig.10 Comparison of traffic sign detection effect

4 结语

本文提出一种高效、轻量的Ghost-YOLOv8 网络模型来对交通标志进行检测和识别,引入GhostConv模块以及设计的全新模块C2fGhost,减小了模型的参数量及模型大小;添加了GAM注意力模块,提升了模型的特征融合能力;并增加了小目标检测层,提高了模型检测小目标的精确度;使用GIoU作为损失函数,提升了网络模型的边界框回归性能。改进的Ghost-YOLOv8 网络模型在精确率及mAP@0.5相比较于原始网络模型分别提升了9.5、6.5 个百分点,并且网络的参数量及模型大小相较于原始网络模型分别降低了0.223×109、0.2 MB。未来将在该模型基础上继续研究改进网络模型,使得模型在具有更高的检测精度的同时拥有较快的检测速度,且考虑该应用方向在现实生活中所具有的实际应用价值,后续也将对模型进行边缘移动平台的移植验证和改进,使得模型更小、更易部署。

猜你喜欢
交通标志注意力卷积
交通标志认得清
基于双向特征融合的交通标志识别
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
电子制作(2019年11期)2019-07-04 00:34:38
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
传媒评论(2017年3期)2017-06-13 09:18:10
A Beautiful Way Of Looking At Things
交通标志小课堂
我们欢迎你!