【YOLOv8改进-SPPF】 Focal Modulation :使用焦点调制模块替代SPPF

简介: YOLOv8专栏介绍了FocalNets,一种取代自注意力的新型模块,提升模型在图像分类、检测和分割任务中的性能。Focal Modulation包括局部聚焦、全局调制和多尺度处理,通过融合CNN和自注意力优点。代码展示了FocalModulation模块的实现。论文和代码已开源。在多个基准测试中,FocalNets超越了Swin等先进模型。

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

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

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

介绍

image-20240716090707285

摘要

我们提出了焦点调制网络(简称FocalNets),在其中完全用焦点调制模块替代了自注意力(SA),用于建模视觉中的标记交互。焦点调制由三个组件组成:(i)焦点上下文化,通过一系列深度卷积层实现,从短距离到长距离编码视觉上下文,(ii)门控聚合,选择性地将上下文聚合到每个查询标记的调制器中,以及(iii)逐元素仿射变换,将调制器注入查询标记。大量实验表明,FocalNets展现了非凡的可解释性(图1),并在图像分类、目标检测和分割任务中以类似的计算成本超越了最先进的SA模型(例如,Swin和Focal Transformers)。具体来说,FocalNets的小型和基础版本在ImageNet-1K上分别达到了82.3%和83.9%的top-1准确率。在ImageNet-22K上以224×224分辨率进行预训练后,微调到224×224和384×384分辨率时分别达到了86.5%和87.3%的top-1准确率。在使用Mask R-CNN进行目标检测时,FocalNet基础版本以1×训练计划超越了Swin对照组2.1个点,并且已经超过了使用3×训练计划的Swin(49.0对48.5)。在使用UPerNet进行语义分割时,FocalNet基础版本在单尺度下超越了Swin 2.4个点,并且在多尺度下也超过了Swin(50.5对49.7)。使用大型FocalNet和Mask2former,我们在ADE20K语义分割任务中达到了58.5的mIoU,并在COCO全景分割任务中达到了57.9的PQ。使用巨型FocalNet和DINO,我们在COCO minival和test-dev上分别达到了64.3和64.4的mAP,超越了诸如Swinv2-G和BEIT-3等基于注意力的大型模型。这些令人鼓舞的结果表明,焦点调制可能正是我们在视觉领域所需要的。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

Focal Modulation机制旨在结合CNNs和自注意力机制的优点,通过在不同的空间尺度上聚焦(Focal)和调制(Modulation)特征来增强模型的表达能力。具体来说,Focal Modulation包含以下几个关键组件:

  1. 局部特征聚焦(Local Focalization):

    • 通过聚焦机制在局部区域内提取特征,类似于卷积操作。这有助于捕捉局部模式和细节。
  2. 全局信息调制(Global Modulation):

    • 在全局范围内对特征进行调制,类似于自注意力机制。这有助于整合全局上下文信息,使模型能够理解更广泛的特征关系。
  3. 多尺度处理(Multi-Scale Processing):

    • 通过在不同尺度上进行特征提取和调制,Focal Modulation能够同时处理图像中的细节和整体结构。这种多尺度特性使得模型在处理复杂场景时更具鲁棒性。

具体实现

Focal Modulation的具体实现可以通过以下步骤进行:

  1. 特征提取:

    • 使用卷积层或其他局部运算层提取初始特征。
  2. 局部聚焦:

    • 对提取的特征进行局部聚焦操作,可以采用池化(Pooling)或注意力机制来实现。
  3. 全局调制:

    • 利用全局上下文信息对局部聚焦后的特征进行调制。这可以通过全局注意力层或其他全局运算层实现。
  4. 多尺度融合:

    • 将不同尺度上的特征进行融合,通过跳跃连接(Skip Connections)或金字塔结构(Pyramid Structure)来整合多尺度信息。

核心代码

