首页 > 其他分享 >【YOLOv8改进】MSFN(Multi-Scale Feed-Forward Network):多尺度前馈网络

【YOLOv8改进】MSFN(Multi-Scale Feed-Forward Network):多尺度前馈网络

时间:2024-06-22 09:21:00浏览次数:21  
标签:Feed Multi Scale MSFN features 卷积 尺度 hidden self

摘要

摘要——高光谱图像(HSI)去噪对于高光谱数据的有效分析和解释至关重要。然而,同时建模全局和局部特征以增强HSI去噪的研究却很少。在本文中,我们提出了一种混合卷积和注意力网络(HCANet),该网络结合了卷积神经网络(CNN)和Transformers的优势。为了增强全局和局部特征的建模,我们设计了一个卷积和注意力融合模块,旨在捕捉长距离依赖关系和邻域光谱相关性。此外,为了改进多尺度信息聚合,我们设计了一个多尺度前馈网络,通过在不同尺度上提取特征来增强去噪性能。在主流HSI数据集上的实验结果表明,所提出的HCANet具有合理性和有效性。所提出的模型在去除各种复杂噪声方面表现出色。我们的代码可在https://github.com/summitgao/HCANet获得。

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

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

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

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

这篇文章介绍了一种名为Hybrid Convolutional and Attention Network (HCANet)的模型,用于高光谱图像去噪。该模型结合了卷积神经网络和Transformer的优势,以有效地去除高光谱图像中的噪声。文章提出了注意力机制,用于捕获远程依赖性和邻域光谱相关性,以增强全局和局部特征建模。通过设计卷积和注意力融合模块以及多尺度前馈网络,该模型能够在不同尺度提取特征,从而提高去噪性能。

  1. 结构概述:HCANet采用了U型网络结构,其中包含多个Convolution Attention Mixing(CAMixing)块。每个CAMixing块由两部分组成:卷积和注意力融合模块(CAFM)以及多尺度前馈网络(MSFN)。

  2. CAFM模块:在CAFM模块中,局部分支利用卷积和通道重排来提取局部特征,全局分支则利用注意力机制来捕获长距离依赖关系。这种结合了卷积和注意力的设计使得模型能够综合建模全局和局部特征,从而提高去噪性能。

  3. MSFN模块:MSFN模块用于多尺度信息聚合,通过三个并行的具有不同步长的扩张卷积来实现。这有助于在不同尺度提取特征,有效地抑制多尺度的噪声。

  4. 训练过程:HCANet首先使用3x3x3卷积提取低级特征,然后通过U型网络结构和跳跃连接来生成噪声残差图。最终,通过重建损失和全局梯度正则化器来训练模型,以实现高光谱图像的去噪。

通过结合CAFM模块和MSFN模块,HCANet能够有效地利用卷积和注意力机制,同时在不同尺度提取特征,从而提高高光谱图像去噪的性能和效果。

MSFN

多尺度前馈网络(MSFN)是HCANet模型中的一个关键组成部分,用于在不同尺度上提取特征并增强非线性信息转换。

  1. 结构概述:MSFN旨在通过在不同尺度上提取特征来增强信息聚合。在每个CAMixing块之后,CAFM的输出被送入MSFN,以聚合多尺度特征并增强非线性信息转换。

  2. 特征扩展:MSFN首先使用两个1x1卷积来扩展特征通道,通常使用扩展比率γ=2。这有助于增加特征的维度,以便更好地捕获多尺度信息。

  3. 多尺度特征提取:MSFN通过两个并行路径处理输入特征,并引入门控机制来通过两个路径的特征元素相乘来增强非线性转换。在较低路径中,使用深度卷积进行特征提取;在较高路径中,使用多尺度扩张卷积进行多尺度特征提取。

  4. 特征聚合:MSFN通过多尺度卷积来聚合不同尺度的特征表示,从而提高模型对多尺度信息的利用能力。这有助于模型更好地理解高光谱图像的复杂结构和特征。

yolov8 代码引入

## 多尺度前馈网络 (MSFN)
class FeedForward(nn.Module):
    def __init__(self, dim, ffn_expansion_factor, bias):
        super(FeedForward, self).__init__()

        hidden_features = int(dim * ffn_expansion_factor)

        self.project_in = nn.Conv3d(dim, hidden_features * 3, kernel_size=(1, 1, 1), bias=bias)

        self.dwconv1 = nn.Conv3d(hidden_features, hidden_features, kernel_size=(3, 3, 3), stride=1, dilation=1, padding=1, groups=hidden_features, bias=bias)
        self.dwconv2 = nn.Conv2d(hidden_features, hidden_features, kernel_size=(3, 3), stride=1, dilation=2, padding=2, groups=hidden_features, bias=bias)
        self.dwconv3 = nn.Conv2d(hidden_features, hidden_features, kernel_size=(3, 3), stride=1, dilation=3, padding=3, groups=hidden_features, bias=bias)

        self.project_out = nn.Conv3d(hidden_features, dim, kernel_size=(1, 1, 1), bias=bias)

    def forward(self, x):
        x = x.unsqueeze(2)
        x = self.project_in(x)
        x1, x2, x3 = x.chunk(3, dim=1)
        x1 = self.dwconv1(x1).squeeze(2)
        x2 = self.dwconv2(x2.squeeze(2))
        x3 = self.dwconv3(x3.squeeze(2))
        x = F.gelu(x1) * x2 * x3
        x = x.unsqueeze(2)
        x = self.project_out(x)
        x = x.squeeze(2)
        return x

