YOLO-CCS:将坐标注意力机制引入YOLO用于车辆检测

科技   2024-10-19 11:49   中国香港  

点击下方深度学习爱好者”,选择加"星标"或“置顶

论文信息

题目:YOLO-CCS: Vehicle detection algorithm based on coordinate attention mechanism

YOLO-CCS:基于坐标注意力机制的车辆检测算法

作者:Yuhua Li, Mengyue Zhang, Chunyu Zhang, Hui Liang∗, Pu Li, Wangwei Zhang

本文创新点

  1. 注意力机制的集成:作者首次将坐标注意力机制集成到YOLOv5s中,使网络能够聚焦于车辆本身,减少特征信息的丢失,并提高车辆检测的效果。

  2. 特征提取能力的增强:通过在网络骨干的特征提取部分引入CA块,增强了网络对关键特征的提取能力,并能抑制复杂背景的干扰

  3. 特征融合能力的改进:引入了Cross Stage Partial(CSP)Bottleneck的更快实现(C2f),它具有更多的残差块和跳跃连接,提供了丰富的特征语义信息,增强了网络的特征提取能力。

  4. 损失函数的优化:整合了适合YOLO-CCS的SCYLLA-IOU(SIOU)损失函数,利用真实框和预测框之间的向量角度来进一步提高算法的准确性并加速模型的收敛。

摘要

在智能交通领域,准确快速的车辆检测是一个关键因素。为了解决当前车辆检测算法中存在的识别准确度低、检测速度慢和鲁棒性差等问题,本文提出了一种基于YOLOv5和坐标注意力机制(CA)的车辆检测算法,命名为YOLO-CCS。YOLO-CCS使网络在特征提取过程中能够聚焦于车辆本身,减少特征信息的丢失,并提高车辆检测的效果。在作者的算法中,首先在网络骨干的特征提取部分引入CA块来扩展YOLOv5s,并增强关键特征的提取能力,并通过嵌入位置信息来抑制复杂背景的干扰。其次,为了使网络能够提取丰富的特征信息并提高网络的特征融合能力,作者引入了具有2个卷积的Cross Stage Partial(CSP)Bottleneck的更快实现(C2f)在网络的骨干和颈部,它具有更多的残差块和跳跃连接,提供了丰富的特征语义信息,并增强了网络的特征提取能力。第三,作者整合了适合YOLO-CCS的SCYLLA-IOU(SIOU)损失函数,以便利用真实框和预测框之间的向量角度来进一步提高算法的准确性并加速模型的收敛。实验结果表明,与基线模型YOLOv5s相比,作者的方法在上分别提高了3.2%和1.7%。与基于YOLO的其他模型相比,提高了约4%。YOLO-CCS算法的检测速度达到了48 FPS,能够满足实时车辆检测的要求。

关键词

CA注意力机制 C2f SIOU损失函数 车辆检测 YOLOv5s

3. 提出的方法

3.1. 概述

在本节中,我们详细介绍了YOLO-CCS车辆检测算法。我们将YOLOv5s网络与注意力机制相结合,以提高网络对车辆特征的关注并抑制复杂背景的干扰。在此基础上,我们耦合了一个特征提取模块C2f,并利用SIOU损失函数的向量角度,形成了整个车辆检测的模型架构。该算法的模型结构如图1所示。我们首先在网络骨干中添加CA块来增强关键特征的提取,通过嵌入位置信息并抑制复杂背景的干扰。然后我们将特征提取模块C3改进为C2f模块,以增强网络的特征融合能力并提取丰富的特征信息。最后,我们进一步利用损失函数,使用SIOU损失函数来提高车辆检测的准确性并加速模型的收敛。

3.2. 集成坐标注意力块

车辆种类繁多,场景复杂,存在大量冗余信息。这些因素对检测精度也有一定的影响。YOLOv5s仅使用卷积操作进行特征提取,缺乏对车辆特征的关注。然而,注意力机制可以提高神经网络的特征提取能力,更多地关注主要特征,并减少其他特征的干扰。广泛使用的注意力包括SE[35]和CBAM[36]。SE注意力机制可以获得特征图中每个通道的重要性,但不能捕获位置信息。CBAM注意力机制将通道注意力和空间注意力串联起来,试图通过减少通道数量来提取位置信息。然而,它只能捕获局部信息,通过卷积提取的局部信息提供了长距离依赖性。与此同时,坐标注意力机制[37]不仅可以捕获跨通道信息,还可以捕获方向和位置信息,这有助于模型更准确地定位和识别感兴趣的车辆目标,并减少其他输入特征的干扰,提高目标检测精度。坐标注意力模型的结构如图2所示。我们使用H-Sigmoid激活函数来指定权重。该激活函数比原始的Sigmoid函数更简单,不需要幂函数计算,加快了模型的计算速度。此外,我们在水平方向上增加了一组全局平均池化操作,使模型更加关注对车辆特征更重要的通道,进一步提高了模型的性能和泛化能力。坐标注意力(CA)机制的核心思想如下:给定一个输入特征图X(维度C×H×W),首先,X在水平和垂直方向上分别使用(h, 1)和(1, w)的池化核进行编码。因此,第c个通道的高度为h的输出表达式如下:
同样,第c个通道的宽度为w的输出表达式如下:
上述两个变换分别在两个空间方向上聚合特征,分别获得大小为C×H×1和C×1×W的方向感知特征图。这两个特征图分别捕获了宽度和高度上的全局特征。随后,上述两个特征图被合并,并通过简单的堆叠操作获得一个新的特征图,大小为C×1×(H + W),其表达式如下:
其中,表示1×1卷积,表示沿空间维度的拼接操作。(H + W)表示将宽度和高度方向的维度合并在一起,表示非线性激活函数。接下来,合并的特征层沿空间维度被分离,两个1×1卷积被用来将转换为与输入X相同数量的通道的张量。因此,获得了两个特征图,分别为C×H×1和C×W×1。它们的表达式如下:
其中,表示H-Sigmoid激活函数。然后进行水平方向的全局平均池化,最终通过H-Sigmoid激活函数获得相应方向的特征权重。其最终输出与输入特征X的乘积即为CA注意力机制。
我们在YOLOv5s骨干网络的C3模块和SPPF模块之后引入了CA注意力机制,这不仅提高了特征图的注意力权值分布,增强了网络对重要特征的关注,还抑制了干扰特征,提高了目标检测的效果。此外,CA块的参数较少,轻量级,几乎没有额外的计算开销。经过大量实验比较,我们提出的方法可以提高车辆检测的准确性。其中,的值提高了1.8%,提高了0.3%。这种方法的有效性得到了验证。

