导读
小目标检测尤其困难,因为它们像素计数低、背景复杂、拍摄角度多变,这使得模型难以提取有效特征。虽然一些大规模模型提供了高精度,但它们的长时间推理时间使得它们不适合在边缘设备上进行实时部署。另一方面,为低计算能力设计的模型通常检测精度较差。本文专注于小目标检测,并探索在低计算约束下的目标检测方法。基于 YOLOv8 模型,作者提出了一种新的网络架构,称为 FDM-YOLO。作者的研究包括以下关键贡献:作者通过分析 YOLOv8 检测 Head 的输出引入了 FDM-YOLO。作者添加了一个高分辨率层并移除了大目标检测层,以更好地处理小目标。基于 PConv,作者提出了一种轻量级网络结构,称为 Fast-C2f,并将其集成到模型的 PAN 模块中。为了减轻模型轻量化带来的精度损失,作者采用了动态上采样(Dysample)和轻量级 EMA 注意力机制。
FDM-YOLO 模型在 Visdrone 数据集上进行了验证,参数数量减少了 38%,Mapo.5 分数从 38.4%提高到 42.5%,同时保持了几乎相同的推理速度。这证明了 FDM-YOLO 在平衡精度和效率以适应边缘设备部署方面的有效性。
1. 引言
在计算机视觉领域,目标检测在众多行业中扮演着关键角色,例如自动驾驶汽车[1]、交通场景监控[2]、提升智能驾驶系统[3]以及辅助搜救行动[4]。精确识别如行人、汽车、摩托车、自行车、交通标志和信号等小型物体对于自动驾驶汽车和智能驾驶系统中的安全导航和决策至关重要[5]。此外,识别小型物体有助于改善交通流量管理、行人保护和交通场景的综合分析。这项技能对于提升城市规划和交通网络至关重要[4]。
在图像中检测小物体面临着重大挑战,因为它们的空间覆盖范围有限、分辨率较低,并且与较大物体相比,视觉特征不够显著。在网络架构如 YOLOv8[6]中,浅层可能会无意中丢弃识别这些小物体所必需的临界空间信息,导致数据丢失。此外,在特征提取过程中,小物体可能会被大物体所主导,可能导致重要细节的丢失,这些细节对于精确检测至关重要。解决这些问题对于提高实际应用中目标检测的准确性和可靠性至关重要。
随着生产成本的降低和无人机飞行控制技术的进步,这些紧凑且灵活的设备越来越多地被用于智能交通监控。无人机通常在较高的海拔运行以捕捉更广阔的视野,但这一增加的距离会减小地面物体的可见尺寸。这种距离使得在捕获的图像中进行目标检测变得复杂。尽管目标检测取得了显著进展,但由于行人、摩托车、自行车和车辆在城市交通中的尺寸各异、形状多样以及背景杂乱,检测这些小型物体仍然具有挑战性。当使用有限的计算机视觉和目标检测任务硬件资源时,这一挑战更为突出。平衡检测性能和模型大小是一个需要解决的临界挑战。
为解决无人机航拍图像和交通场景中小目标检测的挑战,并优化部署性能,作者开发了一种基于 YOLOv8 的新型模型。作者扩展了 PAN(路径聚合网络)的长度,并添加了一个额外的检测 Head,同时移除了大检测 Head,旨在更有效地利用高分辨率的空间细节,同时保持性能的平衡。此外,作者将 Pconv [8] 方法集成到 C2f 模块中,以进一步减少部署过程中的性能开销。另外,作者引入了 EMA[9](高效多尺度注意力)机制和动态上采样方法到 PAN[10]中。
2. 相关工作
R-CNN 算法于 2014 年出现,是一种基于深度学习的两阶段目标检测算法。该算法将目标检测建模为两个步骤:首先,生成候选区域;其次,对每个候选区域进行分类和回归操作。它使用 SVM 分类来确定区域是否包含特定目标,并使用回归来获取目标边界框的具体位置。Fast-RCNN 通过允许每个候选区域共享相同的神经网络,显著优化了算法的时间。Faster-RCNN[11]通过提出 RPN 网络架构进一步优化了候选区域生成算法。RPN 消除了算法依赖传统基于特征的选择性搜索来生成候选区域的必要性。2018 年,Cascade RCNN[12]采用级联检测机制,逐步增加 IOU 阈值,使模型在每一步都能提供更准确的预测。FPN 网络引入了特征金字塔,对不同 Level 的特征进行不同的处理,从而提高了模型检测多尺度目标的能力。
两阶段算法将目标检测建模为首先生成候选区域,然后进行分类和回归的方法,每个步骤都需要独立的计算资源,导致两阶段算法的运行时间更长。这种方法在早期阶段通常实现了更高的精度,但检测速度较慢。相比之下,YOLO 算法是一种单阶段目标检测算法。YOLO 直接将整个检测任务建模为回归问题,在分割每个图像后直接预测图像的边界框和类别概率,从而满足实时性能要求。
YOLO 算法直接将图像划分为网格,并对每个网格预测一定数量的边界框和置信度分数。YOLO 的早期版本准确度较低,对小型物体的检测灵敏度也较低。YOLOv2 引入了 Anchor 框机制以增强对小型物体的检测能力[13],并支持多尺度训练和批量归一化等 High-Level 技术。
YOLOv3 通过使用多尺度预测头来进一步提升了小物体的检测能力。2020 年 4 月,YOLOv4 [14] 采用了一种增强的架构,集成了特殊物品的包(bag-of-specials integration),并使用了如免费物品包(bag-of-freebies)等先进的训练方法。为了增强模型的鲁棒性,它对输入图像进行了对抗攻击,并使用遗传算法进行超参数优化。该模型在 COCO 数据集 [15] 上实现了平均精度均值 43.5% 和 AP50 65.7%。YOLOv5 采用了更新的训练策略,包括马赛克(Mosaic)和 Cutmix。2022 年 6 月,美团技术团队发布了 YOLOv6,它使用了 EfficientRep 以实现更高效的网络结构。在部署方面,YOLOv6 [16] 还使用了参数归一化技术来加速部署阶段模型的使用。
随着 YOLO 系列持续改进,YOLO 算法的准确性也得到了提升。YOLOv7 [17]采用了扩展高效层聚合网络(E-ELAN)。通过控制最短和最长梯度路径,它使得更深的模型能够更有效地学习和收敛。YOLOv7 提出了一种基于 ConCat 模型的新缩放策略,其中块的深度和宽度通过相同的因子进行缩放,以保持模型的最佳结构。
YOLOv8 的核心网络采用了 C2F 架构。如今,YOLO 系列持续更新[18]。在通用目标检测数据集 COCO 上,YOLO 系列的大版本已经实现了高精度。
目标检测领域的另一个热门研究方向是 DETR,它将 Transformer 引入到目标检测任务中。该方法不需要进行非极大值抑制的后处理或引入先验知识 Anchor 点。它预测固定数量的边界框,并使用匈牙利算法在预测集和标签集之间进行二分图匹配,以固定数量的标签完成检测。该方法在大目标检测方面表现良好,但在小目标检测方面表现较差。
朱旭提出了一种可变形注意力机制和迭代边界框校正方法来优化检测结果[19]。王宇[20]提出了一种基于先验知识的 Anchor 点 Query 方法,提高了模型性能。然而,DETR 模型的训练不易收敛,尤其是在小物体数据集上,数据量通常不足。
高效 DETR[21]分析了各种模型初始化方法,并结合了集合预测和密集检测的特点以加速模型训练。Li[22]通过使用噪声目标 Query 作为额外的解码器输入,降低了 DETR 中二分图匹配机制的不稳定性,提出了 DN-DETR。DINO[23]提出了一种混合目标 Query 选择方法用于 Anchor 点初始化,以及用于框预测的两个前向传播机制,提供了一个对比去噪模块,并添加了额外的 DN 损失,这进一步提高了对小目标的检测能力和实时性能。
尽管 DETR 系列模型的准确性很高,但它们的实时性能较差。为了便于部署,Lite DETR [24] 通过关键感知可变形注意力机制降低了模型复杂性,但计算负载本身并未减少。RT-DETR [25] 利用 Vit [26] 高效处理多尺度特征,通过解耦跨尺度融合和跨尺度交互,实现了实时性能并保持了高准确性。
除了基本模型架构之外,还有许多针对小目标检测的策略。在损失函数方面,文献[27]提出了通过增加定位损失中小物体权重的反馈驱动损失。文献[28]认为基于 IOU 的损失对小物体匹配不公平,并将边界框建模为高斯分布,使用 Wasserstein 距离提供尺度不变性和对小物体的更平滑的位置差异处理。
从提高小物体尺寸的角度出发,一些研究首先在检测前放大图像,利用超分辨率方法来提升检测效果。Cui Z [29] 集成了一种超分辨率自监督框架,提出了 AERIS 端到端融合方法。多模态方法也被应用于目标检测研究中。文献[30]研究了基于 RGB 和热成像相机的多模态目标检测,在贝叶斯规则和独立性假设下,提出了一种针对不同模态信息的概率融合策略。文献[31]提出了一种基于滑动窗口的目标检测方法,该方法将图像划分为块进行顺序检测,然后合并结果,合并后的结果远优于独立检测。
尽管现有研究取得了一定的进展,小型目标检测方法在无人机航拍和交通场景中仍面临挑战。难以平衡大量模型的准确性、实时性能和参数数量。受局部卷积的启发,作者构建了一个轻量级的 Fast-c2f 结构。此外,引入了 EMA 注意力机制以重新分配特征权重,增强特征提取。与其它注意力机制不同,它克服了忽视空间细节与 1x1 卷积核有限感受野之间交互的局限性,这限制了局部跨通道交互和上下文信息建模。此外,通过使用动态上采样方法提高了模型的准确性。
3. 方法
在本节中,作者将探讨如何基于 YOLOv8 提升网络架构。这一升级后的网络显著提升了检测小目标的能力,同时将模型的参数数量减少了高达 40%。重要的是,它实现了这一目标而没有明显增加推理延迟或额外开销,使其非常适合在低计算环境中检测小目标。该模型被称为 FDM-YOLO。
A. 改进 Head 检测
在原始 YOLOv8 中,最小的目标检测层输出维度为(256, 80, 80),这是对原始图像的 8X 下采样。这种程度的下采样对于检测小物体来说非常显著。为了增强模型检测较小目标的能力,作者扩展了 PAN 和 FPN 的长度,并添加了一个具有 4 倍下采样率的新的检测层。为了保持性能平衡,作者移除了最大的检测层。
B. 快速 C2f
轻量级部署一直是研究行人追求的效果。自从 ResNet 问世以来,模型通过残差连接缓解了梯度消失问题,从而使得构建越来越深的网络架构成为可能[30]。
然而,网络结构的加深对模型部署有害。轻量级卷积的使用也引起了研究者的广泛关注。在本文中,作者将轻量级卷积 PConv [46] 引入 YOLOv8,以实现轻量化和减少模型参数数量。
该图展示了 Pconv 的计算方法,该方法通过给定的缩放因子对输入特征图进行分割。其中一部分卷积使用标准卷积方法进行操作,而另一部分则直接复制。这两部分的拼接构成了最终的输出。这种方法显著降低了计算负载和内存访问量。就计算负载而言,假设输出特征图的维度为 CHW,标准卷积的计算负载如下:
通过利用 Pconv 和 1x1 卷积的 ConCat 组合,作者可以构建一个 Fast-block,然后将其应用于 C2f 架构中,以创建 FastC2f 模块。
在神经网络中, Backbone 网络主要负责提取核心特征。为了防止重要特征的丢失,Fast-C2f 并未在 Backbone 网络中使用。然而,在模型的特征融合阶段,它被利用以实现一个更轻量级的模型。
C. 动态上采样
在 YOLO 系列中,最近邻插值方法被统一用于上采样。另一种方法,双线性插值,通过使用新像素与周围四个像素之间的相对距离作为权重,对周围四个像素的颜色值进行加权平均来估计新的像素值。这两种方法都是经典的上采样方法,此外,立方插值等常见方法也被用于上采样。
然而,传统方法属于静态上采样方法,这意味着给出一个规则并统一应用于所有数据集。实际上,不同数据集之间可能存在固有的差异。上采样方法应具备动态特性。
本文借鉴了文献[48]中提出的 Dysample 方法来优化 YOLOv8 目标检测模型。
D. 添加 EMA 注意力
注意力机制是神经网络中一种常见的技巧,灵感来源于人类的视觉注意力。在处理信息时,人类并非全局关注每一个细节,而是自动选择性地集中注意力于某些部分。对于一个输入特征图,允许模型动态地为不同部分分配不同的权重至关重要,从而使得模型能够增强对重要特征的识别。
EMA 方法具备跨通道交互和跨空间学习的双重能力,在性能和有效性方面比传统注意力方法更高效。以下是 EMA 注意力计算过程的介绍。
前两部分通过张量连接,然后进行 1x1 卷积,随后进行分割。经过 Sigmoid 函数处理后,获得空间注意力分数。接着,原始输入与这些分数相乘,以完成计算的第一部分。
上述过程完成了空间注意力的计算。随后,重新加权的 Ti 和计算出的 Gi 沿通道维度依次进行池化和 softmax 操作,以获得通道维度的注意力权重。Ti 的注意力分数与 Gi 相乘,Gi 的注意力分数与 Ti 相乘。然后将这两个乘积相加,并通过 sigmoid 函数得到最终的注意力分数。这些注意力分数与原始结果在通道维度变化后的乘积构成了 EMA 的计算结果。
YOLOv8 的原始版本没有选择使用注意力机制,而作者将其独立集成到检测 Head 层。这种集成以相对较低的成本实现了检测精度的提升。添加方法如图所示。
4. 实验
本节首先概述了用于评估实时目标检测模型性能的指标。随后,介绍了用于测试的数据集,接着详细解释了实验设置和训练策略。研究使用 YOLOv8 作为基准,依次验证每个创新对模型的影响。此外,该模型与其他常见的前沿(SOTA)方法进行了比较。此外,本节还包括了对模型性能的评估和相关讨论。
A. 评估指标
为了评估作者改进模型的检测性能,作者采用了几个关键指标:精确率、召回率、mAP0.5、mAP0.5:0.95 以及模型参数数量。这些指标的详细公式在本节中进行了概述。
精确度:一个量化正确预测为正例(TP)的比例的指标,该比例是基于所有预测为正例的实例(TP 和 FP 之和)。精确度由以下公式给出:
召回率:本指标计算正确识别出的正样本比例与实际正样本总数的比例,具体如公式所示:
平均精度(AP):表示精度-召回率曲线下的面积,使用公式 6 进行计算:
平均平均精度(mAP):表示所有类别上的平均平均精度(AP)值,反映了模型在整个数据集上的综合检测性能。该计算方法在公式 7 中详细说明。
mAPo.s:将交并比(IoU)阈值设置为 0.5 时计算的平均精度。
mAPo.5:o.95:指在 IoU 阈值为 0.5 到 0.95 之间,以 0.05 为步长计算 mAP,并给出最终的平均值。
B. 数据集
VisDrone2019 数据集是由天津大学机器学习与数据挖掘实验室和 AISKYEYE 数据挖掘团队共同开发的重要的无人机航拍图像集合。该数据集包含 288 个视频片段,共计 261,908 帧图像和 10,209 张静态图像。这些图像由安装在多种无人机上的相机拍摄,展示了我国十多个城市的多样化场景。该数据集内容极为丰富,涵盖了广泛的地理区域、环境背景和物体类型。在地理上,它包括中国 14 个不同城市的图像,从城市到乡村景观提供了全面覆盖。
该数据集包含多种类型的目标,如行人、汽车、自行车等。此外,数据集覆盖了不同人口密度的区域,从 Sparse 到拥挤,且在多种光照条件下进行采集,包括白天和夜晚场景。VisDrone2019 数据集的一个显著特点是包含了大量不同尺寸的小目标,这些目标在不同场景中以不同的角度呈现。这种多样性使得该数据集相较于其他计算机视觉数据集更加复杂和具有挑战性。
C. 消融研究
为了便于记录比较实验,作者对具有各种改进的模型分配了以下命名规范:YOLOv8s 作为基础模型, Token 为模型 ID 1。直接添加小型目标检测 Head 的模型 Token 为模型 ID 2。模型 ID 3 由模型 2 通过移除大型检测层以平衡性能得到。模型 ID 4 基于模型 3,并集成了 Faster-C2f 结构。模型 ID 5 是模型 4 的改进,采用了增强的上采样方法。模型 ID 6 通过添加 EMA 注意力机制从模型 5 派生而来。
在本研究中,YOLOv8s 被选作基础模型进行研究和进一步改进。该模型在 VisDrone 数据集上使用 NVIDIA RTX 4090 GPU(24 GB)和 Linux 操作系统进行训练,采用了 PyTorch 1.13 和 CUDA 11.6。实验主要依赖于 Ultralytics 库,版本为 8.3.18,Python 环境为 3.9.13。训练过程中,通过优化关键参数,使用随机梯度下降(SGD)优化器,动量设置为 0.937,运行了 200 个 epoch。初始学习率从 0.01 开始。学习率通过预热和余弦退火策略动态调整。为了高效使用内存和稳定训练,选择了 16 个批次的批量大小,输入图像调整为 640×640 像素。还应用了 0.0005 的权重衰减,以防止过拟合并提高模型泛化能力。
为确保对模型结构对算法影响的公平比较,所有训练策略保持一致。图 6 展示了随着训练轮数的增加,模型 mAP 的变化情况。从图中可以看出,所有模型都已达到收敛状态。
模型 1 作为 Baseline 方法,其模型达到了最低的准确率。通过引入一个小的目标检测层,整体准确率提高至 43.6%。模型 3 表明,移除大目标检测层对检测性能没有影响,从而在不牺牲任何性能的情况下提高了速度。模型 4 在模型 3 的基础上引入了 PConv,导致 mAP 性能略有下降,这是为了实现更轻量级的模型而做出的权衡。模型 5 和模型 6 中添加的策略被证明是有益的,因为它们有助于提高验证集上的 mAPo.5。
作者使用精确率、召回率和 mAP0.5 来评估所提出改进的准确性。此外,作者根据参数数量和计算复杂度评估模型的部署优势。表 1 展示了与模型准确性相关的结果,而表 2 展示了与部署相关的成果。所有比较均基于所提出的改进。
综合考虑表 1 和表 2,可以得出结论:FDM-YOLO 在部署便利性和推理性能之间实现了良好的平衡。与 Baseline 模型相比,FDM-YOLO 在计算负载上仅略有增加,同时参数数量减少了 40%。此外,它在 mAP @0.5 上实现了 4 个百分点的提升。作者还比较了 FDM-YOLO 与其他常见的 SOTA 模型。所有实验都使用了相同的训练策略,输入图像大小设置为 640 像素。YOLO 系列包括各种尺寸的模型,所有测试都使用与 YOLOv8s 相似的模型尺寸进行。
表 3 表明,在推理准确率方面,FDM-YOLO 在小目标检测中实现了最佳的整体性能。
与表 4 相关的参数主要关注模型的轻量级部署。如表所示,FDM-YOLO 具有最小的参数数量。此外,在推理速度方面,FDM-YOLO 表现出强大的竞争力。总体而言,FDM 实现了高推理精度、快速推理速度和低参数数量的优势,使其成为低计算场景中小目标检测的强大模型。
D. 可视化
在本节中,作者展示了 FDM-YOLOv8 在多个场景下针对低计算场景中的小目标检测的可视化结果,突出了其在 Baseline YOLOv8 模型上的优势。本节中使用的所有图像均来自 VisDrone 数据集的测试集。
在检测目标较少的场景中,特别是在检测简单、常见的小目标结果中,作者依次拼接并比较了原始图像、YOLOV8s 检测后的图像以及 FDM-YOLO 检测后的图像,如图所示。
detected it. 在图像的左侧,YOLOV8s 模型未能检测到右下角的车厢,而 FDM-YOLO 成功识别出它。在图像的中间,有一个非常小的目标,YOLOV8s 未能检测到,但 FDM-YOLO 成功检测到。
至于右侧较简单的图像,有两个微小的汽车目标位于上方中间。这两个目标被 YOLOV8s 检测遗漏;然而,FDMYOLO 模型能够捕捉到这些小型目标的类别和位置信息。
图 8 展示了在密集检测场景下,YOLOV8 与 FDM-YOLO 检测性能的比较。在左侧图像中,可以观察到 YOLOV8 模型未能检测到图像最远端的微小目标。FDM-YOLO 有效地缓解了这一问题,尽管最远端的目标仍然未被检测到。在图像的下半部分,FDM-YOLO 成功检测到了 YOLOV8 未能检测到的行人。至于右侧图像,待检测的目标高度集中。FDM-YOLO 模型的检测密度明显高于 YOLOV8。
对于左侧的图像,直观上可以看出,在夜间条件下,FDM-YOLO(底部)的检测密度超过了 YOLOV8(中部)。图像中央部分有一些行人,两个模型都没有成功检测到,但 FDM-YOLO 模型对行人的整体检测率更好。至于右侧的图像,可以观察到在低光照条件下,YOLOV8 和 FDM-YOLO 都表现出较强的竞争力。然而,YOLOV8 在图像中央的建筑区域产生了误检,而 FDM-YOLO 没有出现如此明显的错误。
5. 结论
在交通场景中检测小型物体面临着显著挑战,这些挑战可能会降低整体检测效果。为了解决这些问题,作者提出了 FDMYOLO,这是一种专门针对航空摄影和以小型物体为主体的交通场景设计的目标检测模型。该模型基于 YOLOv8 构建,专注于小型目标检测,增强了特征融合能力,并提高了精确定位性能,同时没有显著增加额外的计算开销。
FDM-YOLO 模型在各种评估指标上优于广泛使用的模型,如 YOLOv6 和 YOLOv7。与 YOLOv8s 相比,作者的高效模型在显著提高目标检测性能的同时,并未大幅增加计算成本或检测时间。它将召回率从 37.6%提升至 41.3%,将精确率从 49.0%提升至 51.9%,并将 mAP0.5 从 38.0%提升至 42.5%。即使在光照条件差或背景拥挤等具有挑战性的条件下,FDM-YOLO 也能实现更高的 IoU 值,并检测到比 YOLOv8s 更多的微小物体。这些能力使其非常适合用于基于无人机(UAV)的交通监控应用。
参考
[1]. A lightweight model FDM-YOLO for small target improvement based on YOLOv8
END
作者:小书童
来源:集智书童
推荐阅读
- 详解 vLLM 和 SGLang awq dequantize kernel 的魔法
- 从 DeepSeek MoE 专家负载均衡谈起
- 实例特定 Bottleneck+ 非对称解耦 Head,边缘设备精度突破新高度
- SGLang MLA 实现解析
欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区嵌入式AI专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。