【目标检测论文阅读笔记】Small-object detection based on YOLOv5 in autonomous driving systems

Abstract

        随着自动驾驶领域的快速发展,对更快、更准确的目标检测框架的需求已成为必需。许多最近的基于深度学习的目标检测器在各种实时驾驶应用程序中显示出令人信服的大型目标检测性能。然而,由于这些目标的复杂性,检测交通标志和交通信号灯等小目标是一项具有挑战性的任务。此外,由于 恶劣天气 和 低光照条件导致的 前景/背景不平衡 和 视角变形 的存在,少数图像中存在的复杂性进一步使得难以准确检测小目标。在这篇位置中,我们研究了如何调整现有的目标检测器以解决特定任务,以及这些修改如何影响小目标的检测。为实现这一目标,我们探索并向流行的 YOLOv5 模型 引入了架构变化,以在不牺牲大型目标检测精度的情况下 提高其检测小目标的性能,特别是在自动驾驶中。我们将证明我们的修改几乎不会增加计算复杂性,但会显著提高检测精度和速度。与传统的 YOLOv5 相比,所提出的 iS-YOLOv5 模型在 BDD100K 数据集上将平均精度 (mAP) 提高了 3.35%。尽管如此,与 YOLOv5 模型相比,我们提出的模型将检测速度提高了 2.57 帧/秒 (FPS)。


1. Introduction

        目标检测是计算机视觉邻域中一项非常基础且经过充分研究的任务。目标检测任务的目的是对图像中的目标对象进行分类和定位。随着多年来深度学习技术的最新进展,出现了几种最先进的目标检测方法 [1]。目标检测已广泛应用于许多现实世界的应用,包括自动驾驶、机器人视觉、智能交通、遥感、军事行动和监视[2-4]。

        一些目标检测器通常在大目标上表现良好,但在小目标上表现不佳。当对象在输入图像中占据的像素区域或视野较小时,我们将目标称为小目标。在通用目标检测器的情况下,小目标的特征在通过其主干的多个层进行处理时变得不重要。由于视觉外观差、上下文信息充足、表示噪声大、特征难以区分、背景复杂、分辨率有限、严重遮挡等,小目标的准确检测是必不可少的,也是具有挑战性的[5,6]。尽管旨在实时实现目标检测的现代系统主要以计算资源为代价来关注速度,但由于检测精度差,因此缺乏可行性。因此,这一特定领域的改进将有益于自动驾驶系统的实际应用。

        检测道路上的目标物体是自动驾驶的一项基本任务。对于大多数现有的道路物体检测器,小物体的检测精度不到大物体的一半。这是因为它们 通常覆盖的像素较少,并且 很难从低分辨率中提取特征,因此 模型很容易将其与背景混淆,导致漏检或错误检测 [5]。此外,目标检测器最关键的挑战之一是 对不同尺度物体的准确检测不是很平衡。在自动驾驶的背景下,交通标志和红绿灯可以看作是小目标。尽管许多研究 [7,8] 建议增加网络 在深度和宽度方面的表示能力 以进行准确检测,但这会影响模型的复杂性和成本。因此,由于实时资源限制,此类模型不太适合自动驾驶系统。

        一般来说,基于深度学习的目标检测模型分为 (1) 两阶段检测算法和 (2) 单阶段检测算法 [1,3]。两阶段模型 以速度和复杂性为代价 实现了比一阶段模型更高的精度,但可能不会直接有益于实际驾驶场景。最近,人们努力匹配甚至提高单阶段模型的性能 [2,4]。因此,已经为此类应用开发了许多新的单级检测器。在这封信中,我们关注流行的单监督检测器,即 You Only Look Once version 5 (YOLOv5) 模型 [9]。这是 YOLO 系列中的最新版本,具有清晰灵活的结构,旨在在可访问平台上实现高性能和速度。然而,当前应用该模型的系统要么依赖于传统的训练方法、正则化/归一化技术,要么通过调整特定参数来提高性能,而很少或根本不考虑架构修改。虽然 YOLOv5 是一个通用的目标检测器,但它并没有针对小目标的检测进行优化,因此在实践中无法适应特定的用例。

        这封信提出了对原始 YOLOv5 模型的架构改进,以在小目标检测方面表现更好。为此,我们考虑自动驾驶系统中的实际道路环境来检测交通标志和交通信号灯等小型道路物体。此外,我们将讨论我们的修改对如何准确执行此任务的影响,同时保持实时速度并略微增加系统的计算复杂性。我们贡献的亮点是

