【YOLOv8改进- 多模块融合改进】GhostConv + ContextAggregation 幽灵卷积与上下文聚合模块融合改进,助力小目标高效涨点

简介: 【YOLOv8改进- 多模块融合改进】GhostConv + ContextAggregation 幽灵卷积与上下文聚合模块融合改进,助力小目标高效涨点

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

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

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

ContextAggregation介绍

image-20240724150933240

摘要

卷积神经网络(CNNs)在计算机视觉中无处不在,具有众多高效的变体。最近,最初在自然语言处理(NLP)中引入的Transformers越来越多地被应用于计算机视觉领域。尽管早期采用者继续使用CNN骨干网络,但最新的网络是端到端的、无CNN的Transformer解决方案。一个最近令人惊讶的发现表明,基于简单多层感知机(MLP)的解决方案,即使没有传统的卷积或Transformer组件,也能生成有效的视觉表示。虽然CNNs、Transformers和MLP-Mixers可以被认为是完全不同的架构,但我们提供了一个统一的视角,表明它们实际上是神经网络堆栈中聚合空间上下文的一种更普遍的方法的特例。我们提出了CONTAINER(CONText AggregatIon NEtwoRk),这是一个多头上下文聚合的通用构建模块,能够像Transformers一样利用长程交互,同时仍然利用局部卷积操作的归纳偏差,从而实现更快的收敛速度,这通常在CNNs中可见。我们的CONTAINER架构在ImageNet上使用22M参数实现了82.7%的Top-1准确率,相比DeiT-Small提高了2.8个百分点,并且只需200个epoch就能收敛到79.9%的Top-1准确率。与基于Transformer的方法相比,后者在依赖更大输入图像分辨率的下游任务中不具备良好的扩展性,我们的高效网络CONTAINER-LIGHT可以应用于DETR、RetinaNet和Mask-RCNN等目标检测和实例分割网络,获得令人印象深刻的检测mAP分别为38.9、43.8、45.1,和掩码mAP为41.3,相比使用可比计算和参数规模的ResNet-50骨干分别提高了6.6、7.3、6.9和6.6个点。与DeiT在DINO框架上的自监督学习相比,我们的方法也取得了可喜的结果。代码已在GitHub发布。

ContextAggregation文章链接

论文地址:论文地址

代码地址:代码地址

基本原

关键组成部分和机制

  1. 输入表示

    • 输入图像表示为 XRC×H×W,其中 C 是通道数, H×W 是空间维度。该图像被展平为一系列标记 XiRC|i=1,,N,其中 N=H×W
  2. 亲和矩阵

    • 定义亲和矩阵 ARN×N 以表示上下文聚合的邻域。该矩阵决定了信息在特征空间中的传播方式。聚合函数可以表示为:
      Y=(AV)W1+X,

      其中 VRN×C 是通过线性投影 V=XW2X 获得的变换版本。 W1W2 是可学习参数。

  3. 多头聚合

    • 为了增加建模能力,使用多个亲和矩阵,创建几条上下文信息的路径。多头版本的聚合函数为:
      Y=Concat(A1V1,,AMVM)W2+X,

      其中每个 Am (对 m=1,,M)是表示特征空间内不同关系的亲和矩阵,增强了相比单头版本的表示能力。

  4. 不同架构中的上下文聚合

    • Transformers:利用基于投影的query-key对之间相似性动态生成的亲和矩阵。自注意机制可以表示为:
      Amsa=Softmax(QmKTmC/M),

      其中 QmKm 是query和key投影。这种方法捕捉实例级信息,但计算密集。
    • 深度卷积:并行融合空间和通道信息,使用从卷积核导出的静态和稀疏亲和矩阵。这种方法高效且适合捕捉局部上下文。

      • MLP-Mixer:使用转置MLP操作进行上下文聚合,具有密集亲和矩阵:
        Amlp=(WMLP)T,

        其中 WMLP 是可学习参数。
  5. 统一框架:CONTAINER

    • CONTAINER(上下文聚合网络)模块通过可学习参数结合静态和动态亲和矩阵,提供灵活而强大的上下文聚合方法。一般形式为:
      Y=(αA(X)+βA)VW2+X,

      其中 A(X) 是动态亲和矩阵, A 是静态亲和矩阵。 αβ 是可学习参数。

引入GhosConv代码

YOLOv8内置GhosConv,具体代码可见:ultralytics/ultralytics/nn/modules/conv.py

配置yolov8_GhostConvContextAggregation.yaml

ultralytics/ultralytics/cfg/models/v8/yolov8_GhostConvContextAggregation.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect

# Parameters
nc: 80  # number of classes
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
  s: [0.33, 0.50, 1024]  # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients,  28.8 GFLOPs

