应对遮挡挑战,北航提出新型 YOLOv5 模型表现优异 !

2024-08-29 18:37:03 浏览数 (2)

自动驾驶技术的发展与行人检测密不可分。由于车辆的速度快,行人检测算法的准确性和实时性非常关键。YOLO 作为一种高效且简单的单阶段目标检测方法,在各种环境中常用于行人检测。然而,这一系列的检测器面临一些挑战,比如在遇到被遮挡的行人时,计算量过大和检测率不理想。 在本文中,作者提出了一种改进的轻量级 YOLOv5 模型来解决这些问题。这种模型在较少的浮点运算(FLOPs)下,实现了更好的行人检测准确性,特别是对于被遮挡的目标。为了实现上述目标,作者在 YOLOv5 模型框架基础上进行了改进,并引入了 Ghost 模块和 SE 模块。 此外,作者还设计了一个局部特征融合模块(FFM)来处理行人检测中的遮挡问题。为了验证作者的方法的有效性,作者选择了两个数据集 Citypersons 和 CUHK Occlusion 进行实验。 实验结果显示,与原始的 yolov5s 模型相比,作者的方法的平均精确度(AP)显著提高,参数数量减少了 27.9%,浮点运算(FLOPs)减少了 19.0%。

1 Introduction

行人检测是计算机视觉在日常生活中的典型应用 [1]。事实上,单阶段深度卷积神经网络(YOLO)在目标检测 方面表现出色,明显优于之前的半手工方法和两阶段神经网络 [2]。例如,YOLO允许卷积神经网络(CNNs) [6] 在任意长宽比下输出一个边界框,而滑窗方法的开销为零。尽管双阶段检测器(R-CNN)能够实现最先进的精确度,但它需要更多参数进行计算,且占用更多操作空间,严重削弱了算法的实时性能。

自 [7] 年以来,行人检测结构 YOLO 和单次多框检测器(SSD) [8] 被广泛提出,通过废除区域建议步骤和同时拟合分类框和边界框,大大减少了计算量,与 R-CNN 相比。YOLO 网络使用预先设置的默认框检测不同尺寸的目标实例。这种方法使得 YOLO 可以在硬件配置不高的情况下运行流畅。

虽然 YOLOv5 模型是 YOLO 家族中最为知名的一个,但后续的 YOLO 模型对其背部网络和 Neck 的网络并无重大改变。然而,YOLOv5 网络仍有一些局限性。首先,特征金字塔网络(FPN) [9] 通过上采样能有效处理不同尺度的目标,但忽略了全局信息。其次,对于移动设备和嵌入设备,YOLOv5 模型仍需要硬件的大部分资源和计算能力,无法在此基础之上运行其他算法或更复杂深层学习网络模型。最后,由于 YOLOv5 采用单阶段目标检测方法,在遮挡不完整的目标上 YOLOv5 容易失败,这大大影响了目标检测的准确性。然而,在行人检测中,遮挡是常见的情况。因此,考虑到全局信息、轻量化和解决遮挡问题是行人检测任务的关键。

基于以上问题,作者引入了SE模块和鬼模块到 YOLO 网络,优化了损失函数,并设计了一种新的特征融合模块(FFM)。具体来说,作者提出了一种基于 YOLOv5 架构的重量级遮挡行人检测网络,该网络的准确性超过了 YOLOv5 模型,同时计算量减少。Squeeze-and-Excitation(SE)模块通过加权通道 [10] 有效地考虑了全局信息。Ghost模块能够用较少的参数生成更多的特征图,同时确保准确性 [11]。WIOU_Loss 是一种基于注意力的框损失,可以更准确地度量预测框和真实框之间的相似度,尤其是在涉及多个物体部分时 [12]。考虑到行人 Head 在实际环境中不容易被遮挡,并结合腿部区域,作者可以得到行人所有位置信息,包括行人预测框的高度和宽度以及边界点的位置。因此,作者使用改进的 YOLOv5 检测行人的 Head 和腿部区域,并进一步提出一种特征融合模块(FFM),该模块通过检测到的 Head 和腿部区域恢复行人的整体预测框,并处理大部分遮挡问题。作者的工作可以分为以下三个部分。