• 我们优化了现有的YOLOv5 模型 并设计了一个改进的YOLOv5 架构,命名为iS-YOLOv5,旨在更好地检测自动驾驶场景中的小目标。

• 我们调查了我们的模型在不同天气场景中的适用性,以突出其在更稳健和更高效的目标检测环境中的重要性。

• BDD100K 数据集上的大量实验证明了所提出模型的有效性。此外,我们分别在 TT100K 和 DTLD 数据集上提供了交通标志和交通灯检测的实证结果。


2. Related work

        多年来,许多研究人员对开发和使用基于深度学习的模型来提高目标检测任务的性能表现出浓厚的兴趣。随着 YOLO 系列 [6,10] 的出现,由于实时检测速度而不是考虑检测精度,各种应用已经利用 YOLO 及其架构后继者进行目标检测。因此,许多调查研究提出在自动驾驶场景中应用 YOLO 模型来检测道路物体。例如,作品 [11-13] 实现了 YOLO v1-v3,用于在清晰环境中对自动驾驶汽车进行实时目标检测。同样,[14,15] 利用 YOLOv4 的优势检测理想场景中的特定道路物体。所有这些方法都取得了有希望的结果,但没有努力修改架构。此外,[16,17] 探索了 YOLOv4 结构变化的优势,以提高有限驾驶场景中的检测精度。然而,这些方法并不普遍适用,因为它们没有考虑到增加的复杂性和推理时间。虽然 YOLOv4 的整体结构与 YOLOv5 相似,但后者侧重于易使用性,主要针对低计算平台设计[9,18]。此外,使用 YOLOv5 的系统在各种实际应用中受益于较低的复杂性 和 平衡的性能

        最近,在调整和实施 YOLO 模型以检测自动驾驶场景中的小目标方面做出了一些努力。例如,[19–23] 利用 YOLO v3-v4 的优势来检测交通标志和/或交通灯等道路物体。一些作品 [24-26] 将 YOLOv5 用于交通标志或交通灯检测。同样,[27,28] 探讨了 YOLO v4-v5 在交通锥检测方面的优势。所有这些工作都试图优化 YOLO 模型,但只是在有限的程度上,因为对其原始结构的典型更改很常见。此外,[29-32] 将附加模块组合到 YOLOv5 特征提取器中,以改进小规模物体的检测。然而,这些方法主要关注推理速度,如果需要的话,会以更多资源为代价牺牲检测精度。此外,结构修改 已被证明 比其他技术更有效地 提高小目标检测性能[27,33]。此外,上述工作还展示了在普通天气条件下对小目标的检测结果。由于道路上的自动驾驶汽车会遇到各种道路环境,白天进行的分析不足以应对具有挑战性的天气情况。更重要的是,目前所有基于 YOLOv5 的系统都无法衡量计算成本,而计算成本是自动驾驶的重要指标。此外,在大多数情况下 [22,26,30],小物体检测任务的性能改进是由正则化和归一化方案触发的。因此,在这封信中,我们研究了如何通过架构更改以最小的成本提高检测性能,尤其是对小目标的检测性能,而不使用任何其他技术


3. Methodology

        我们首先讨论我们工作的动机(第 3.1 节)。然后,我们简要概述了 YOLOv5 架构并讨论了它的缺点(第 3.2 节)。最后,引入了一系列新颖的架构变化来优化和改进小物体的检测性能(第 3.3 节)。