class FocalModulation(nn.Module):
    """ 焦点调制模块

    Args:
        dim (int): 输入通道数。
        proj_drop (float, optional): 输出的dropout比率。默认值:0.0
        focal_level (int): 焦点层级的数量
        focal_window (int): 焦点层级1的焦点窗口大小
        focal_factor (int, default=2): 增加焦点窗口的步长
        use_postln (bool, default=False): 是否使用后调制层归一化
    """

    def __init__(self, dim, proj_drop=0., focal_level=2, focal_window=7, focal_factor=2, use_postln=False):
        super().__init__()
        self.dim = dim

        # 焦点调制模块的特定参数
        self.focal_level = focal_level
        self.focal_window = focal_window
        self.focal_factor = focal_factor
        self.use_postln = use_postln

        # 线性层,输出维度为2*dim+(焦点层级数+1)
        self.f = nn.Linear(dim, 2*dim+(self.focal_level+1), bias=True)
        # 1x1卷积层,输入和输出通道数均为dim
        self.h = nn.Conv2d(dim, dim, kernel_size=1, stride=1, padding=0, groups=1, bias=True)

        # GELU激活函数
        self.act = nn.GELU()
        # 线性层,输入和输出维度均为dim
        self.proj = nn.Linear(dim, dim)
        # Dropout层,使用给定的丢弃比率
        self.proj_drop = nn.Dropout(proj_drop)
        # 存储焦点层的列表
        self.focal_layers = nn.ModuleList()

        if self.use_postln:
            # 如果使用后调制层归一化,定义层归一化层
            self.ln = nn.LayerNorm(dim)

        # 构建每个焦点层
        for k in range(self.focal_level):
            # 根据层级计算卷积核大小
            kernel_size = self.focal_factor*k + self.focal_window
            self.focal_layers.append(
                nn.Sequential(
                    nn.Conv2d(dim, dim, kernel_size=kernel_size, stride=1, groups=dim, 
                        padding=kernel_size//2, bias=False),
                    nn.GELU(),
                    )
                )

task与yaml配置

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

相关文章
|
6月前
|
机器学习/深度学习 资源调度 监控
PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample Dropout等 !!
PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample Dropout等 !!
98 0
|
16天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高效多尺度注意力
【YOLOv11改进 - 注意力机制】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高效多尺度注意力.EMA(Efficient Multi-Scale Attention)模块是一种高效多尺度注意力机制,旨在提高计算机视觉任务中的特征表示效果。该模块通过结合通道和空间信息、采用多尺度并行子网络结构以及优化坐标注意力机制,实现了更高效和有效的特征表示。EMA模块在图像分类和目标检测任务中表现出色,使用CIFAR-100、ImageNet-1k、MS COCO和VisDrone2019等数据集进行了广泛测试。
【YOLOv11改进 - 注意力机制】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高效多尺度注意力
|
16天前
|
机器学习/深度学习 计算机视觉
【YOLOv11改进 - 注意力机制】 MSDA(Multi-Scale Dilated Attention):多尺度空洞注意力
【YOLOv11改进 - 注意力机制】 MSDA(Multi-Scale Dilated Attention):多尺度空洞注意力本文介绍了一种高效的视觉变换器——DilateFormer,通过多尺度扩张注意力(MSDA)模块,在保持高性能的同时显著降低计算成本。MSDA通过在滑动窗口内模拟局部和稀疏的块交互,实现了多尺度特征聚合。实验结果显示,DilateFormer在ImageNet-1K分类、COCO对象检测/实例分割和ADE20K语义分割任务上均取得了优异的性能,且计算成本比现有模型减少70%。
【YOLOv11改进 - 注意力机制】 MSDA(Multi-Scale Dilated Attention):多尺度空洞注意力
|
5月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高效多尺度注意力 (论文笔记+引入代码)
YOLO目标检测专栏介绍了创新的多尺度注意力模块EMA,它强化通道和空间信息处理,同时降低计算负担。EMA模块通过通道重塑和并行子网络优化特征表示,增强长距离依赖建模,在保持效率的同时提升模型性能。适用于图像分类和目标检测任务,尤其在YOLOv8中表现出色。代码实现和详细配置可在文中链接找到。
|
5月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】CAFM(Convolution and Attention Fusion Module):卷积和注意力融合模块
**HCANet: 高光谱图像去噪新方法** HCANet是一种结合CNN与Transformer的深度学习模型,专为高光谱图像设计。它使用卷积注意力融合模块(CAFM)捕捉局部和全局特征,并通过多尺度前馈网络(MSFN)增强多尺度信息聚合,提升去噪效果。CAFM包含卷积和注意力分支,整合局部细节与长距离依赖。代码已开源:[GitHub](https://github.com/summitgao/HCANet)。
|
5月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】 ODConv(Omni-Dimensional Dynamic Convolution):全维度动态卷积
ODConv是一种增强型动态卷积方法,通过多维注意力机制在卷积的四个维度上学习互补注意力,提升轻量级CNN准确性和效率。与现有动态卷积不同,ODConv覆盖了空间、输入/输出通道和核数维度。在ImageNet和MS-COCO上,对MobileNetV2|ResNet等模型有显著性能提升,减少参数的同时超越传统方法。代码和论文链接可用。在YOLO系列中,ODConv改进了特征学习,优化了目标检测性能。
|
5月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】MSFN(Multi-Scale Feed-Forward Network):多尺度前馈网络
**HCANet: 高光谱图像去噪新方法**\n混合卷积与注意力网络(Hybrid Convolutional and Attention Network)是针对HSI去噪的创新模型,结合CNN和Transformer,强化全局与局部特征。它使用卷积注意力融合模块捕获长距离依赖和局部光谱相关性,多尺度前馈网络提升多尺度信息聚合。代码可在[GitHub](https://github.com/summitgao/HCANet)获取。
|
6月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 2023 | FocalModulation替换SPPF(精度更高的空间金字塔池化)
YOLOv8改进 | 2023 | FocalModulation替换SPPF(精度更高的空间金字塔池化)
324 2
|
6月前
|
机器学习/深度学习 数据处理 计算机视觉
YOLOv8改进 | 2023 | 将RT-DETR模型AIFI模块和Conv模块结合替换SPPF(全网独家改进)
YOLOv8改进 | 2023 | 将RT-DETR模型AIFI模块和Conv模块结合替换SPPF(全网独家改进)
237 0
|
6月前
|
机器学习/深度学习 数据处理 计算机视觉
YOLOv5改进 | 2023 | 将RT-DETR模型AIFI模块和Conv模块结合替换SPPF(全网独家改进)
YOLOv5改进 | 2023 | 将RT-DETR模型AIFI模块和Conv模块结合替换SPPF(全网独家改进)
302 0