【YOLOv8改进 - 特征融合NECK】 GIRAFFEDET之GFPN :广义特征金字塔网络,高效地融合多尺度特征

简介: YOLOv8专栏探讨了目标检测的创新改进,提出了GiraffeDet,一种轻量级主干和深度颈部模块结合的高效检测网络。GiraffeDet使用S2D-chain和GFPN,优化多尺度信息交换,提升检测性能。代码和论文可在相关链接找到。GFPN通过跳跃和跨尺度连接增强信息融合。文章还展示了核心组件如SPPV4、Focus和CSPStage的代码实现。

YOLOv8目标检测创新改进与实战案例专栏

专栏目录: YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

专栏链接: YOLOv8基础解析+创新改进+实战案例

介绍

image-20240716101929672

摘要

在传统的目标检测框架中,通常采用从图像识别模型继承的主干网络来提取深层潜在特征,然后通过颈部模块融合这些潜在特征,以捕捉不同尺度的信息。由于目标检测中的分辨率远高于图像识别,主干网络的计算成本往往占据总推理成本的主要部分。这种重型主干设计范式主要是由于将图像识别模型转移到目标检测中时的历史遗留,而不是针对目标检测进行的端到端优化设计。在本研究中,我们表明这种范式确实导致了次优的目标检测模型。为此,我们提出了一种新颖的重型颈部范式,GiraffeDet,这是一种类长颈鹿的高效目标检测网络。GiraffeDet使用极其轻量级的主干网络和非常深且大的颈部模块,鼓励在不同空间尺度和不同潜在语义层次之间进行密集的信息交换。这种设计范式使检测器即使在网络的早期阶段也能以同等优先级处理高级语义信息和低级空间信息,从而在检测任务中更加有效。对多个流行的目标检测基准的数值评估表明,GiraffeDet在各种资源约束下始终优于先前的SOTA模型。源码可在 https://github.com/jyqi/GiraffeDet 获取。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

GiraffeDet 基本原理和组件

GiraffeDet 是一个创新的对象检测框架,其设计宗旨是通过轻量级骨干网络和深度、庞大的颈部模块实现高效的多尺度信息交换,从而提高检测性能。其核心思想包括轻量级的空间到深度链(Space-to-Depth Chain, S2D-chain)和广义特征金字塔网络(Generalized Feature Pyramid Network, GFPN),共同组成了一个“长颈鹿”形网络。

1. 基本原理

  • 轻量级骨干(Lightweight Backbone)

    • GiraffeDet 使用轻量级的空间到深度链(S2D-chain)作为骨干网络,取代传统的CNN骨干,减少了计算成本和域迁移问题【10:7†source】。
    • S2D-chain 包括两个 3x3 卷积层和多个 S2D 块,每个 S2D 块由一个 S2D 层和一个 1x1 卷积组成,通过将空间维度的信息转移到深度维度来实现特征的下采样【10:7†source】。
  • 广义特征金字塔网络(Generalized FPN, GFPN)

    • GFPN 提供了跨层次和跨尺度的特征融合,通过“Queen-Fusion”实现像国际象棋中的王后路径般的高效信息交换【10:7†source】。
    • GFPN 设计中包含跳跃层连接(log2n-link),能够有效传递早期节点到后期节点的信息,并减少冗余【10:13†source】。

2. 组件

  • S2D链

    • 包含初始下采样的 3x3 卷积和多个 S2D 块。S2D 块通过固定间隔的均匀采样和重组特征实现空间维度到深度维度的转换【10:7†source】。
  • GFPN

    • 由多个深度和宽度可调的层组成。每层包括多种尺度和层次的特征融合,使用跳跃层连接和跨尺度连接【10:8†source】【10:13†source】。
    • Queen-Fusion 融合了当前层和相邻层的特征,提供了高效的高低层信息交换【10:17†source】。
  • 预测网络(Prediction Network)

    • 负责生成对象的边界框和分类标签。通过 GFPN 提供的丰富特征进行准确的对象检测【10:7†source】。