3.1.动机

        尽管已经开发了一些技术 [13,15,22] 来提高小目标检测的性能,但只有少数研究人员专注于架构修改 [24,33] 以实现相同的目标在大多数情况下,性能的提高主要是 由 额外的正则化/归一化方法 [26,32] 或 增加框架中的参数 [8,16] 驱动的。因此,尚不清楚架构改进如何有助于提高显式任务的检测性能。在自动驾驶中,对小物体的准确检测提供了更有价值的环境上下文信息,有助于制定更好的决策策略。由于 前景/背景不平衡、较少的外观线索 和 较低的图像覆盖率 [3,6],小物体的检测更具挑战性。在典型的道路交通环境中,检测小物体被认为是一个难题,因为远距离物体由于视角变形而变小 [34]。值得注意的是,即使在同一类中,不同大小的小目标的定位也存在显著差异。此外,许多驾驶系统优先​​考虑推理时间而不是性能,但有一些变通方法可以以低成本优化它们。因此,需要一种简单高效的道路物体检测模型,能够处理不同大小的大小物体。 

        受上述观察的启发,我们分析了 YOLOv5 架构的不同元素,以提高特定任务中的检测性能。据我们所知,没有任何工作可以通过提出架构更改来优化自动驾驶的 YOLOv5 结构,以便在更快的推理时间内准确检测小物体,而不影响大物体的检测精度,并且模型的增加最少复杂


3.2. YOLOv5

        与最新的单阶段检测模型一样,YOLOv5 具有很强的特征提取能力,检测速度快,准确率高。 YOLOv5 系列提供四种模型尺度:YOLOv5 - S、YOLOv5 - M、YOLOv5 - L 和 YOLOv5 - X,其中 S 是小的,M 是中等的,L 是大的,X 是 xlarge [2]。这些模型的网络结构是不变的,但模块和卷积核是按比例缩放的,这改变了每个模型的复杂性和大小。在这封信中,我们分析并关注 YOLOv5-S模型的变体。 YOLOv5 的基本架构如图 1 所示,包括输入、主干、颈部和头部。

        在输入中,YOLOv5 使用 Mosaic 数据增强来增强数据以进行小规模检测。该架构的第一部分是 骨干网络,由 Focus layer 焦点层[9]、BottleNeckCSP[18] 和 SPP模块[35]组成。 Focus layer 的主要作用是进行图像切片。这减少了下采样过程中的信息丢失,简化了数值计算,并提高了训练速度BottleNeckCSP 不仅减少了整体计算负担,而且更有效地从特征中提取了深度信息SPP模块用于通过 将可变大小的特征图 转换为 固定大小的特征向量 来增加网络的感受野。第二个组件是颈部网络,它应用 PANet [36] 和 FPN [37] 操作。 PANet结构用于高层特征的密集定位。同时,FPN 通过上采样提供了强大的低级语义特征。然后,融合各种多尺度特征以增强检测能力。最后一个元素是head network,它进行不同尺度的最终检测。它使用锚框输出包含类概率、置信度分数、预测角度和边界框信息的向量。

        YOLOv5 的检测性能非常好,但我们观察到一些主要局限性。首先,它主要针对通用目标检测任务的 COCO 数据集,不一定适用于本工作中讨论的特定任务和相关数据集。其次,PANet结构较少关注非相邻层之间的信息流,因此信息在每个聚合过程中不断减少。第三,SPP模块中的max-pooling操作导致大量信息丢失,因此无法获取局部和全局信息进行定位。第四,连接 YOLOv5 架构中不同组件的信息路径限制了计算效率,并且对于提取小规模目标的相关特征不是最佳的


3.3. 提出的架构更改 

        原始的 YOLOv5 模型需要改进以用于自动驾驶中的小目标检测。我们引入了一些修改,以在不想者增加模型复杂性的情况下进一步提高检测速度和准确性。

