点击蓝字
关注我们
关注并星标
从此不迷路
计算机视觉研究院
公众号ID|计算机视觉研究院
学习群|在主页获取加入方式
源代码:https://github.com/dusongjie/TSD-YOLO-Small-Traffic-Sign-Detection-Based-on-Improved-YOLO-v8
计算机视觉研究院专栏
Column of Computer Vision Institute
由于小目标的语义信息提取有限,且难以区分相似目标,这给遥感场景中的目标检测带来了巨大挑战,导致检测性能不佳。本文提出了一种改进的YOLOv5遥感图像目标检测算法,即SEB-YOLO(SPD 卷积层 + 增强型跨阶段局部池化模块 + 双向特征金字塔网络+YOLOv5)。
PART/1
概述
首先,使用空间到深度(SPD)层以及紧随其后的非步幅卷积(Conv)层模块(SPD-Conv)来重构主干网络,这保留了全局特征并减少了特征损失。同时,设计了主干网络最后一层带有注意力机制的池化模块,以帮助网络更好地识别和定位目标。此外,添加了带有双线性插值上采样的双向特征金字塔网络(Bi-FPN),以改善双向跨尺度连接和加权特征融合。最后,引入解耦头来增强模型的收敛性,并解决分类任务和回归任务之间的矛盾。
在NWPU VHR-10和RSOD数据集上的实验结果表明,所提出算法的平均精度均值(mAP)分别达到93.5%和93.9%,比原始的YOLOv5l算法分别高出4.0%和5.3%。该算法对于复杂的遥感图像取得了更好的检测效果。
PART/2
背景
近年来,随着深度学习的不断发展,在图像分割、目标检测等领域取得了显著成果,这使得更多学者将深度学习方法应用于遥感图像检测。与需要手工设计特征描述符的传统检测方法不同,基于深度学习的检测器依赖于可学习的高级语义信息来对物体进行抽象。现有的基于深度学习的目标检测模型通常分为两类。
第一类是基于候选区域的两阶段算法。这些算法先生成潜在区域,然后进行分类和位置回归,从而实现高精度的目标检测。这一类的代表性算法包括R-CNN、Faster R-CNN、Mask R-CNN和Sparse R-CNN。虽然这些算法的准确率令人印象深刻,但它们较慢的处理速度阻碍了在所有设备上的实时检测。
另一方面,第二类是基于回归的单阶段目标检测网络。这些算法使用单个网络直接从输入图像中预测物体的位置和类别,无需生成候选区域这一复杂过程。这种简化的方法使得检测速度显著加快。这一类的主要代表性网络包括SSD和YOLO系列。这些方法在MS COCO和PASCAL VOC等自然图像数据集上取得了良好的效果。其中,YOLO系列的单阶段检测算法应用广泛。目前,YOLOv5在YOLO系列中性能较为平衡。
然而,当这些方法应用于背景更为复杂的遥感目标的识别和检测时,效果并不十分理想。主要原因在于,遥感图像是由安装在航空航天设备上的传感器拍摄的。因此,大多数遥感图像具有广阔的成像范围、复杂的背景以及前景物体分布不均衡的特点。此外,遥感图像中的物体通常较小,与大/中型物体相比,小物体往往缺乏足够的外观信息来将它们与复杂背景区分开来。最后,细胞神经网络的建模位置限制了它们在遥感图像中捕捉全局上下文信息的能力。总的来说,基于卷积神经网络(CNN)的目标检测算法很难直接应用于检测遥感图像中的小物体。如何深入挖掘遥感图像中小目标的目标特征,进一步提高其检测精度,并降低漏检率和误检率,已成为亟待解决的问题。
因此,引入了一种基于YOLOv5的增强型SEB-YOLO算法结构,用于遥感图像中的小目标检测。首先,使用非步幅卷积来重构主干网络,尽可能减少网络下采样导致的特征损失,增强模型捕捉复杂细节的能力,并保留更多的全局特征。为了提高模型对不同分辨率图像的适应性,我们在主干网络的末端设计了一个结合注意力机制的池化模块。
然后,为了解决原始颈部网络特征融合不足的问题,我们引入了双向特征金字塔网络(Bi-FPN),并采用双线性插值上采样操作,通过学习不同输入特征的权重来增强网络的特征提取能力,同时保留原始特征图的像素关系。最后,使用解耦头来替换模型中的检测头,将检测头中的分类问题和回归任务分开计算,这加快了模型的收敛速度,并进一步提高了遥感图像中目标检测的性能。
PART/3
新算法解析
在遥感图像中检测小目标面临着实现有效特征提取和多尺度特征目标融合的挑战。原始的YOLOv5模型难以满足这些检测要求,导致检测精度低且漏检率高。
针对这一情况,设计了下图所示的SEB-YOLO网络模型。该模型的颈部部分采用了改进后的双向特征金字塔网络(Bi-FPN)结构,图中的红线表示改进后的 Bi-FPN 特征融合路径与原始YOLOv5颈部网络之间的差异。
在本文中,摒弃了原始网络中的最大池化操作以及步长为2的卷积操作,采用非步幅卷积模块来重构主干网络,这最大限度地减少了网络下采样导致的特征损失,并保留了更多的全局特征。
其次,主干网络的最后一层被我们设计的增强型跨阶段局部池化(ECSPP)模块所取代,这有助于网络更好地识别和定位目标,提升了目标检测的性能。
此外,在颈部网络中采用了一种改进的特征融合方法,该方法结合了双向特征金字塔和双线性插值上采样方法,以改善双向跨尺度连接和加权特征融合,从而进一步增强小目标的特征,并减少小目标特征信息和位置信息的损失。
最后,用解耦头取代模型中的检测头,以区分回归和分类任务,加快模型的收敛速度,并进一步提高图像中小目标的检测性能。
空间到深度转换与非步幅卷积
在YOLOv5的原始网络中,存在大量的步幅卷积操作,这是一种常见但存在缺陷的设计,可能会导致遥感图像中关键的细粒度信息丢失,以及特征表示学习的效率降低。
为了解决这些局限性,并提高对遥感图像中小目标的检测能力,引入了SPD-Conv(空间到深度转换与非步幅卷积)模块来替代步幅卷积。SPD-Conv 模块由一个空间到深度转换层和一个非步幅卷积层组成,它对图像像素进行压缩,将二维空间数据转换为更简洁的一维表示形式。
这种创新方法旨在克服传统步幅卷积的局限性。其目标是增强模型捕捉复杂细节的能力,尤其是在处理遥感图像中的小目标时。
SPD-Conv操作包括两个步骤。首先,对输入图像的特征图进行从空间到深度的预处理;随后,对预处理后的特征图进行标准卷积操作。
一般来说,对于任意(原始)特征图X,子图\(f_{x,y}\)由所有满足\(i + x\)和\(j + y\)能被缩放因子(scale)整除的元素\(X(i, j)\)组成。因此,每个子图将X下采样一个缩放因子(scale)。
下图给出了缩放因子(scale)为2时的一个示例,此时我们得到四个子图\(f_{0,0}\)、\(f_{0,1}\)、\(f_{1,0}\)和\(f_{1,1}\),每个子图的形状为\((\frac{S}{2},\frac{S}{2},C1)\),并且将X下采样了2倍。将得到的特征图按照通道方向拼接,从而得到输出特征图\(X'\)。
ECSPP模块
空间金字塔池化融合(SPPF,Spatial Pyramid Pooling Fusion)模块在提取不同尺度的特征表示方面起着至关重要的作用,提高了网络在检测过程中对不同大小物体的适应性。SPPF 模块的输入是来自主干网络的特征图,它可以通过将特征图划分为不同的子区域并应用金字塔池化操作来捕获不同尺度的语义信息。
然后,这些特征图被融合,以便网络能够综合利用不同尺度的信息进行目标检测。这种融合显著增强了网络识别不同大小物体的能力,从而提高了整体检测精度。
为了提高我们的模型对不同分辨率图像的适应性,引入了一种先进技术的新颖融合方式。将源自YOLOv7的空间金字塔池化跨阶段局部卷积(SPPCSPC,Spatial Pyramid Pooling Cross Stage Partial Conv)模块与被称为高效通道网络(ECA-Net,Efficient Channel Network)的复杂注意力机制相结合。
这种创新的组合被恰当地命名为 ECSPP(ECA-Net+SPPCSPC)模块,其架构如下图a所示。
在ECSPP模块中,精心地将输入特征划分为两个不同的部分:一部分专门用于卷积操作,另一部分专门用于空间金字塔池化(SPP)结构。通过应用拼接(Concat)操作,这些部分得以和谐地整合在一起。
这种设计的总体目标是显著减轻计算负担,从而加快模型的推理速度并提高整体精度。同时,为了坚定不移地提高图像信息处理的效率和精度,在ECSPP模块的顶部引入了ECA-Net注意力机制。
这一策略性的添加使模型能够有选择地抑制来自不同通道的多余数据,使其能够更加专注于核心感兴趣区域,最终实现更高效、准确的图像分析。
在原始的YOLOv5架构中,采用路径聚合网络(PANet)结构进行多尺度特征融合,但这种融合方法无法充分利用不同尺度之间的特征,从而导致了一定的检测精度限制。随着网络深度的增加,模型变得更加复杂,提取语义特征的难度也更大。浅层网络的判别率较高,对位置信息的提取会更加准确。而深层网络具有更大的感受野,包含更多的语义信息。
为了优化不同尺度下的特征融合,在YOLOv的颈部网络中引入了更高效的双向特征金字塔网络(Bi-FPN)特征融合结构,这有效地优化了多尺度下各个尺度特征信息不一致的问题。
采用经过权重优化的特征金字塔结构,通过各种技术将来自YOLOv5主干网络的特征层输入进行融合,并考虑每个输入特征层的贡献进行加权操作。这种迭代融合过程使得得到的特征层具备丰富的语义信息和空间信息。
改进的检测头
在YOLOv5 中,原始的预测层需要对输入图像进行尺寸调整,以生成与输入图像尺寸相同的特征图,用于后续的目标检测。然而,这种方法存在一些相关的问题。例如,对于大尺寸的目标,在较小的特征图上进行检测可能会导致检测精度下降。而对于小尺寸的目标,在较大的特征图上进行检测可能会使检测精度过低。
在目标检测的分类和回归任务中,由于每个任务关注的重点不同,会出现空间不一致的情况。分类任务强调提取的特征与现有类别的相似性,而回归任务则专注于位置坐标以优化边界框参数。使用相同的特征图来处理这两个任务会显著降低整体效果。
为了解决分类任务和回归任务之间的矛盾,改进后的解耦头使用多个不同尺寸的特征图进行目标检测,这样它就能更好地检测各种尺寸的目标。
解耦头最初在YOLOX中被引入,此后在各种目标检测算法任务中得到了广泛应用。本文在预测层引入解耦头,以提高检测精度,加快网络收敛速度,并提升整体检测性能。具体来说,解耦头将输入图像下采样为多个不同尺寸的特征图,然后在这些特征图上分别进行目标检测。这种方法有助于缓解上述问题。解耦头还有一个优点,即它可以通过调整每个特征图的尺寸来调节精度和效率之间的平衡。
上图展示了解耦头的结构。首先,使用1×1卷积进行降维。随后,用于分类和回归的两个并行分支各自使用两个3×3卷积。在分类分支中,应用1×1卷积进行分类操作。同时,在回归分支中,在分别用于定位和置信度操作的两个并行分支中各使用一个1×1卷积。然后,使用基于锚框的方法提取目标框,接着将其与标注的真实值进行比较,以评估两者之间的差异。最终,这个过程得出检测结果。
PART/4
实验及可视化
在数据集中650张有目标的图像里,按照4:1的比例划分训练集和测试集。在数据读取部分,采用了图像缩放、裁剪、翻转以及Mosaic数据增强方法。Mosaic数据增强是从四张图像中分别随机选取,通过裁剪等平移操作,在训练过程中组合成一张图像,在原始扩展数据集的基础上进一步扩充数据。数据增强效果如下图所示。
为了验证该算法在小目标检测模型方面的优越性,使用相同的训练配置参数进行训练,并将本算法和YOLOv5l的相关参数与当前一些其他主流算法(SSD、Fast-RCNN、YOLOv3、YOLOv4)以及最新的YOLOv7进行全局和局部的评估对比。
从下表中可以看出,YOLOv5l的模型体积比两阶段算法RCNN以及单阶段的SSD、YOLOv3和YOLOv4算法模型要小。尽管本文中改进模型的体积比YOLOv5l大,但其召回率(R)比YOLOv5l高5.37%,最重要的是,平均精度均值(mAP)比YOLOv5l高4.0%。与SSD、Faster-RCNN、YOLOv3和YOLOv4模型相比,更是高出许多。
由于NWPU VHR-10数据集包含大量的目标类别,不同类别的特征差异较大,且尺度变化更为明显,这也增加了检测的难度。然而,基于YOLOv5的改进方法的实验结果甚至优于YOLO系列提出的新模型YOLOv7,其平均精度均值(mAP)比YOLOv7高0.4%,这体现了该改进方法的有效性。
值得注意的是,YOLOv5的训练和推理速度比YOLOv7更快。这使得基于YOLOv5的改进模型在一些应用场景中更具优势,比如移动设备或资源受限的系统。其中,下表展示了不同算法对数据集中不同类别的评估结果。
总的来说,改进后的方法在检测中具有突出的性能运动场、飞机和油箱目标,表明了算法的有效性多尺度目标。下图显示了改进后的检测结果示例在RSOD数据集上的算法,可以看出改进后的网络对密集目标具有良好的适应性,不会丢失边缘目标图像。改进后的网络对所有飞机目标都有很好的效果微不足道的特征。
有相关需求的你可以联系我们!
END
转载请联系本公众号获得授权
计算机视觉研究院学习群等你加入!
ABOUT
计算机视觉研究院
计算机视觉研究院主要涉及深度学习领域,主要致力于目标检测、目标跟踪、图像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的论文算法新框架,提供论文一键下载,并分享实战项目。研究院主要着重”技术研究“和“实践落地”。研究院会针对不同领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!
往期推荐
🔗