3. GiraffeDet 家族

  • 多样化模型
    • 根据 GFPN 的深度和宽度,GiraffeDet 开发了多个适应不同计算资源限制的模型,包括 Giraffe-D7、D11、D14、D16、D25 和 D29【10:8†source】。
    • 实验结果表明,GiraffeDet 在各个 FLOPs 级别上都表现出了较高的准确性和效率【10:10†source】。

GFPN (广义特征金字塔网络) 详解

GFPN 是 GiraffeDet 中的一个关键组件,其设计旨在高效地融合多尺度特征,以提升目标检测性能。GFPN 结合了跳跃层连接(skip-layer connections)和跨尺度连接(cross-scale connections)等创新技术,解决了传统特征金字塔网络(FPN)设计中的局限性,增强了不同特征层次之间的信息交换。

核心代码

class SPPV4(BaseModule):
    # CSP SPP https://github.com/WongKinYiu/CrossStagePartialNetworks
    def __init__(self,
                 in_channels,
                 out_channels,
                 expansion=0.5,
                 pooling_kernel_size=(5, 9, 13),
                 csp_act_cfg=dict(type='Mish'),
                 init_cfg=None,
                 **kwargs):
        super(SPPV4, self).__init__(init_cfg)
        hidden_channels = int(2 * out_channels * expansion)  # hidden channels
        self.conv1 = Conv(
            in_channels, hidden_channels, kernel_size=1, **kwargs)
        self.conv2 = nn.Conv2d(in_channels, hidden_channels, 1, 1, bias=False)
        self.conv3 = Conv(
            hidden_channels, hidden_channels, kernel_size=3, **kwargs)
        self.conv4 = Conv(
            hidden_channels, hidden_channels, kernel_size=1, **kwargs)
        self.maxpools = nn.ModuleList([
            nn.MaxPool2d(kernel_size=x, stride=1, padding=x // 2)
            for x in pooling_kernel_size
        ])
        self.conv5 = Conv(
            4 * hidden_channels, hidden_channels, kernel_size=1, **kwargs)
        self.conv6 = Conv(
            hidden_channels, hidden_channels, kernel_size=3, **kwargs)
        csp_norm_cfg = kwargs.get('norm_cfg', dict(type='BN')).copy()
        self.bn = build_norm_layer(csp_norm_cfg, 2 * hidden_channels)[-1]
        csp_act_cfg_ = csp_act_cfg.copy()
        if csp_act_cfg_['type'] not in [
                'Tanh', 'PReLU', 'Sigmoid', 'HSigmoid', 'Swish'
        ]:
            csp_act_cfg_.setdefault('inplace', True)
        self.csp_act = build_activation_layer(csp_act_cfg_)
        self.conv7 = Conv(
            2 * hidden_channels, out_channels, kernel_size=1, **kwargs)

    def forward(self, x):
        x1 = self.conv4(self.conv3(self.conv1(x)))
        y1 = self.conv6(
            self.conv5(
                torch.cat([x1] + [maxpool(x1) for maxpool in self.maxpools],
                          1)))
        y2 = self.conv2(x)
        return self.conv7(self.csp_act(self.bn(torch.cat((y1, y2), dim=1))))


class Focus(BaseModule):
    # Focus wh information into c-space
    # Implement with ordinary Conv2d with
    # doubled kernel/padding size & stride 2
    def __init__(self,
                 in_channels,
                 out_channels,
                 kernel_size=1,
                 stride=1,
                 groups=1,
                 init_cfg=None,
                 **kwargs):
        super(Focus, self).__init__(init_cfg)
        padding = kernel_size // 2
        kernel_size *= 2
        padding *= 2
        stride *= 2
        self.conv = Conv(
            in_channels,
            out_channels,
            kernel_size=kernel_size,
            stride=stride,
            padding=padding,
            groups=groups,
            **kwargs)

    def forward(self, x):
        return self.conv(x)


class CSPStage(BaseModule):

    def __init__(self,
                 in_channels,
                 out_channels,
                 repetition,
                 init_cfg=None,
                 **kwargs):
        super(CSPStage, self).__init__(init_cfg)
        self.conv_downscale = Conv(
            in_channels, out_channels, kernel_size=3, stride=2, **kwargs)
        self.conv_csp = BottleneckCSP(out_channels, out_channels, repetition,
                                      **kwargs)

    def forward(self, x):
        return self.conv_csp(self.conv_downscale(x))

task与yaml配置

详见: https://blog.csdn.net/shangyanaf/article/details/140459446

相关文章
|
11月前
|
机器学习/深度学习 自然语言处理 数据可视化
基于图神经网络的自然语言处理:融合LangGraph与大型概念模型的情感分析实践
本文探讨了在企业数字化转型中,大型概念模型(LCMs)与图神经网络结合处理非结构化文本数据的技术方案。LCMs突破传统词汇级处理局限,以概念级语义理解为核心,增强情感分析、实体识别和主题建模能力。通过构建基于LangGraph的混合符号-语义处理管道,整合符号方法的结构化优势与语义方法的理解深度,实现精准的文本分析。具体应用中,该架构通过预处理、图构建、嵌入生成及GNN推理等模块,完成客户反馈的情感分类与主题聚类。最终,LangGraph工作流编排确保各模块高效协作,为企业提供可解释性强、业务价值高的分析结果。此技术融合为挖掘非结构化数据价值、支持数据驱动决策提供了创新路径。
610 6
基于图神经网络的自然语言处理:融合LangGraph与大型概念模型的情感分析实践
|
编解码 异构计算
RT-DETR改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
RT-DETR改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
1067 10
RT-DETR改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
|
9月前
|
机器学习/深度学习 数据采集 算法
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性
本文将BSSNN扩展至反向推理任务,即预测X∣y,这种设计使得模型不仅能够预测结果,还能够探索特定结果对应的输入特征组合。在二元分类任务中,这种反向推理能力有助于识别导致正负类结果的关键因素,从而显著提升模型的可解释性和决策支持能力。
625 42
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性
|
机器学习/深度学习 测试技术 网络架构
FANformer:融合傅里叶分析网络的大语言模型基础架构
近期大语言模型(LLM)的基准测试结果显示,OpenAI的GPT-4.5在某些关键评测中表现不如规模较小的模型,如DeepSeek-V3。这引发了对现有LLM架构扩展性的思考。研究人员提出了FANformer架构,通过将傅里叶分析网络整合到Transformer的注意力机制中,显著提升了模型性能。实验表明,FANformer在处理周期性模式和数学推理任务上表现出色,仅用较少参数和训练数据即可超越传统Transformer。这一创新为解决LLM扩展性挑战提供了新方向。
376 5
FANformer:融合傅里叶分析网络的大语言模型基础架构
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【Neck】| ECCV-2024 RCM 矩形自校准模块 优化颈部网络
RT-DETR改进策略【Neck】| ECCV-2024 RCM 矩形自校准模块 优化颈部网络
623 10
RT-DETR改进策略【Neck】| ECCV-2024 RCM 矩形自校准模块 优化颈部网络
|
机器学习/深度学习
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
685 11
|
人工智能 监控 物联网
写在2025 MWC前夕:AI与移动网络融合的“奇点时刻”
2025年MWC前夕,AI与移动网络融合迎来“奇点时刻”。上海东方医院通过“思维链提示”快速诊断罕见病,某金融机构借助AI识别新型欺诈模式,均展示了AI在推理和学习上的飞跃。5G-A时代,低时延、大带宽特性支持端云协同,推动多模态AI感知能力提升,数字孪生技术打通物理与数字世界,助力各行业智能化转型。AI赋能移动网络,实现智能动态节能和优化用户体验,预示着更聪明、绿色、高效的未来。
282 1
|
机器学习/深度学习 人工智能 自然语言处理
揭示Transformer周期建模缺陷!北大提出新型神经网络FAN,填补周期性特征建模能力缺陷
北京大学研究团队发现,Transformer等主流神经网络在周期特征建模方面存在缺陷,如记忆数据模式而非理解内在规律,导致泛化能力受限。为此,团队提出基于傅里叶分析的Fourier Analysis Network(FAN),通过显式建模周期性特征,提升模型的理解和预测能力,减少参数和计算量,并在多个实验中验证其优越性。论文链接:https://arxiv.org/pdf/2410.02675.pdf
382 3
|
负载均衡 数据中心 芯片
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
421 0
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
386 17

热门文章

最新文章