3.3.1.改进的 SPP 模块

        随着 CNN 深度的增加,感受野的大小变大。由于输入图像的大小有限,特征提取在大感受野上是重复的[34,38]。因此,使用SPP模块添加相应的模块,通过融合不同感受野的特征图 来消除这个问题。该模块结合了局部和全局特征,最大限度地发挥了特征图的表达能力,扩展了骨干网络的接收范围,分离出最重要的上下文特征 进行尺寸目标检测。为了整合不同规模感受野的特征,SPP 并行使用多个最大池化操作。这种方法已经显示出 提高整体的检测精度的好处。然而,最大池化操作无法捕获空间信息并导致信息丢失,从而导致无法准确定位目标,尤其是小目标

        为了解决这个问题,我们提出了一种 改进的 SPP 模块用膨胀卷积 [39] 代替池化函数,如图 2 所示。虽然这两种操作都扩大了网络感受野,但池化降低了空间分辨率,导致特征信息的丢失。相反,具有不同膨胀率的膨胀卷积 通过 捕获检测小目标所需的多尺度信息 而不损失分辨率 来丰富提取的特征。然后将输出特征组合在同一级别以增强特征表示。因此,该模块提高了网络准确定位目标(尤其是小目标)的学习能力,同时以最小的计算成本增加保持快速检测速度


3.3.2.改进的PANet结构

        颈部网络的目的是聚合骨干获得的特征,以提高后期预测的准确性。这种结构在 防止由于更高的抽象级别 而丢失小目标信息 方面起着至关重要的作用。为了实现这一点,特征图再次被上采样,以便与主干层进行聚合,并重新对检测产生影响 [36,40]。 FPN 向浅层提供深层语义信息 以增强检测能力,但在浅层和深层特征聚合过程中忽略了位置信息。而 PANet 结构提供了低级和高级信息的融合。然而,集成方法依赖于相邻特征的聚合,较少关注非相邻层之间的信息交换。因此,每次聚合都会不断减少非相邻层中的空间信息

        因此,为了解决上述局限性,我们在原始 PANet 结构的基础上设计了一种改进的 PANet 结构如图 3 所示。我们添加了两个跨层连接(B1 和 B2),一个在 FPN 的自顶向下路径中,另一个在 PANet 的自下而上路径中用于集成非相邻和多级的特征。在聚合过程中,这 将允许更有效地使用语义和浅层位置信息,在不增加计算复杂性的情况下 增强小目标的重要特征。


3.3.3.改进的信息路径

        YOLOv5 的架构设计简单,但由于其内部组件排列,需要优化计算效率和实时适用性。因此,我们 重定向某些连接 以专注于 检测多分辨率特征图。随着输入通过卷积逐层传递,特征图被提取出来。前一个卷积层生成的特征图捕捉小尺度物体,而后一个卷积层产生的特征图捕捉大尺度物体。 BottleNeckCSP 是 YOLOv5 最基本的块,提取了最多的上下文特征,但 其当前属性对于深度特征的提取效率低下,导致小目标检测效果不佳。另一个重要方面是 选择合适的激活函数,即使在添加多个卷积层和归一化层时,激活函数也会限制性能。此外,头部缺乏提取足够浅层特征来定位小目标的能力

        针对上述问题,我们提出了一种改进的improve Scaled YOLOv5 (is -YOLOv5),这是一种鲁棒高效的体系结构,其详细结构如图5所示(原文图5图4放反了)。为了证明 BottleNeckCSP 的局限性,通过修改信息路径 引入了一个名为 N-CSP 的新功能块。我们减少了骨干网中N-CSP块的数量,以调整网络参数,提高计算速度。此外,我们在网络的特定层 实现了 Hard Swish激活 而不是Leaky ReLU。我们根据输入大小[41]应用多次激活来避免信息丢失,降低计算成本。在检测端,我们 为从高分辨率特征图中获得的小尺度物体添加了检测头。在颈部,我们优化调整N-CSP块,以专注于检测多尺度特征。这将提高对不同尺度物体,特别是小目标的整体检测能力。请注意,我们的集体修改 几乎没有改变计算复杂度,同时 显著提高了检测性能,并确保了实时需求