# YOLOv8.0s backbone
backbone:
  # [from, repeats, module, args]
  - [-1, 1, Conv, [64, 3, 2]]  # 0-P1/2
  - [-1, 1, GhostConv, [128, 3, 2]]  # 1-P2/4
  - [-1, 3, C2f, [128, True]]
  - [-1, 1, GhostConv, [256, 3, 2]]  # 3-P3/8
  - [-1, 6, C2f, [256, True]]
  - [-1, 1, GhostConv, [512, 3, 2]]  # 5-P4/16
  - [-1, 6, C2f, [512, True]]
  - [-1, 1, GhostConv, [1024, 3, 2]]  # 7-P5/32
  - [-1, 3, C2f, [1024, True]]
  - [-1, 1, SPPF, [1024, 5]]  # 9

# YOLOv8.0s head
head:
  - [-1, 1, nn.Upsample, [None, 2, 'nearest']]
  - [[-1, 6], 1, Concat, [1]]  # cat backbone P4
  - [-1, 3, C2f, [512]]  # 12

  - [-1, 1, nn.Upsample, [None, 2, 'nearest']]
  - [[-1, 4], 1, Concat, [1]]  # cat backbone P3
  - [-1, 3, C2f, [256]]  # 15 (P3/8-small)

  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 12], 1, Concat, [1]]  # cat head P4
  - [-1, 3, C2f, [512]]  # 19 (P4/16-medium)

  - [-1, 1, Conv, [512, 3, 2]]
  - [[-1, 9], 1, Concat, [1]]  # cat head P5
  - [-1, 3, C2f, [1024]]  # 23 (P5/32-large)

  - [[15, 18, 21], 1, Detect, [nc]]  # Detect(P3, P4, P5)
AI 代码解读

task与yaml配置

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

目录
打赏
0
1
1
0
95
分享
相关文章
YOLOv8改进 | 主干篇 | RevColV1可逆列网络(特征解耦助力小目标检测)
YOLOv8改进 | 主干篇 | RevColV1可逆列网络(特征解耦助力小目标检测)
361 0
YOLOv8改进 | 主干篇 | RevColV1可逆列网络(特征解耦助力小目标检测)
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
72 9
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
YOLOv11改进策略【注意力机制篇】| ICLR2023 高效计算与全局局部信息融合的 Sea_Attention 模块(含C2PSA二次创新)
YOLOv11改进策略【注意力机制篇】| ICLR2023 高效计算与全局局部信息融合的 Sea_Attention 模块(含C2PSA二次创新)
49 2
YOLOv11改进策略【注意力机制篇】| ICLR2023 高效计算与全局局部信息融合的 Sea_Attention 模块(含C2PSA二次创新)
YOLOv11改进策略【注意力机制篇】| ICCV2023 聚焦线性注意力模块 Focused Linear Attention 聚焦能力与特征多样性双重提升,含二次创新
YOLOv11改进策略【注意力机制篇】| ICCV2023 聚焦线性注意力模块 Focused Linear Attention 聚焦能力与特征多样性双重提升,含二次创新
37 1
YOLOv11改进策略【卷积层】| CVPR-2024 利用DynamicConv 动态卷积 结合C3k2进行二次创新,提高精度
YOLOv11改进策略【卷积层】| CVPR-2024 利用DynamicConv 动态卷积 结合C3k2进行二次创新,提高精度
42 0
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目DWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取分为区域残差化和语义残差化两步,提高了特征提取效率。它引入了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,优化了不同网络阶段的感受野。在Cityscapes和CamVid数据集上的实验表明,DWRSeg在准确性和推理速度之间取得了最佳平衡,达到了72.7%的mIoU,每秒319.5帧。代码和模型已公开。
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2融合DWRSeg二次创新C3k2_DWRSeg:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2融合DWRSDWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取方法分解为区域残差化和语义残差化两步,提高了多尺度信息获取的效率。网络设计了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,分别用于高阶段和低阶段,以充分利用不同感受野的特征图。实验结果表明,DWRSeg在Cityscapes和CamVid数据集上表现出色,以每秒319.5帧的速度在NVIDIA GeForce GTX 1080 Ti上达到72.7%的mIoU,超越了现有方法。代码和模型已公开。
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv8改进 - 特征融合】 GELAN:YOLOV9 通用高效层聚合网络,高效且涨点
YOLOv8专栏探讨了深度学习中信息瓶颈问题,提出可编程梯度信息(PGI)和广义高效层聚合网络(GELAN),改善轻量级模型的信息利用率。GELAN在MS COCO数据集上表现优越,且PGI适用于不同规模的模型,甚至能超越预训练SOTA。[论文](https://arxiv.org/pdf/2402.13616)和[代码](https://github.com/WongKinYiu/yolov9)已开源。核心组件RepNCSPELAN4整合了RepNCSP块和卷积。更多详情及配置参见相关链接。
YOLOv8改进 | 细节创新篇 | iAFF迭代注意力特征融合助力多目标细节涨点
YOLOv8改进 | 细节创新篇 | iAFF迭代注意力特征融合助力多目标细节涨点
698 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等