首先,作者提出了一种基于特征匹配的特征融合模块,分别检测图像的 Head 和腿部区域,并将这些特征融合为多个根据人体固有比例生成的候选框,这些候选框的 IoU被用来确定是否重复检测同一人。

其次,作者用轻量级的鬼模块替换了 YOLOv5 Neck 网络中的所有卷积模块,包括 C3 模块的卷积,以达到更少浮点运算(FLOPs)和保持检测准确率和速度。

第三,为了利用全局信息和减小极端样本对损失函数的影响,作者在 YOLOv5 背部网络中增加了 SE 模块并重新设计了损失函数。

最后,作者在两个广泛使用的行人检测数据集上进行了比较实验,结果表明作者的方法在提高检测准确性的同时,计算参数更少,且更轻量级。实验证明了作者提出的方法的优越性。

2 Related work

作为一种单阶段检测器,YOLO [7] 消除了区域建议步骤,比二阶段检测器更快。这些单阶段方法使用默认大小和比例的回归框,这种方法更高效,但检测精度会受到一定影响。最近,许多论文提出了各种改进单阶段检测模型的方法。其中一些方法旨在进一步简化模型并降低移动和嵌入设备上的参数计算,而另一些则专注于如何在更具挑战性的环境中提高检测精度。

为了在保持竞争力的性能的同时减少参数数量和FLOPs, MobileNetV1 [13] 取代了传统的卷积,采用深度卷积(DW-Conv),这种方法可以根据每个输入通道使用不同的卷积核,从而大大减少模型参数并提高模型推理速度,已经成为后续轻量级卷积神经网络(轻量级CNNs 和现代大规模CNNs [22, 23, 24] 的主要参考模式。MobileNetv2 [16] 多路复用图像特征,增加特征融合,并提出了反向残差块(IRB)。ShuffleNet 将 卷积变成了组卷积 [25, 26, 27],这种方法相比 MobileNet 减少了计算量,但导致了不同组之间的信息通信不足。

对于实时行人检测任务,YOLO 是一个常用的检测框架。 [28]是基于多尺度融合策略,设计了一个用于小尺度目标的检测层,并集成 ResNet 和 Transformer 结构。 [29] 通过调整非最大抑制(NMS)的 IoU 值,使对重叠目标的检测更加准确。 [30] 将 SE 模块整合到新的网络结构中,该结构更注重全局信息,该模型更关注小尺度和遮挡的特征。

然而,以上方法都直接使用卷积学习行人的整体特征,这与目前广泛使用的数据集标注方法,如 CityPersons [31] 和 CUHK 遮挡数据集 [32] 一样,它们都直接标注了行人的整体真实边界框(GT)。这种学习方法缺乏鲁棒性,整体特征过于敏感。在行人检测的实际过程中,行人在各种物体下很容易被遮挡,当特征不明显或不完备时,会导致假检或漏检。据作者所见,行人检测的最终任务是检测目标并返回目标的整体预测框,包括被遮挡和未被遮挡的部分。预测框的目标位置和置信度是从目标的整体特征中计算出来的。然而,仅关注目标的整体特征往往会导致很多有用的信息丢失,因此作者应关注更简单和明显的局部特征。从局部特征的预测框中可以获得更有效的信息,同时可以恢复整体预测框的位置。这种方法可以有效防止遮挡导致的目标漏检,同时不同局部特征的协同检测可以实现更好的检测结果。

3 Methodologies

在本章中,作者首先介绍了YOLOv5模型和改进的YOLOv5s,该改进版模型采用了特征融合模块(FFM)。然后,作者描述了作者对YOLOv5网络进行的改进。最后,作者详细分析了作者的特征融合模块(FFM)的组成和工作原理。为了让网络更强大,作者对YOLOv5的损失函数进行了重新设计。

YOLOv5 model

根据模型的复杂性和卷积层数量,YOLOv5可以大致分为以下四个主流版本:YOLOv5s,YOLOv5m,YOLOv5l,和YOLOv5x。这些模型具有相似的架构。YOLOv5s具有最少的参数和浮点运算(FLOPs)。YOLOv5x在最多的卷积操作下实现了更高的检测精度,但所产生的计算量不可接受。在本文中,轻量级模型是作者实现的一个目的,因此作者选择改进YOLOv5s原始模型。

Overview of the proposed network

鉴于全局信息获取和轻量化,作者设计了包含特征融合模块(FFM)的改进YOLOv5s的体系结构如图1所示。首先,作者在YOLOv5s的主干网络中增加了SE注意力块(橙色虚线),这利用每个通道的全球信息并赋予通道不同的权重。其次,根据初步测试信息,作者在YOLOv5s的颈网络中只改进了卷积操作并引入了Ghost卷积模块。改进后的CBS和C3模块分别称为GhostConv(浅灰色)和C3Ghost(绿色)模块。为了处理遮挡问题,作者创新性地设计了FFM模块(黄色)并将其添加到YOLOv5s模型末端。为了便于理解,作者列出了每个模块的输入和输出通道数、卷积核大小和步进大小。

Redesign of the YOLOv5s network architecture

重新设计YOLOv5s网络架构部分的开头。

3.3.1 Improvement of the backbone network

为了提高全局信息的利用率,作者在YOLOv5s的主干网络中添加了Squeeze-and-Excitation(SE)通道注意力模块。 SE模块中特征图的变化如图2所示。首先,通过一个变换,将输入映射到输出结果:

这里的表示卷积运算,,。 的所有通道对应于中的参数,这是一个二维空间核。

然后,特征图通过另一个变换对空间维度进行全局平均池化操作,从压缩到1C。接着,通过全连接(FC)层的训练,原始特征图变成了具有通道注意力的特征图,其维度在这个过程中保持不变。最后,作者将原始特征图和得到的新特征图按通道进行元素乘积。这一激励操作恢复原始特征图的维度并赋予其通道注意力。

图1:改进后的YOLOv5s的架构图,其中包括FFM。

3.3.2 Improvement of the neck network

题目中的参数数目和FLOPs主要由卷积操作决定。为了降低模型的复杂性,作者在YOLOv5s的"脖子"网络中放弃了一些普通的卷积操作,并用Ghost模块 [11]进行替代。图3和图4分别比较了两种卷积方法之间的差异,具体的计算过程如下:

假设作者用和来表示输入和输出特征图的大小,其中和分别表示输入和输出特征图的高度,和分别表示输入和输出特征图的宽度。卷积核的大小用表示。执行一次卷积所需的浮点运算(FLOPs)为,这个数量级通常大于。

在两种情况下:

根据公式2,Ghost模块的FLOPs约为普通卷积的倍低。由于Ghost模块表现出色,作者替换了现有的瓶颈处的标准卷积,引入了GhostBottleneck和C3Ghost模块,它们的结构如图5所示。新的结构大大降低了计算和模型复杂性。

3.3.3 Loss function improvement

由于训练数据必然包含极端样本。如果损失函数仍然考虑几何测量,如距离和水平至垂直比例,那么这会给极端样本增加更多的惩罚,导致模型泛化性能恶化。相反,Wise-IoU[12],弱化了几何因子的惩罚,重点关注正常品质样本,因此具有更好的泛化能力。

Feature fusion module(FFM)

为了获得人行的整体框并解决遮挡问题,作者提出了一种特征融合模块(FFM),将行人的 Head 和腿部特征进行融合,其主要架构如图6所示。作者的FFM由以下三个阶段组成。

分类阶段. 在第一个阶段,分类器根据不同的特征类别将YOLOv5生成的预测框分为n组,如图6所示,蓝色的边界框表示检测到的 Head 区域,黄色的边界框表示检测到的腿部区域。分类器输出两组不同的特征。每组都包含相同类型的特征的所有预测框。每个预测框包含五类信息:类别名称、中心点坐标、预测框的高度和宽度,以及置信度。将不同类型的特征分配到不同的组中的两个主要原因。一个是避免恢复类似类别的恢复框的融合,另一个是计算只需要在不同的恢复框之间进行,而不是相似的恢复框之间进行,这将大大减少计算量。

特征恢复阶段. 在第二个阶段,作者通过它们固定的关系将局部特征恢复到整体预测框。在这个检测中,作者根据人体的固有比例(公式3,图7)将行人的 Head 和腿部区域恢复到行人整体框。

其中

代表 Head 区域和腿部区域的中心点坐标,表示 Head 区域和腿部区域的宽度和高度,表示行人的中心点坐标和行人的宽度和高度,类别名称和置信度保持不变。这样,来自不同来源的这两组预测框都被转换为行人整体预测框,但来源不同。在图6的恢复框阶段,蓝色的边界框表示来自 Head 区域的整体框,而黄色的边界框表示来自腿部区域的整体框。

Figure 6: 特征融合模块(以行人 Head 和腿部特征融合为例)

Figure 7: 人体固有比例

融合阶段. 在第三个阶段,作者将由不同局部特征恢复的整体框进行融合。将每个行人整体框恢复自 Head 区域与所有行人整体框恢复自腿部区域之间的IoU值计算出来。两个IoU值最大且大于IoU阈值的目标被视为同一行人,同时删除置信度较低的恢复框。不匹配的恢复框将被视为被遮挡的行人。两组剩余的行人整体框为最终的检测结果(红色的边界框)。

经过将整体特征分解为不同的局部特征后,作者可以提高检测的准确性和泛化性能。然而,对于没有遮挡的行人,局部特征之间的内部关系很容易丢失,从而导致同一行人由不同的特征多次恢复,导致重复识别。作者在融合阶段通过将这些特征连接起来,确定哪些特征属于同一个人,并很好地处理具有不完全整体特征的遮挡问题。

4 Experiments

作者选择了两个常用的行人数据集进行 Mask 情况下的比较实验,分别是Citypersons数据集[31]和CUHK Mask 数据集[22],并与本系列中其他改进的YOLOv5s FFM等模型进行了比较。作者在这两组实验中提供了对比实验结果。

实现详细.作者使用PyTorch 2.1.2和CUDA 12.0作为深度学习环境,在Ubuntu 20.04系统上进行实验。所有模型都在1张NVIDIA GeForce RTX 3060 Ti显卡上进行测试,该显卡具有8GB内存。

训练详细.学习率是YOLO训练中的一个重要超参数,它决定了模型在每个参数更新中的步长。在训练开始时,作者希望有一个小的学习率,以防止模型振荡。当模型变得稳定时,作者需要一个大学习率以尽快获得收敛结果。在收敛过程中,学习率需要持续降低。为了满足每个阶段的学习率要求,作者采用了Warm-up[33]学习率调整策略,即在训练开始时,慢慢增加学习率到相对合适的值(设置为0.01),然后根据余弦退避[34]衰减策略逐步减少学习率。每个训练周期的学习的显示在图8中。

评价指标.作者使用平均精度(AP)来定量评价作者的改进模型以及其他现有的模型。结果越大,性能越好。为了比较模型复杂度,作者还进一步计算了每种模型中的参数数量和浮动点运算(FLOPs)。这两个指标越小,模型越轻。

Ablation study

为了比较作者提出的模型中每个元素的贡献,表1展示了各种元素组合在城市行人数据集[31]上的结果。

SE模块. 带有SE模块的网络可以学习全局信息并为通道分配权重。与YOLOv5的 Baseline 相比,AP提高了1.3%,而参数和FLOPs几乎保持不变。

幽灵模块. 带有幽灵模块的网络只需要计算较少的参数就可以实现与YOLOv5 Baseline 几乎相同的效果。如表1所示,参数减少了28.8%,GFLOPs减少了19.6%。尽管如此,AP仅牺牲了0.2%。_IoU损失_. 新损失函数弱化了极端样本带来的惩罚,使模型更关注正常样本。

特征融合模块. 为了处理行人数据集中的广泛遮挡问题,作者首先使用改进的YOLOv5模型获得行人可见的局部特征,并进一步由特征融合模块(FFM)处理。与YOLOv5 Baseline 相比,AP从61.5%提升到67.1%。虽然参数和FLOPs显著减少,但结果得到了实现。

以上结果证明了带有FFM改进的YOLOv5可以实现更好的平均精确率(AP)而占用更少的参数和FLOPs。

Experiment on Citypersons dataset

城市行人数据集[31]是只包含行人标注的城市景色子集,包括18个训练集和3个验证集,总共有超过3000张图像。在训练城市行人数据集的第一到第三个epoch中,作者使用了升温策略来确保学习率不过高,并在后续的epoch中使用了余弦退火策略逐渐降低学习率。

为了定量地说明作者提出的方法的优越性,作者训练了具有相似架构但网络深度和特征图宽度不同的所有YOLOv5版本。然而,它们都通过采用更多的参数数量和GFLOPs实现较大的AP。图2展示了采用FCN和其他模型改进后的YOLOv5的实验结果。通过添加FCN并改进YOLOv5的架构,作者的模型在行人检测上的AP更高。具体来说,与原始YOLOv5相比,作者的模型在AP上提高了5.6%,参数数量减少了27.9%,GFLOPs减少了19.0%。作者的模型保持了与YOLOv5x相近的准确性,但参数数量和GFLOPs分别减少了94.1%和93.7%。

图9展示了YOLOv5和改进后采用FCN的城市行人数据集上的检测结果。图(a)a是原始YOLOv5的检测结果,表明类别遮挡或类别内部遮挡的效果并不理想。图(b)b是改进后的YOLOv5 with FCN的检测结果,作者可以看到,作者的方法对这些情况处理得很好。

Experiment on CUHK Occlusion dataset

本文提出了一种基于YOLOv5s的行人检测模型,并对其进行了改进,命名为改进YOLOv5s with FFM。作者首先在Citypersons dataset上对该模型进行了测试,然后又在CUHK Occlusion dataset上进行了比较实验。作者还采用了分步训练策略,前三个训练周期采用 Warm up 策略,之后使用余弦退火算法更新学习率。

表3报告了CUHK Occlusion数据集中每个场景下不同模型的平均精确度(AP)。结果显示,在CUHK Occlusion数据集中,使用改进的YOLOv5s with FFM的模型在所有9个场景上均优于YOLOv5s的原生模型。在某些场景中,作者的模型的平均精确度甚至高于YOLOv5x,而作者的模型只需要计算17倍于YOLOv5x的参数。

图9比较了YOLOv5s和改善的YOLOv5s with FFM在城市行人数据集上的测试结果。图10展示了YOLOv5s基础模型和改进的YOLOv5s with FFM在CUHK Occlusion数据集上的检测效果。

进行讨论。

虽然作者的方法在某些情况下比原YOLOv5s取得更好的结果,但在某些情况下仍有所不足。例如,当行人出现在图像中非常奇怪的姿势时,作者的模型会将行人恢复为多个不同的整体框。当每个整体框之间的IOU过小时,它会认为这是不同的人,导致虚拟检测。

尽管作者的方法取得了比原YOLOv5s更好的结果,但在某些情况下仍存在一些问题。例如,当行人出现在图像中非常奇怪的姿势时,作者的模型会将行人恢复为多个不同的整体框。当每个整体框之间的IOU过小时,它会认为这是不同的人,导致虚拟检测。

5 Conclusion

作者创造性地提出了一种通过检测局部特征来恢复整个行人框的检测策略,并设计了一个特征融合模块(FFM)来实现这一策略,该模块成功地添加到了YOLO检测器中。作者的主要贡献可以概括为以下几点:首先,作者设计了一个针对遮挡检测的特征融合模块(FFM),而非仅仅增加模型的复杂性以学习各种遮挡情况。

相反,作者用Ghost模块替代传统的卷积,从而减少了模型参数和FLOPs。此外,作者将SE模块引入到YOLOv5s Backbone 网络,并使其具备考虑全局信息的能力。最后,为了建立一个能够处理遮挡问题的有效检测器,作者将改进的YOLOv5s与FFM相结合,并使用WIoU重新设计损失函数。

作者在Citypersons数据集和CUHK遮挡数据集上进行了定性和定量的实验。检测数据显示,具有FFM改进的YOLOv5s比现有优秀的目标检测模型拥有了更好的平均精确率(AP)和更少的参数计算。

参考

[1].A lightweight YOLOv5-FFM model for occlusion pedestrian detection.

0 人点赞