4. 实验结果

        在本节中,我们将描述自动驾驶数据集、训练环境和性能评估指标。随后,我们通过几个实验验证了所提方法的优越性。

4.1. 数据集描述

        我们选择 BDD100K[42] 作为我们的主要数据集来验证所提方法的性能。此外,我们分别使用TT100K[43]和DTLD[44]数据集分析了交通标志和交通信号灯的检测性能。这两个数据集对于交通目标检测任务都是非常具有挑战性的。TT100K和DTLD数据集分别提供了30K注释交通标志和200K注释交通灯。BDD100K数据集包括 不同 白天 和 夜间 不同天气场景下 不同环境的100K张自动驾驶图像。对于某些类别,如果物体的占用面积大于112 × 112像素,我们将其视为大的,如果物体的占用面积小于48 × 48像素,则视为小的,如果物体位于这两个阈值之间,则视为中等的。在这次评估中,我们主要关注交通信号灯和交通标志这样的小物体。超过80%的这些对象的面积小于48 × 48像素。


4.2.数据增强

        为了提高训练数据的质量,我们应用了一系列数据增强技术。通过这一点,模型可以学习不同尺度、光照和角度的目标特征,从而 提高模型在未见数据上的泛化性能。在几种数据增强方法[3]中,我们 采用图像位移、线性缩放、水平翻转、运动模糊、均匀裁剪 和 噪声添加。此外,我们使用 马赛克Mosaic 数据增强[18],它允许我们训练四张图像而不是一张图像好处是它可以在单个 GPU 上进行训练。图4描绘了Mosaic数据增强的工作过程(原文图5图4放反了)。为了公平地比较实验结果,我们将数据增强技术应用于所有目标检测模型


4.3. 训练设置 

        硬件环境包括 Intel i9-9900K CPU 和 NVIDIA Quadro RTX 5000 GPU。同时软件环境为PyTorch v1.8.0 在 Ubuntu 18.04.5 OS 上。我们使用 SGD 优化器通过训练过程 [9] 学习和更新参数。几个超参数设置为:学习率初始化为 0.01,训练批大小为 4,动量为 0.948,权重衰减为 0.0001,epoch 数为 100。我们将其余配置保留为原始 YOLOv5 的默认配置模型。


4.4.评价指标

        平均精度(mAP)是最常用的评价网络检测性能的评价指标[2,45]。mAP 考虑分别在等式 1 和 2 中定义的精度 (P) 和召回率 (R)。AP是Precision Recall (PR)曲线在给定阈值下得到的不同召回值处的平均精度,定义在Eq 3中。Intersection Over Union (IoU)是预测框与实际框的重叠程度,即设置为 IoU ≥ 0.5。最后,mAP 是等式 4 中定义的所有类别的 AP 的平均值。此外,我们根据浮点运算 (FLOP) 跟踪计算复杂度,并测量每张图像的推理时间以验证模型效率。

其中 TP 表示 真值 和结果中的检测数。 FP 仅表示结果中的检测数,而不表示真值中的检测数。 FN 仅表示真值中的检测数,不表示结果中的检测数。

其中 P(\bar{R}) 是在\bar{R}处测得的 P。 

其中 n 是类别数,APi 是类别 i 的 AP。