task与yaml配置

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

标签:Feed,Multi,Scale,MSFN,features,卷积,尺度,hidden,self
From: https://www.cnblogs.com/banxia-frontend/p/18261863

相关文章

  • ImmutableMultiDict 添加字段
    ImmutableMultiDict是Flask中处理HTTP请求中的多值字典,它是不可变的,意味着一旦创建,其内容不能被修改。但是,你可以通过复制并修改它的方式来添加字段。以下是一个如何添加字段到ImmutableMultiDict的例子:fromwerkzeug.datastructuresimportImmutableMultiDict#......
  • springMvc 接收文件 MultipartFile
    使用SpringMVC 的controller中接收文件,如果只是接收一个文件,声明MultipartFile或者指定@RequestParam注解,参数(strReqBody和 images)与前端参数一致即可例:第一种方式publicvoiduploadImg(MultipartFileimg){}第二种public void uploadImg(SringstrReqBody,@Req......
  • 【论文阅读】Co-Occ: Coupling Explicit Feature Fusion With Volume Rendering Regul
    论文:https://arxiv.org/pdf/2404.04561v1代码:https://github.com/Rorisis/Co-Occ?tab=readme-ov-fileQ:这篇论文试图解决什么问题?A:这篇论文提出了一个名为Co-Occ的多模态3D语义占据预测框架,旨在解决自动驾驶领域中的3D语义占据预测问题。具体来说,它关注以下几个挑战:......
  • rebindMultiA:一款功能强大的多重A记录重绑定攻击测试工具
    关于rebindMultiArebindMultiA是一款功能强大的多重A记录重绑定攻击测试工具,该工具可以帮助广大研究人员通过针对目标域名执行多重A记录重绑定攻击,来测试目标域名或地址的安全情况。工具提供了一个rebindmultia.com域名,用来帮助广大研究人员使用该工具来进行测试实践。它会......
  • GSVA: Generalized Segmentation via Multimodal Large Language Models论文阅读笔记
    Motivation&AbsGeneralizedReferringExpressionSegmentation(GRES):相比于原始的RES任务,一个文本描述里可能出现多个需要分割的物体,或者没有需要分割的物体,难点在于建模不同实体之间复杂的空间关系,以及识别不存在的描述。现有的方法如LISA难以处理GRES任务,为此作者提出了GSV......
  • Vitis HLS 学习笔记--Stream Chain Matrix Multiplication
    目录1.简介2.示例解析2.1示例功能说明2.2函数说明 2.2.1 mmult函数2.2.2 mm2s函数2.2.3 s2mm函数2.2.4总示意图3.总结1.简介这是一个包含使用数据流的级联矩阵乘法的内核。该内核启用了ap_ctrl_chain,以展示如何重叠多个内核调用队列以提供更高的性......
  • 论文阅读:UniMS-RAG: Unified Multi-Source RAG for Personalised Dialogue
    UniMS-RAG:UnifiedMulti-SourceRAGforPersonalisedDialogue(https://arxiv.org/abs/2401.13256)https://github.com/jiangnanboy/paper_read_note一.概述本研究探讨如何分解RAG过程,加入多文件检索、记忆和个人信息等元素。大型语言模型(llm)在自然语言任务中表现出色,但......
  • python系列&AI系列:cannot import name ‘ForkProcess‘ from ‘multiprocessing.conte
    cannotimportname‘ForkProcess‘from‘multiprocessing.context‘问题解决cannotimportname‘ForkProcess‘from‘multiprocessing.context‘问题解决问题描述问题原因解决方案cannotimportname‘ForkProcess‘from‘multiprocessing.context‘问......
  • [论文速览] Small-scale proxies for large-scale Transformer training instabilitie
    Pretitle:Small-scaleproxiesforlarge-scaleTransformertraininginstabilitiessource:ICLR2024paper:https://arxiv.org/abs/2309.14322code:ref:小尺度Transformer如何ScaleIdea这篇文章想通过小模型来研究大模型(Transformer)训练不稳定的原因Method(Model)图......
  • AI绘画Stable Diffusion 挽救渣图的神器—Loopback Scaler脚本,你值得拥有!
    大家好,我是向阳今天这篇文章就是围绕着开局的这两张原图开始的。在Stablediffusion甚至当前所有的AI画图工具里面,AI生成内容随机性都是一个很大的问题。我们经常遇到一张图构图不错但是脸崩了,又或者人物形象不错但是背景画得崩了这样的问题。前者我们往往把图扔到图生......