1. 引言
近年来,深度学习的快速发展使得计算机视觉的各个方面都取得了重大突破,尤其是在目标检测方面。计算机视觉旨在识别和分类图像中的物体(例如,行人,动物,车辆),作为目标跟踪和目标分割等任务的基础元素 [1] [2] 。它的工业应用非常广泛,从探伤到自动驾驶 [3] [4] [5] 。此外,电子控制系统和飞机设计的发展突出了基于无人机(UAV)的目标检测的重要性,在农业,管理和航空摄影领域非常普遍。无人机要么无线电控制,要么在预先编程的路线上操作。无人机配备高分辨率摄像头,能够捕获全面的数字图像,便于使用轻型模型在飞行中实时检测目标 [6] [7] [8] 。目前,实现目标检测模型的方法主要有两种:两阶段方法 [9] [10] 和单阶段方法 [11] 。
Girshick等人开发的R-CNN [12] 使用预训练好的CNN在各个候选区域进行特征提取,并使用svm进行分类。R-CNN虽然具有创新性,但处理过程冗余复杂,消耗了大量的计算资源和存储空间。Ren等人提出了Faster R-CNN [13] ,这是目标检测中的一个里程碑模型。更快的R-CNN创新地将区域建议生成与特征提取网络相结合,实现了涵盖区域建议、特征提取、分类和边界盒回归的全面端到端训练。Joseph等人提出的YOLO [14] 通过将输入图像初始划分为几个网格来实现目标检测。每个网格预测对象的潜在边界框,跨越整个图像。然后通过NMS对这些预测进行细化,得出最终的检测结果。由Redmon等人提出的YOLOv3 [15] 标志着一个重大的进步,用DarkNet53取代了它的特征提取网络。YOLOv3还利用了特征金字塔网络(FPNet) [16] ,使用多尺度下采样特征图来增强对小物体的检测,从而提高了推理速度和准确性。Bochkovskiy等人介绍了YOLOv4 [17] ,该检测模型将其骨干网升级为CSPDarknet53,这是DarkNet53的增强版本,具有CSP模块。这种增强使网络更加模块化,简化了骨干网络架构,增强了特征提取能力。YOLOv4在YOLOv3的基础上进一步发展,在颈部增加了路径聚合网络(PAN)架构,借鉴了PANet [18] 的原理,增强了多尺度特征融合。另一方面,Dosovitskiy等人利用Vision Transformer (ViT)率先将Transformer应用于计算机视觉 [19] ,彻底改变了目标检测的研究领域。ViT采用编码器–解码器和自关注机制来捕获全局图像特征,从而实现完全的端到端检测。然而,这种创新的代价是增加了模型参数,增加了培训和部署的挑战。同时,Carion等人引入了DETR [20] ,首次将Transformer架构应用于目标检测。DETR由基于cnn的骨干网、编码器、解码器和前馈网络组成,形成了一个完整的检测系统。尽管它的高参数计数和有限的精度增强,DETR已成为基于变压器的目标检测的后续进展的基石。基于cnn的目标检测方法通常利用深度和广度骨干网络进行特征提取。他们利用多尺度特征融合 [21] 在不忽略几何纹理细节的情况下捕获广泛的语义信息,从而增强检测特征图的表达能力。然而,这些方法有一个权衡,因为大量的卷积操作和堆叠特征提取网络显着增加了模型复杂性和参数计数。
在本研究中,我们提出了YOLOv5的改进版YOLO-QCK模型,以解决上述挑战。关键的改进在颈部网络中加强多尺度特征融合以更准确地检测小物体。然而,这些改进可能导致参数数量和计算需求的上升。为此,我们提出并评估了轻量级策略应用于YOLO-QCK,以确保模型的高效性。
本文的主要贡献如下:
(1) 在YOLOv5s模型的颈部网络中加入微小检测层,增强其微小目标检测性能。
(2) 将C3CrossCovn模块嵌入到YOLOv5s模型的骨干网中,通过减少模型参数和计算量来简化模型。
2. 模型
2.1. YOLO-QCK整体框架
在本研究中,我们提出了一种基于YOLOv5改进的目标检测模型YOLO-QCK,其重点是小目标检测,降低了模型复杂度,如图1所示。YOLOv5模型分为三个主要部分:骨干网络、颈部网络和头部网络。骨干网络建立在CSPDarknet53上,由标准卷积层和附加的特征增强模块组成,任务是提取物体的形状和颜色等几何纹理特征。为了丰富这一基础信息,颈部网络从FPNet [16] 和PANet [18] 中汲取灵感,进一步将骨干网的特征图与更深层次的语义信息相结合。这种组合产生了具有丰富语义和几何信息的特征映射。这些增强的特征图然后被输入到头部网络中,头部网络执行最终的检测和分类。
2.2. 微小目标检测层
在MS COCO数据集中,对象根据大小进行分类:小对象小于32 × 32像素,中等对象在32 × 32到96 × 96像素之间,大对象超过96 × 96像素。为了增强模型中的小目标检测,我们调整了特征映射和锚点的大小。利用k-means聚类算法,重新校准预设锚盒的大小范围,引入微小目标检测层,建立YOLOv5-sm模型。具体来说,我们在YOLOv5s的颈部网络中进行上采样,生成一个包含128个通道的160 × 160特征图,然后将其与骨干网络的第三层输出相结合,在通道和大小上进行匹配。该组合特征图与其他检测层输出一起,在头部网络中进行分类和检测处理。我们的颈部网络生成了几个不同尺度的特征图,每个特征图对应不同的锚大小。这样可以在较大的特征图上检测较小的对象,在较小的特征图上检测较大的对象,从而增强图像中的对象表示。特征图大小与锚点大小之间的关系详见表1。
2.3. 轻量级卷积模块
为了简化YOLOv5模型,减少参数数量和计算量,本研究探讨了C3Chost和C3CrossCovn两个模块的集成。我们的目标是在前入骨干网内的不同位置时评估这些模块的影响。这种比较侧重于每个模块放
Figure 1. YOLO-QCK network architecture
图1. YOLO-QCK网络架构
Table 1. Anchor box sizes in different feature maps
表1. 不同特征映射中的锚框大小
Figure 2. C3 module (k and s indicate the convolutional kernel size and stride, respectively)
图2. C3模块(k和s分别表示卷积核的大小和步幅)
置如何影响模型的性能和复杂性,其目标是在不影响其性能的情况下简化网络体系结构。
C3 模块:C3模块是YOLOv5的关键组件,如图2所示,由三个标准卷积层组成,每个层的内核大小为1 × 1,步幅为1,并且包含多个堆叠的瓶颈(BottleNeck)模块。该模块的架构根据模型的大小在宽度和深度上有所不同,由预定义的参数控制。C3模块包含一个类似于瓶颈CSP的残差结构。它以两种方式处理输入特征图:通过双分支方法,其中一个分支使用两个标准卷积层,其他分支输出原始特征图,随后将输出连接起来,或者通过放弃残差路径并在标准卷积后直接输出特征图。C3中的瓶颈模块以其强大的特征提取能力以及在解决梯度消失和梯度爆炸问题的能力而闻名。
C3Ghost模块:标准卷积模块,通常包括一个规则的卷积层以及批处理归一化和激活函数,通常创建许多相似的特征映射,导致高计算需求和资源消耗。为了解决这个问题,GhostCovn采用了两步方法。最初,它采用具有较小内核大小的标准卷积来生成具有较少通道的特征映射。随后,使用深度卷积(DepConv)来生成第一步未创建的附加特征映射。然后将这两个阶段的特征映射结合起来,产生最终的特征映射,类似于由标准卷积层产生的特征映射,但计算量和参数要少得多。
在我们提出的C3Chost模块中,GhostCovn与Ghost瓶颈模块一起使用,其中包括GhostCovn和DepConv模块,并构成残差结构。GhostBottleNeck有两个分支:第一个分支通过1 × 1步长为1卷积核的GhostCovn处理输入特征映射,然后将生成的特征映射添加到原始特征映射中。第二个分支引入了一个中间DepConv模块,其内核为3 × 3,两个GhostCovn模块之间的步长为2。残差路径遵循一个类似的DepConv模块,然后是一个步幅为1的标准1 × 1卷积。C3Chost模块的整体结构类似于C3模块,但它用GhostBottleNeck代替了BottleNeck。总体架构如图3所示。
C3CrossCovn模块:虽然GhostCovn显著地简化了C3模块,但它可能导致沿信道方向的代表性信息丢失,从而影响模型精度。为了减轻这种情况,采用交叉卷积(CrossCovn)解决。CrossCovn包括两个标准的卷积层,在特征映射上以交叉模式排列。它与传统的k × k滑动窗口卷积不同,第一层使用1×k核,其水平步长为1,垂直步长为s,第二层使用k × 1核,其两个维度的步长均为s。CrossCovn的示意图如图4所示。
为了评估标准卷积和交叉卷积在参数数量和计算量上的区别,我们建立了一个比较框架。对于这个分析,让我们考虑一个尺寸为H×H×C的正方形输入图像。卷积使用k × k的核大小,核的数量等于通道的数量C,在图像边缘周围填充p。公式1确定了通过标准卷积层进行处理所需的浮点计算需求和参数计数:
(1)
Figure 4. CrosssCovn module (stride = 1, kernel size = 3)
图4. CrosssCovn模块(步长为1,内核大小为3)
为了确定CrossCovn对图像进行单个操作所需的计算需求,我们做出如下假设:CrossCovn包含C个双卷积核,第一个核的大小为1 × k,第二个核的大小为k × 1,步长为s。公式2详细介绍了CrossCovn中计算负载的具体计算以及与这些设置相关的参数数量:
(2)
在MS COCO数据集中,所有图像都是RGB,因此我们使用三个图像通道(C = 3)。为了确保足够大的接受域,我们将k设置为3,s设置为1。在这些条件下,很明显,标准卷积需要更多的计算工作量,并且与CrossCovn相比,其参数数量约为1.5倍。尽管CrossCovn需要在单个特征映射上进行两次条纹核卷积操作,但它比标准卷积实现了更精细的特征提取和更丰富的特征信息。这种增强不仅提高了检测精度,而且显著降低了计算需求和参数数量,使其成为模型轻量化的最佳解决方案。C3CrossCovn模块概述如图5所示。
3. 实验
3.1. 数据集和参数设置
本研究的实验采用MS COCO数据集。具体来说,使用了包含118,287张图像和117,266个标签的
COCO训练集和包含5000张图像和4952个标签的COCO验证集。考虑到这些图像的不同大小,它们在实验中被统一调整为640 × 640像素。COCO训练集包含了广泛的对象,共计80个对象类别,代表了日常生活中常见对象的全面集合。这使得MS COCO数据集在计算机视觉研究中具有广泛的应用价值。对于训练模型,使用Adam优化器,从学习率为0.001开始,增加到0.01。为了提高参数更新的速度,我们将动量设置为0.937。权重衰减对于训练中的正则化至关重要,它被小心地平衡在0.0005以避免过拟合或者模型拟合不足。训练方案包括最初的热身阶段,涵盖前3个阶段,然后是广泛的训练阶段,总共跨越400个阶段。该模型是用Python实现的,利用PyTorch框架,并在配备了四个16GB V100 GPU的云服务器上进行了培训。
3.2. 微小目标检测层的评价
通过在颈部网络中加入微小目标检测层,YOLOv5s-sm 在几个指标上优于基准 YOLOv5s,详见表 2。 这种增强体现到 Precisionall增加 1%,Recallall增加 2.2%,mAP@0.50 增加 1.8%,mAP@0.5:0.95 增加 1.4%。 然而,这导致了更高的计算和参数要求,可能是由于颈部网络中额外的卷积模块创建了更大的特征映射。
Table 2. Detection results of tiny object detection layers
表2. 小目标检测层检测结果
为了突出所提出的微小目标检测层的有效性,我们使用了来自YOLOv5s和YOLOv5s-sm模型的结果图像和头部网络热图。图6显示了(a)原始图像,(b) YOLOv5s的推理结果,(c) YOLOv5s-sm的推理结果表明YOLOv5s-sm在检测小目标时具有优越的能力。图7为来自YOLOv5s颈部网络的三个特征热图,分别对应大、中、小目标的检测层,图8为来自YOLOv5s-sm的对应层,包括微小目标检测层。值得注意的是,从图8(c)和图8(d)可以看出,YOLOv5s-sm中的微小物体检测层对微小物体的关注更加细致。
(a) (b) (c)
Figure 6. Detection results of YOLOv5s and YOLOv5s-sm
图6. YOLOv5s和YOLOv5s- sm的检测结果
(a) (b) (c)
Figure 7. Heat map of YOLOv5s neck network outputs
图7. YOLOv5s颈部网络输出热图
(a) (b) (c) (d)
Figure 8. Heat map of YOLOv5s-sm neck network outputs
图8. YOLOv5s-sm颈部网络输出热图
3.3. 加入轻量级卷积模块的YOLOv5s-QCK
为了说明轻量化策略对模型性能的影响,本节选取不同策略。这些不同修改的结果详列于表3。
Table 3. Detection results of different improved models.
表3. 不同改进模型的检测结果
与 YOLOv5s-sm相比,YOLOv5s-QC在 mAP@0.50上提高了0.6%,在mAP@0.5:0.95 上提高了 0.5%, 同时参数降低了 0.19 M。YOLOv5s-QK 比 YOLOv5s-sm 高 2.1% mAP@0.50 和 2.2% mAP@0.5:0.95。与YOLOv5s-QK 相比,YOLOv5s-QCK 减少了 0.21 M 的参数和 0.2GFLOPs 的计算需求,同时在 mAP@0.50 上实现了 0.7%的改进,在 mAP@0.5:0.95 上实现了 0.4%的改进。这些结果表明,轻量化方法不仅降低了 模型复杂度,而且提高了检测性能。虽然精度的提高通常会导致计算和参数需求的增加,但这里实现的 轻量化策略有效地限制了这些增加。实验结果验证了所提出的每一个改进都对 YOLOv5s 模型的增强性能 有积极的贡献,并证实了这些改进不是互斥的,而是互补的。
为了证明YOLO-QCK方法的有效性,我们使用从不同验证集中随机获取的两张测试图像将其与YOLOv5s进行比较,这些图像的特征是密集分布和均匀大小的对象。从图9可以看出,本文提出方法在检测框预测出来的目标值均优于基础的YOLOv5s,尤其是在小目标框上的预测值对比,所以YOLO-QCK在检测小目标方面优于YOLOv5s。
(a) YOLOv5s (b) YOLO-QCK
Figure 9. Visualized results of different detection models
图9. 对比可视化结果
4. 结束语
本研究解决了目标检测领域的普遍挑战,并引入了一种新的方法YOLO-QCK。与基准的YOLOv5相比,该方法显示出优越的检测性能,特别是在准确识别小物体方面。YOLO-QCK通过在颈部网络中集成微小目标检测层,为了平衡增强检测和模型效率,采用轻量级策略,在骨干网中加入C3CrossCovn模块以降低模型复杂度。与基线YOLOv5s模型相比,我们新开发的模型YOLO-QCK在MS COCO验证数据集上显示出相当大的改进,mAP@0.5" target="_self">mAP@0.5增加了4.6%,mAP@0.5" target="_self">mAP@0.5:0.95增加了4%,同时保持模型尺寸紧凑,参数为9.49 M。同时通过在模型上引入不同轻量化策略的实验结果对比证明这种策略不仅降低了复杂性,而且提高了准确性。接下来将继续优化该网络,通过研究注意力机制对结果提升的影响。