4.5. 提出的模型的有效性

        我们在表 1 中展示了交通灯和交通标志检测的经验结果。在所有实验中,都为数据集中的所有类计算了 mAP。如图所示,所提出的 iS-YOLOv5 模型在 TT100K 和 DTLD 数据集上分别将交通标志的 AP 提高到 65.93%,将交通灯的 AP 提高到 72.03%。此外,我们的模型在 TT100K 和 DTLD 数据集上分别将 mAP 提高了 4.47% 和 3.85%。

        所提出的 iS-YOLOv5 模型的性能结果如表 2 所示。从结果可以看出,我们的 iSYOLOv5 将交通标志和交通信号灯等小型道路目标的检测精度分别提高到 53.61% 和 57.08%。此外,所提出的模型将 mAP 提高了 3.35%,推理速度提高了 2.57 FPS,而计算量仅增加了 0.36。

        我们在表 3 中分别显示了不同尺度目标的结果。如图所示,所提出的 iS-YOLOv5 模型将大、中、小目标的 mAP 分别提高了 6.41%、4.61% 和 1.89%。值得强调的是,大物体和小物体的精度差异是相当显著的。因此,我们得出结论,可以在不影响中型和大型物体检测精度的情况下提高小物体的检测精度

        验证损失曲线如图 6 所示。特别是,边界框、分类和 objectiveness损失曲线是在训练过程中获得的。此外,图 7 显示了 PR 曲线方面的比较。如图所示,我们的 iS-YOLOv5 的 PR 曲线已经完全包围了 YOLOv5 的 PR 曲线

        我们测试了我们的模型在晴天、阴天、多云、下雪、有雾和下雨等多种天气情况下的适用性。表 4 使用 AP 值列出了所提出的 iS-YOLOv5 模型的泛化能力。从结果中可以清楚地看出,即使在非常复杂的环境中,我们的模型也具有很强的泛化性能。这进一步表明我们的修改提高了复杂天气场景中的性能,这有助于扩展当前的视觉感知

        小目标在不同交通环境中的检测性能如图 8 所示。正如观察到的,当交通密度增加时(从上到下),YOLOv5 的预测置信度降低并开始错过目标。相比之下,所提出的 iSYOLOv5 模型即使在高流量场景下也能以高置信度检测交通标志和交通信号灯。


4.6. 提出的模型的消融研究 

        我们分析了 iSYOLOv5 模型中不同组件的贡献。为此,我们进行了消融实验,结果如表 5 所示。当分别应用 SPP、PANet 和 信息路径 时,检测精度分别提高了 1.83%、1.05% 和 0.47%,推理速度提高了 0.03分别为 FPS、0.11 FPS 和 2.43 FPS,计算分别为 0.32、0.01 和 0.03。请注意,当我们的模块组合使用时,它们不会冲突。这清楚地显示了集成到我们的 iS-YOLOv5 模型中的建议结构的影响。(不知道是不是我下载的有问题,图片显示不全)


4.7.与其他检测模型的比较

        为了验证所提出的 iS-YOLOv5 模型的优越性,我们将我们的方法与几种使用过的目标检测器进行了比较。表 6 比较了不同框架在相同设置下的准确性、速度和复杂度。显然,我们的 iS-YOLOv5 模型以相对较低的计算成本大大优于基准测试。这证明我们的模型取得了令人满意的结果,因此适用于自动驾驶应用中的实时检测。


5. 结论

        在这封信中,我们研究和分析了应用于流行的 YOLOv5 结构的不同架构修改的效果,在不牺牲大型目标检测精度的情况下 提高小型目标的检测性能。为实现这一目标,我们进行了改进以优化通过不同网络层的信息流。因此,我们提出了 iSYOLOv5 模型,它能够在不显著增加模型复杂性的情况下 提高检测精度和速度。我们通过对具有挑战性的数据集进行大量实验来验证我们的 iS-YOLOv5 模型的优越性。此外,我们测试了所提出模型在复杂道路天气条件下的泛化适用性。利用这些洞察力,可以更新当前的驾驶系统,以在此类模型根本无法检测到任何东西的情况下检测交通标志和交通灯等小目标。通过这种方式,可以进一步扩展自动驾驶汽车的检测和感知鲁棒性,从而实现有效的规划和决策。

猜你喜欢

转载自blog.csdn.net/YoooooL_/article/details/130117137