点击下方卡片,关注「集智书童」公众号
视觉特征金字塔在目标检测任务中证明了其有效性和效率。然而,当前的方法往往过于强调层间特征交互,忽视了层内特征调整这一关键方面。经验强调了在增强目标检测任务方面,层内特征交互的重要优势。虽然一些方法试图通过注意力机制或视觉 Transformer 学习压缩的层内特征表示,但它们忽视了全局信息交互的整合。这种忽视导致了增加误检和遗漏目标。
为了解决这一关键问题,本文引入了全局特征金字塔网络(GFPNet),这是对PAFPN的增强版,集成了全局信息以提高目标检测。具体而言,作者利用轻量级的MLP捕获全局特征信息,使用VNC编码器处理这些特征,并采用并行可学习机制从输入图像中提取层内特征。在这个基础上,作者保留了PAFPN方法,以促进层间特征交互,提取跨多个 Level 的丰富特征细节。
与传统的特征金字塔相比,GFPN不仅有效地关注层间特征信息,还捕获了全局特征细节,促进了层内特征交互,并生成了更全面和有影响力的特征表示。GFPN始终优于目标检测 Baseline 。
1 Introduction
目标检测任务是计算机视觉领域中最基本但最具挑战性的研究任务之一。该任务的目标是预测输入图像中每个物体的唯一边界框,该边界框不仅包含物体的位置信息,还包括框内物体的类别信息。近年来,这一任务得到了广泛的发展和应用,例如在自动驾驶和计算机辅助医学诊断等领域。当前主流的目标检测方法大致可以分为两类。一类是基于卷积神经网络(CNN)作为 Backbone 网络的方法,另一类是基于Transformer作为 Backbone 网络的方法。使用CNN作为 Backbone 网络的方法包括两阶段(如Faster R-CNN)方法和单阶段(如SSD和YOLO)方法。由于物体大小的不确定性,单个特征尺度的信息无法满足高精度识别性能的要求。
因此,基于内网特征金字塔(如SSD和FFP)的方法被提出并有效实现了令人满意的结果。这些方法的关键思想是在CNN的顶部引入自下而上和自上而下的信息流动,以生成多尺度特征金字塔,这有助于提高模型对不同大小物体的检测性能。总体而言,这些方法的本质是将不同 Level 的特征图进行组合以在单个网络中处理多尺度信息。不同 Level 特征之间的交互非常重要。Vashishth等人(2020)提出了一种有效的特征交互方法,使图像特征更加全面和丰富,从而使目标检测模型能够更充分、更有意义地学习。相关方法很好地说明了这一点。例如,FPN提出了一种自上而下层间特征交互机制,使浅层特征获得全局上下文信息和深层特征的语义表示。NAS-FPN 试图通过网络架构搜索策略和获得可扩展特征表示。
2 Related Work
Object Detection
目标检测在计算机视觉领域中起着至关重要的作用。Shen等人(2023)和Liu等人(2019)的研究表明,通过识别图像中的物体并为其提供关于其位置和类别的信息,目标检测在计算机视觉中具有基础性的作用。随着卷积神经网络(CNN)的进步,这一领域取得了显著的进展。例如,基于 Anchor 的框架,如Fast R-CNN引入了端到端的检测方法,通过共享卷积特征并集成ROI池化,实现了目标检测。
在Faster R-CNN的基础上,引入了区域建议网络(RPN),提高了局部化和目标检测。 Anchor-Free 点框架引起了人们的关注,因为它们可以直接预测边界框和类别概率,从而实现更快、更高效的检测器,如YOLO 家族和SSD 的方法。YOLOX是一个强大的、直接的方法,通过解耦的检测Head和自适应策略,提高了准确性和推理速度。本文的重点是通过改进 Baseline 模型的性能,使用特征金字塔的内层交互,从而实现更显著的检测结果。
Vision Attention
卷积神经网络(CNN)以其关注局部特征而闻名,但随着计算机视觉的进步,这种局部关注可能无法充分捕捉现代识别系统所需的全球上下文和长期依赖关系。为了解决这个问题,注意力学习机制被提出,用于在图像中确定分配注意力的位置,从而实现对图像特征的更全面关注。非局部操作,例如,使用非局部神经网络直接捕获长程依赖关系,突显了非局部建模在目标检测中的重要性。然而,CNN仍然面临捕捉内在局部表示的挑战,这限制了它们捕获广泛上下文信息的能力。Transformer利用多头自注意力机制,在计算机视觉领域获得了显著的关注和成功,特别是在图像分类方面。一种典型的方法是视觉Transformer(ViT),将图像划分为序列表示,并使用位置编码。这些表示随后由串行Transformer块处理,以提取参数化图像向量作为视觉表示。尽管基于Transformer的模型在各种计算机视觉任务上显示出出色的性能,但它们在目标检测中目前仍然面临计算强度和复杂性的限制。然而,持续的改进已经导致了在不同的计算机视觉任务上具有良好性能的模型的出现。
Feature Pyramid Network
特征金字塔(Feature Pyramid)是目标检测模型中的基本 Neck 网络,可以有效地、高效地用于检测不同大小的物体。SSD是最早使用金字塔特征分级的目标检测方法之一。它通过具有不同空间大小的网络捕获多尺度特征信息,从而提高模型的识别准确性。FPN主要依赖分级的金字塔特征,通过建立从多尺度高级语义特征图的上下文路径和侧向连接构建更高级的特征金字塔。EMRN提出了一种多分辨率特征维数统一模块,用于固定来自不同分辨率图像的维度特征。
在此基础上,PANet提出了一种基于FPN的底层路径,用于在层间共享特征信息,以便高级特征可以在低级特征中获得足够的细节。通过神经架构搜索,NAS-FPN使用空间搜索策略通过特征金字塔连接不同的层,获得可扩展的特征信息。HSGM提出了一种层次相似图模块,以缓解 Backbone 网络的冲突并挖掘判别特征。PAFPN通过增强特征金字塔网络的连接和路径级联,提供更强大的多尺度特征表示,使网络更好地捕捉复杂的语义信息。总之,特征金字塔可以处理目标识别中的多尺度变化问题,而不增加计算开销;提取的特征可以生成多尺度特征表示,包括一些高分辨率特征。在本工作中,作者从层间特征交互和金字塔特征的内层调整的角度进行更好的内层特征调整,并将其与通道注意力机制相结合,以提高模型的性能。
3 Proposed Method
Overview
在深度学习领域,特征金字塔网络(FPN)在目标检测任务中得到广泛应用,以解决检测不同尺度物体的挑战。构建图像特征金字塔的常见方法是通过不同层之间的特征融合,其中自下而上的特征融合逐步将低分辨率特征图上的信息传递到高分辨率特征图上,而自上而下的特征融合则将高分辨率特征图上的上下文信息传递到低分辨率特征图上。在此基础上,Cascade FPN(CAFPN)通过堆叠多个FPN来建立跨不同尺度的多级特征金字塔,提供更多样化和全面的代表。
NAS-FPN通过神经架构搜索方法充分利用多尺度信息。BiFPN通过添加双向连接实现不同 Level 特征图信息的聚合。然而,这些方法忽视了同一层内特征之间的交互。层内特征交互是指通过通道之间的交互来丰富同一层内的特征表示,这也对目标检测任务具有显著影响。由于不同通道的特征通常对应不同的语义信息,引入层内特征交互可以使网络更好地感知物体。
因此,在本工作中,作者提出了一种基于并行特征金字塔网络(PAFPN)的变体模型,该模型在PAFPN的基础上实现了层内特征交互以及全局信息捕获。具体而言,作者为每个特征层引入了一个注意力模块,该模块学习自适应的通道权重以与通道之间的语义信息进行交互。
此外,作者在特征金字塔的顶部添加了一个全局池化层,以进一步提取全局语义信息,帮助网络更好地理解整个图像的语义结构。通过结合层内特征交互和全局信息,作者的模型可以全面、准确地捕获不同尺度的物体,从而在目标检测任务中取得显著性能提升。
总之,这项工作在PAFPN的基础上引入了层内特征交互和全局信息捕获,使得跨层和层内特征之间能够进行有效交互,提取更全面和多样化的特征表示,从而在目标检测任务中实现卓越性能。
PCPBlock
作者提出了PCPBlock,它由轻量级的MLP和编码器VNC组成。轻量级的MLP主要用于捕捉全局信息。由于其较小的参数大小和计算成本,它可以有效地提取高层语义信息,同时保持较低的计算开销。编码器VNC作为一个可学习的模块,在捕捉和交互局部信息的同时,也利用轻量级的MLP捕获到的全局信息。这使得复杂信息能够有效地编码和交互。
在PCPBlock中,轻量级的MLP和编码器VNC的输出特征图在通道维度上进行拼接,作为PCPBlock的最终输出。这种设计使得PCPBlock能够同时融合全局和局部信息,提供更全面和丰富的特征表示。通过集成多个PCPBlock,可以构建更强大的网络结构,增强特征表示和学习能力。
为了进一步提高特征交互的有效性,的实现包括一个名为stalk模块的额外模块,它位于每个层特征图和PCPBlock之间。与直接在原始特征图上实现相比,这种策略更具灵活性,因为stalk模块可以对特征进行平滑处理以提高质量,从而促进后续特征交互。
stalk模块包括可分离卷积,包括3×3的逐点卷积和1×1的逐点卷积。这种设计确保了输入和输出通道数的一致性,而可分离卷积的有效使用有效地减少了网络参数,增加了计算能力,并通过批标准化和激活层进一步增强特征表示。具体过程可以表示为:
其中X是PCPBlock的输出,表示特征图在通道维度上的拼接,和分别表示轻量级MLP和可学习编码器的输出,而是stalk模块的输出,如下所示:
这里,是PCPBlock的输出,表示特征图在通道维度上的拼接,和分别表示轻量级MLP和可学习编码器的输出,而是stalk模块的输出。
请注意,这里的代码可能需要根据您的具体实现进行修改。
其中,SepConv代表可分离卷积,由33的DWConv和11的PWConv组成,BN代表批量归一化,而RELU是激活函数。
BAM
BAM提出了一种简单而有效的注意力模块,该模块广泛应用于深度学习,以提高模型在图像或特征图上的学习能力。通过引入注意力机制,BAM模块可以在通道和空间维度上对特征进行加权,使网络能够更准确地关注重要信息并提取更代表性的特征表示。在BAM模块中,输入经过一个11卷积操作后,被分为两个非重叠分支:通道注意力分支和空间注意力分支。通道注意力分支主要用于建模不同通道之间的相关性。通过全局平均池化操作,将特征图压缩为通道维度上的一个通道向量。
接下来,将通道向量通过两个全连接层(包括ReLU激活函数)处理,以获得每个通道的权重。这些权重表示特定上下文环境中每个通道的重要性,从而实现特征图在空间维度上的注意力映射。通过使用33卷积核从输入中提取特征,以获得空间特征图。然后,将空间特征图通过两个全连接层处理,以获得每个空间位置的权重。这些权重表示特定上下文环境中不同位置的重要性,从而实现空间关系的注意力映射。
最后,将通道注意力和空间注意力分支的权重相乘,以获得最终的注意力图,然后将注意力图与原始输入相乘,以实现特征加权。这样,BAM模块可以使得网络能够更关注图像或特征图的重要区域,并提取更具判别性的特征表示。
Loss Function
在的实验中,与使用BCE Loss相比,提出使用Focal Loss作为分类分支的损失函数。Focal Loss是一种用于类别不平衡问题的损失函数。与BCE Loss相比,它更有效地处理难以分类的样本,并提高模型在几个类别上的预测准确性。类别不平衡是指数据集中每个类别样本数存在显著差异的情况。
在这种情况下,网络倾向于学习预测多数类别,而忽略少数类别,导致模型在少数类别上的预测能力下降。通过引入一个平衡因子,Focal Loss可以有效地抑制易分类样本的权重,同时增加难以分类样本的权重,从而更关注几个类别并弥补类别不平衡造成的性能损失。
具体而言,Focal Loss引入了一个可调整的超参数gamma来调整易分类和难以分类样本的权重。对于易于分类且具有较大梯度的样本,使用gamma参数可以减少它们的权重,使它们对损失的贡献更小。对于难以分类的样本,梯度较小,可以使用gamma参数增加其权重,使其对损失的贡献更大。这样,Focal Loss可以更好地处理类别不平衡的样本,并提高模型在几个类别上的预测准确性。
对来说,将Focal Loss作为分类分支的损失函数是一个更好的选择。在目标检测任务中,通常存在明显的类别不平衡问题,Focal Loss可以更好地处理这个问题,并提高模型在几个类别上的性能。因此,通过使用Focal Loss,的实验在解决类别不平衡问题和提高模型分类准确性方面取得了更好的结果。
4 Experiment and Analysis
为了验证所提出的GFPN方法的优势,作者在大规模数据集上与多种最先进的算法进行了比较,这些算法包括PCP。
Datasets and Evaluation Metrics
在本工作中,PCP数据集被用来验证所提出的GFPN方法的优势。PCP包含5种类型的场景目标,其中训练集和测试集分别包含46k和2k张图像。
在实验中,为了进行公平的比较,所有训练图像都被重新缩放到一个固定的大小640640。关于数据增强,使用了YOLOX在实验中最初使用的Mosaic和MixUp。同时,的实验采用了finetune方法,选择在COCO上使用YOLOX-S训练的权重进行finetune,并在最后5个epoch中关闭数据增强策略。
评价指标。在实验中,主要遵循了常用的目标检测评价指标平均准确性(AP),包括AP50,AP75,AP(小),AP(中)和AP(大)。
Baseline
在实验中,选择YOLOX作为基准模型。YOLOX是目标检测领域的一种先进模型,它使用一系列先进技术来提高目标检测性能。YOLOX的结构包括CSPDarkNet作为 Backbone 网络,PAFPN作为颈网络,以及解耦头网络作为目标检测Head。同时,YOLOX根据网络的宽度和深度生成了三种不同尺度的网络:YOLOX-S,YOLOX-M和YOLOX-L。
CSPDarkNet是YOLOX的 Backbone 网络,它使用CSP(交叉阶段部分)连接模块来实现更好的特征表示和梯度,通过将输入特征图分成两分支,并在分支之间重新组织特征。PAFPN是YOLOX的颈网络,它引入了特征金字塔结构,并通过路径聚合将不同尺度的特征信息融合在一起。PAFPN从 Backbone 网络的不同 Level 提取多尺度特征图,并通过上采样和特征融合生成具有丰富语义信息的特征图。这种多尺度特征融合可以提高模型对不同目标尺度的检测能力,并增强模型在目标检测任务中的性能。
解耦头网络是YOLOX的目标检测Head,它包括分类、回归和obj分支。分类分支用于预测目标类别的概率分布,回归分支用于预测目标的定位和大小,obj分支用于预测目标的存在分数。解耦设计使得YOLOX可以平衡目标类别分类和局部回归任务,并有效地执行目标检测。通过生成三种不同尺度的网络(YOLOX-S,YOLOX-M和YOLOX-L),YOLOX可以根据网络的宽度和深度适应不同的目标检测场景。
较小的网络尺度适合轻量级目标检测,具有更快的推理速度,而较大的网络尺度适合更复杂的目标检测任务,具有更高的检测精度。总之,YOLOX是一种具有CSPDarkNet Backbone 网络、PAFPN颈网络和解耦头网络的强大目标检测模型。通过生成各种不同尺度的网络,YOLOX可以适应不同的目标检测需求,并在各种场景中实现出色的检测性能。
Implementation Details
在实验中,将图像重新缩放到640640。这意味着模型输入的图像被重新缩放,以匹配模型的输入尺寸。将图像缩放到适当的尺寸可以确保模型更准确、有效地学习图像的视觉特征。在训练期间,使用了随机梯度下降(SGD)作为优化器。SGD是深度学习中常用的优化算法之一。它通过计算损失函数来调整模型参数以最小化损失。SGD随机选择每个训练批次中的少量样本(即随机梯度),并使用这些样本计算梯度并更新模型参数。通过不断迭代训练过程,SGD可以逐渐优化模型的性能。
此外,设定了一个学习率的范围。学习率控制每次迭代中参数更新的步长。较低的学习率可以使训练更稳定,减少参数更新的幅度,但可能导致训练速度较慢。较高的学习率可以加快收敛速度,但可能导致训练过程不稳定或无法收敛。通过将学习率设置在0.0005到0.001的范围内,可以根据实际情况调整以找到最佳学习率值以实现最佳训练效果。
Comparison with State-of-the-art Methods
根据表1中的数据分析,作者将GFPN与多个最先进的单阶段和多阶段检测器进行了比较。通过比较实验数据,作者可以得出GFPN在各种性能指标上取得了最佳结果。它的性能优于其他单阶段和多阶段检测器,包括但不限于mAP,AP50和AP75。同时,GFPN在AP(Medium)上有了显著提高。这表明GFPN在目标检测任务上具有显著优势,其性能领先于其他先进检测器。
Ablation Studies and Analysis
表格中展示的比较结果表明,所提出的GFPN方法优于许多最先进的单阶段和多阶段检测器。以下从多个方面全面分析了提出的目标检测方法的表现,并探讨了其优越性的逻辑。
-
PCPBlock的影响根据表格2中的数据,作者可以观察到使用PCPBlock实现全局信息和局部信息之间的交互显著提高了模型的性能。具体而言,模型在mAP指标上的指数增加了1.5%,这意味着在使用了PCPBlock之后,模型在目标检测任务中可以更准确地定位和分类目标。此外,模型的APM指标也增加了2.9%,进一步证明了PCPBlock的有效性。PCPBlock的优势在于它可以同时捕获全局信息和局部信息,并实现它们之间的交互。通过轻量级的MLP,PCPBlock能够更好地捕获全局特征信息,这对于理解整个场景和准确检测目标非常重要。
同时,编码器VNC也可以保留局部信息并实现信息交互,使其在特征表示方面更加丰富和灵活。全局和局部信息的交互可以提高目标检测任务的表现,并使模型更好地适应不同的场景和目标。总的来说,使用PCPBlock显著提高了模型的性能。它可以捕获丰富的全局信息并交互局部信息,从而提高目标检测的准确性和精度。这些结果表明PCPBlock是一个有效模块,可以集成到目标检测模型中以提高其性能并解决误检和漏检问题。
-
BAM模块的影响根据表2中的数据,可以得出结论,使用BAM模块可以带来一定的性能改进。具体而言,在添加了BAM模块之后,模型在mAP指标上的指数增加了0.3%,这意味着模型在目标检测精度上表现更好。同时,模型的APM指标也增加了0.7%,这意味着BAM模块增强了模型学习特征的能力,使模型更好地理解和解释输入特征。BAM模块的优势在于它可以增强模型表达特征的能力并提供更丰富的信息,当特征交互时。
通过利用全局上下文信息和特征通道之间的相互依赖,BAM模块实现了特征增强和改进。此外,BAM模块可以自适应地调整响应值的权重以适应不同的场景和目标,从而提高模型的适应性和泛化能力。
-
PCPBlock模块的消融研究根据表3中的数据分析,可以得出结论,PCPBlock模块中的每个模块在提高模型性能方面都发挥着不同的作用。具体而言,从单个模块的角度来看, stalk模块在mAP指标上的指数增加了0.9%,这表明stalk模块在捕获全局信息和特征学习方面发挥着重要作用。
LMLP模块在AP(Medium)指标上的改进更加突出,增加了1.6%,这表明LMLP模块在处理局部信息和细粒度特征方面具有优势。同时,vnc模块充当桥梁,有机地将stalk模块的全局信息和LMLP模块的局部信息结合在一起,从而进一步提高模型的性能。
-
BAM模块的消融研究根据表格4中的数据分析,作者可以得出结论,在比较BAM模块和CBAM模块时,BAM模块在mAP指标和AP(Medium)指标上表现更好。具体而言,与CBAM模块相比,BAM模块在mAP指标上提高了0.2%,在AP(Medium)指标上提高了0.1%。这证明了BAM模块在结合局部信息和全局信息方面具有优势。根据表格4中的数据,发现如果BAM模块的卷积部分使用深度可分离卷积(DWConv),其性能将得到提高。深度可分离卷积是一种将标准卷积分解为深度卷积和点卷积的技术,可以减少参数数量并加速计算,同时提高模型性能到一定程度。
因此,通过使用深度可分离卷积作为BAM模块的卷积部分,可以有效提高模块性能。通过使用自适应注意力机制,BAM模块可以有效地融合全局信息和局部信息,提高特征表示能力,并在计算机视觉任务(如目标检测)中具有很好的应用价值。CBAM模块在BAM模块中添加了一个卷积操作。然而,从实验结果来看,CBAM模块的性能并不如BAM模块。这可能是由于CBAM模块在使用卷积操作时对特征维度的
Visualization
根据 Baseline 和作者的方法以及图4中显示的标注框比较,作者可以得出以下观察结果:
首先,如图4的第一行所示, Baseline 中存在明显的错误检测案例,而在作者的方法中,小狗被成功检测并具有高置信度,这充分说明了作者的模型在减少误检方面取得了显著改进。由于误检通常是目标检测任务中最严重的问题之一,作者的模型在这方面取得的改进对于实际应用具有很大的意义。
其次,图4的第二行显示, Baseline 并未完全检测到所有人,但作者的方法不仅检测到了所有人,而且对 Baseline 检测到的人具有更高的置信度,这表明作者的模型在降低假阳性率方面也取得了显著改进。假阳性率是另一个重要的问题,它会导致不必要的计算和处理开销,并可能影响系统的有效性和准确性。
最后,图4的第三行显示, Baseline 错过了人类和狗,但作者的方法成功检测了人类和狗,具有高置信度,这表明作者的模型没有检测到某些类别。这些缺陷显示了作者的模型的可靠性和适用性。总之,这些可视化结果直观地展示了和解释了作者的模型的性能,并为作者进一步研究和设计优化目标检测模型提供了有益的启示。
5 Conclusion
在这项研究中,GFPN,一种用于目标检测的增强方法,通过优化PAFPN架构来解决假检测和遗漏目标的问题。它包括PCPBlock和BAM模块,捕获全局特征并改善学习机制。GFPN始终优于基准测试,提取多尺度特征对于精确检测至关重要。GFPN的PCPBlock有效地捕获全局特征,而BAM模块则增强了注意学习的效果以获得更好的目标对比。通过实验,GFPN始终超越现有方法,提供了一种可靠的解决方案,用于在目标检测任务中对抗假检测和遗漏目标。
未来工作: 作者将进一步优化PCPBlock和BAM模块的设计,以提高全局特征的捕获能力和特征交互效果。此外,GFPN也可以考虑用于其他计算机视觉任务,如实例分割和视频目标跟踪,以验证其在不同场景和数据集上的灵活性和可扩展性。
参考
[1].Global Feature Pyramid Network
扫码加入👉「集智书童」交流群
(备注:方向+学校/公司+昵称)
想要了解更多:
前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF」
行业技术方案👉「AI安防、AI医疗、AI自动驾驶」AI模型部署落地实战👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」
欢迎扫描上方二维码,加入「集智书童-知识星球」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!
免责声明凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
点击下方“阅读原文”,了解更多AI学习路上的「武功秘籍」