3.3. 改进特征提取

C2f和C3的快速实现类似,都用于特征提取。C2f模块是C3模块和ELAN模块[38]的结合。C3模块如图3所示。C3模块由三个卷积层和几个瓶颈模块组成。其主要思想描述如下。在C3模块中,输入特征将被分成两部分。部分特征仅由卷积模块处理,部分特征由多个瓶颈模块的卷积核处理。最后,两部分特征通过Concat操作拼接,最终输出特征通过卷积操作获得。然而,C2f模块是一个更轻量级的卷积结构[39]。C2f模块由多个瓶颈模块和两个卷积层组成。瓶颈模块由两个CBS模块组成,可以有效地提取特征并减小模型大小。C2f模块如图3所示。C2f的核心思想如下。输入特征首先由一个CBS模块处理,处理后的特征由Split分成两部分。一部分特征不做任何处理保留,另一部分特征由几个Bottleneck模块处理。每个瓶颈模块分为两个通道,一个将处理后的特征传递给下一个瓶颈,另一个保留用于后续的Concat连接。最后,所有特征图融合以获得特征提取的结果。与C3模块相比,C2f模块连接了更多的残差结构,取消了C3中的卷积分支,并增加了跳跃层连接,使网络能够更好地学习特征,提高特征的语义表示。为了评估这种方法的有效性,我们在Traffic数据集上进行了大量的实验。通过分析实验数据,提高了3.6%,效果显著。因此,通过理论分析和实验比较,我们选择使用C2f模块替换网络骨干和颈部的原始C3模块,使网络能够提取丰富的特征信息,提高目标检测性能。

3.4. 优化损失函数

损失函数是目标检测算法的重要组成部分,可以衡量模型预测的预期精度。在车辆检测中,不同车辆的形状和轮廓是不同的。CIOU损失函数[40]只考虑了预测框和真实框之间的重叠区域、两个框中心点之间的距离和比例。然而,它没有考虑预测框和真实框之间的不匹配角度,这可能导致模型性能下降,降低识别精度。同时,SIOU损失函数[41]考虑了目标框的位置、大小和形状信息。SIOU损失函数不仅依赖于边界框回归指数的聚合,还引入了向量角度,使模型能够更好地定位目标,提高算法的准确性。SIOU损失函数由四部分组成:角度损失、距离损失、形状损失和IOU损失。
角度损失如图4(a)所示,公式如下:
其中,表示预测框和真实框中心点之间的高度差;表示预测框和真实框中心点之间的距离;是角度。可以注意到,当或0时,角度损失为0。如果,则最小化,否则最小化
距离损失如图4(b)所示,公式如下:
其中,分别表示最小外接矩形的左上角坐标和右下角坐标;是真实框和预测框中心点宽度差的平方与最小外接矩形宽度的比值;代表真实框和预测框中心点高度差与最小外接矩形高度的平方比。
形状损失表达式如下:
其中,分别是预测框和真实框的高度和宽度;值表示对形状损失的关注程度。如果值为1,则形状将立即被优化。
最后,IOU损失表达式如下:
其中,表示预测框,代表真实框。
SIOU损失函数表达如下:
为了解决CIOU损失函数没有考虑真实框和预测框之间的不匹配角度问题,这可能导致模型性能下降和识别精度降低,我们借鉴了SIOU损失函数进行优化。SIOU损失函数在一定程度上提高了模型的识别精度并加速了收敛。

4. 实验

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。
下载1:Pytoch常用函数手册
在「深度学习爱好者」公众号后台回复:Pytorch常用函数手册即可下载全网第一份Pytorch常用函数手册,涵盖Tensors介绍、基础函数介绍、数据处理函数、优化函数、CUDA编程、多线程处理等十四章章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

深度学习爱好者
分享机器学习、深度学习和Python等知识与原理,每天分享深度学习与计算机视觉领域的经典和最新的论文总结,带读者一起跟踪前言科技!
 最新文章