【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. 输入表示

    • 输入图像表示为 $X \in \mathbb{R}^{C \times H \times W}$,其中 $C$ 是通道数, $H \times W$ 是空间维度。该图像被展平为一系列标记 ${X_i \in \mathbb{R}^C | i = 1, \ldots, N}$,其中 $N = H \times W$。
  2. 亲和矩阵

    • 定义亲和矩阵 $A \in \mathbb{R}^{N \times N}$ 以表示上下文聚合的邻域。该矩阵决定了信息在特征空间中的传播方式。聚合函数可以表示为:
      $$ Y = (A V) W_1 + X, $$

      其中 $V \in \mathbb{R}^{N \times C}$ 是通过线性投影 $V = X W_2$ 从 $X$ 获得的变换版本。 $W_1$ 和 $W_2$ 是可学习参数。

  3. 多头聚合

    • 为了增加建模能力,使用多个亲和矩阵,创建几条上下文信息的路径。多头版本的聚合函数为:
      $$ Y = \text{Concat}(A_1 V_1, \ldots, A_M V_M) W_2 + X, $$

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

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

    • Transformers:利用基于投影的query-key对之间相似性动态生成的亲和矩阵。自注意机制可以表示为:
      $$ A_{sa}^m = \text{Softmax}\left(\frac{Q_m K_m^T}{\sqrt{C/M}}\right), $$
      其中 $Q_m$ 和 $K_m$ 是query和key投影。这种方法捕捉实例级信息,但计算密集。
    • 深度卷积:并行融合空间和通道信息,使用从卷积核导出的静态和稀疏亲和矩阵。这种方法高效且适合捕捉局部上下文。

      • MLP-Mixer:使用转置MLP操作进行上下文聚合,具有密集亲和矩阵:
        $$ A_{mlp} = (W_{MLP})^T, $$
        其中 $W_{MLP}$ 是可学习参数。
  5. 统一框架:CONTAINER

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

引入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)

task与yaml配置

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

相关文章
|
4月前
|
机器学习/深度学习 编解码 文字识别
视频生成领域的发展概述:从多级扩散到LLM
2023年是语言模型(llm)和图像生成技术激增的一年,但是视频生成受到的关注相对较少。今年刚到2月份,OpenAI就发布了一个惊人的视频生成模型Sora。虽然它的架构没有披露,但是通过总结现有的视频生成领域可能能对Sora的构架有所理解。
119 0
|
4月前
|
机器学习/深度学习 人工智能 算法
人工智能中数据组合采样、特征层、算法层的讲解(图文详解)
人工智能中数据组合采样、特征层、算法层的讲解(图文详解)
113 0
|
2月前
|
并行计算 数据挖掘 PyTorch
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
|
2月前
|
机器学习/深度学习 大数据 计算机视觉
【YOLOv8改进 - 特征融合】 GELAN:YOLOV9 通用高效层聚合网络,高效且涨点
YOLOv8专栏探讨了深度学习中信息瓶颈问题,提出可编程梯度信息(PGI)和广义高效层聚合网络(GELAN),改善轻量级模型的信息利用率。GELAN在MS COCO数据集上表现优越,且PGI适用于不同规模的模型,甚至能超越预训练SOTA。[论文](https://arxiv.org/pdf/2402.13616)和[代码](https://github.com/WongKinYiu/yolov9)已开源。核心组件RepNCSPELAN4整合了RepNCSP块和卷积。更多详情及配置参见相关链接。
|
2月前
|
测试技术 计算机视觉 网络架构
【YOLOv8改进 - 特征融合】CARAFE:轻量级新型上采样算子,助力细节提升
【YOLOv8改进 - 特征融合】CARAFE:轻量级新型上采样算子,助力细节提升
|
4月前
|
机器学习/深度学习
YOLOv8改进 | 细节创新篇 | iAFF迭代注意力特征融合助力多目标细节涨点
YOLOv8改进 | 细节创新篇 | iAFF迭代注意力特征融合助力多目标细节涨点
452 0
|
4月前
|
计算机视觉 网络架构
【YOLOv8改进】MSBlock : 分层特征融合策略 (论文笔记+引入代码)
YOLO-MS是一个创新的实时目标检测器,通过多尺度构建块(MS-Block)和异构Kernel选择(HKS)协议提升多尺度特征表示能力。它在不依赖预训练权重和大型数据集的情况下,在MS COCO上超越了YOLO-v7和RTMDet,例如YOLO-MS XS版本(4.5M参数,8.7G FLOPs)达到了43%+的AP,比RTMDet高2%+。MS-Block利用分层特征融合和不同大小的卷积,而HKS协议根据网络深度调整Kernel大小,优化多尺度语义信息捕获。此外,YOLO-MS的模块化设计允许其作为即插即用的组件集成到其他YOLO模型中,提升它们的检测性能。
|
4月前
|
机器学习/深度学习 编解码 算法
YOLOv8改进 | 主干网络 | 增加网络结构增强小目标检测能力【独家创新——附结构图】
YOLOv8在小目标检测上存在挑战,因卷积导致信息丢失。本文教程将原网络结构替换为更适合小目标检测的backbone,并提供结构图。通过讲解原理和手把手教学,指导如何修改代码,提供完整代码实现,适合新手实践。文章探讨了大特征图对小目标检测的重要性,如细节保留、定位精度、特征丰富度和上下文信息,并介绍了FPN等方法。YOLOv8流程包括预处理、特征提取、融合和检测。修改后的网络结构增加了上采样和concatenate步骤,以利用更大特征图检测小目标。完整代码和修改后的结构图可在文中链接获取。
|
4月前
|
机器学习/深度学习 算法 PyTorch
【SAHI】即插即用| SAHI操作可有效解决小目标检测过程中的难点!实现涨点
【SAHI】即插即用| SAHI操作可有效解决小目标检测过程中的难点!实现涨点
270 1
|
4月前
|
机器学习/深度学习 计算机视觉 网络架构
【FCN】端到端式语义分割的开篇之作! 从中窥探后续语义分割网络的核心模块(一)
【FCN】端到端式语义分割的开篇之作! 从中窥探后续语义分割网络的核心模块(一)
381 0
【FCN】端到端式语义分割的开篇之作! 从中窥探后续语义分割网络的核心模块(一)
下一篇
DDNS