前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Yolo11改进策略:Block改进|注意力改进|FCA,自适应细粒度通道注意|即插即用

Yolo11改进策略:Block改进|注意力改进|FCA,自适应细粒度通道注意|即插即用

作者头像
AI浩
发布2025-02-04 21:21:05
发布2025-02-04 21:21:05
9200
代码可运行
举报
文章被收录于专栏:AI智韵
运行总次数:0
代码可运行

论文信息

论文标题:Unsupervised Bidirectional Contrastive Reconstruction and Adaptive Fine-Grained Channel Attention Networks for image dehazing

论文链接:https://www.x-mol.com/paper/1785364146451894272?adv

Github链接:https://gitee.com/lose_recall/ubrfc-net

引言

图像去雾是计算机视觉中的一个重要任务,旨在从模糊或雾霾的图像中恢复出清晰的图像。近年来,无监督学习方法在图像去雾领域取得了显著的进展。然而,现有的一些方法,如CycleGAN和DisentGAN,存在生成器学习混淆和图像内容细节丢失等问题。为了解决这些问题,Hang Sun等人提出了一种新的无监督双向对比重建和自适应细粒度通道注意网络(UBRFC-Net),该方法在多个基准数据集上表现出色。

方法概述

1. 无监督双向对比重建框架(BCRF)

UBRFC-Net的核心是无监督双向对比重建框架(BCRF),其主要目标是建立双向对比重建约束。这一框架不仅避免了CycleGAN中生成器学习的混淆,还增强了对清晰图像的约束能力和无监督去雾网络的重建能力。具体来说,BCRF通过对比学习的方式,利用真实图像和生成图像之间的相似性来优化网络的学习过程,从而提高去雾效果。

2. 自适应细粒度通道注意(FCA)

自适应细粒度通道注意(FCA)是UBRFC-Net的另一个重要组成部分。FCA通过利用相关矩阵来捕捉全局和局部信息之间的相关性,促进它们之间的交互。这种机制使得网络能够在不同粒度上进行特征权重分配,从而提高去雾效果的准确性。与传统的仅使用全连接层的通道注意机制不同,FCA能够更有效地整合全局和局部信息,避免了特征权重分配不准确的问题。

自适应细粒度通道注意(FCA)

自适应细粒度通道注意(FCA)机制是一种新兴的注意力机制,旨在提高深度学习模型在图像处理任务中的性能,尤其是在图像去雾、图像增强和图像分类等领域。FCA机制通过捕捉全局和局部信息之间的交互,优化特征权重分配,从而提升模型的表现。

FCA机制的基本原理

FCA机制的核心思想是通过相关矩阵在不同粒度级别上捕捉全局和局部信息之间的关联。这一机制的设计旨在克服传统通道注意力机制(如SE通道注意力)在特征权重分配时的不足,尤其是缺乏全局信息与局部信息的有效互动。

1. 全局与局部信息的交互

FCA机制通过以下步骤实现全局与局部信息的交互:

  • 全局平均池化:首先,对输入特征图进行全局平均池化,以提取全局特征信息。
  • 一维卷积:接着,使用一维卷积对全局特征进行处理,以捕捉通道间的关系。
  • 特征融合:通过将全局特征与局部特征进行融合,FCA机制能够动态调整特征的权重,从而更好地反映输入图像的细节和上下文信息。
2. 特征权重分配

FCA机制通过自适应的方式分配特征权重,确保模型能够在不同的任务中灵活调整关注的特征。这种自适应性使得FCA机制在处理复杂场景时表现出色,能够有效捕捉细粒度的局部特征,同时保持对全局上下文的理解。

FCA机制的实现

在实现FCA机制时,通常会使用以下组件:

  • 自适应池化层:用于提取全局特征。
  • 卷积层:用于处理和融合特征。
  • 激活函数:如Sigmoid函数,用于生成特征权重。
  • 混合模块:将不同来源的特征进行加权融合,以生成最终的输出特征。

FCA机制的应用

FCA机制在多个计算机视觉任务中表现出色,尤其是在以下领域:

  • 图像去雾:通过增强图像的细节和对比度,FCA机制能够有效改善去雾效果。
  • 图像增强:在低光照条件下,FCA机制能够提升图像的可视性和细节。
  • 图像分类:通过优化特征权重,FCA机制能够提高分类模型的准确性。

自适应细粒度通道注意(FCA)机制通过有效捕捉全局和局部信息的交互,优化了特征权重分配,提升了深度学习模型在图像处理任务中的表现。随着计算机视觉技术的不断发展,FCA机制有望在更多应用场景中发挥重要作用。未来的研究可以进一步探索FCA机制在其他领域的应用潜力,以及与其他深度学习技术的结合。

实验结果

在多个具有挑战性的基准数据集上进行的实验表明,UBRFC-Net在去雾效果上优于现有的无监督图像去雾方法。具体而言,实验结果显示该方法在图像清晰度、细节保留和色彩还原等方面均表现出色。这些结果验证了BCRF和FCA的有效性,表明它们能够有效地解决传统方法中的一些关键问题。

结论

UBRFC-Net通过引入无监督双向对比重建框架和自适应细粒度通道注意机制,成功地克服了现有无监督图像去雾方法的局限性。该方法不仅提高了去雾效果,还为未来的研究提供了新的思路。随着计算机视觉技术的不断发展,UBRFC-Net有望在实际应用中发挥重要作用。

未来工作

未来的研究可以进一步探索如何将UBRFC-Net与其他深度学习技术结合,以提高去雾效果。此外,研究人员还可以考虑在不同的应用场景中测试该方法的适用性,例如在自动驾驶、遥感图像处理等领域。

代码

代码语言:javascript
代码运行次数:0
复制
import math
import torch
from torch import nn
#from torchstat import stat  # 查看网络参数

class Mix(nn.Module):
    def __init__(self, m=-0.80):
        super(Mix, self).__init__()
        w = torch.nn.Parameter(torch.FloatTensor([m]), requires_grad=True)
        w = torch.nn.Parameter(w, requires_grad=True)
        self.w = w
        self.mix_block = nn.Sigmoid()

    def forward(self, fea1, fea2):
        mix_factor = self.mix_block(self.w)
        out = fea1 * mix_factor.expand_as(fea1) + fea2 * (1 - mix_factor.expand_as(fea2))
        return out

class FCAttention(nn.Module):
    def __init__(self,channel,b=1, gamma=2):
        super(FCAttention, self).__init__()
        self.avg_pool = nn.AdaptiveAvgPool2d(1)#全局平均池化
        #一维卷积
        t = int(abs((math.log(channel, 2) + b) / gamma))
        k = t if t % 2 else t + 1
        self.conv1 = nn.Conv1d(1, 1, kernel_size=k, padding=int(k / 2), bias=False)
        self.fc = nn.Conv2d(channel, channel, 1, padding=0, bias=True)
        self.sigmoid = nn.Sigmoid()
        self.mix = Mix()


    def forward(self, input):
        x = self.avg_pool(input)
        x1 = self.conv1(x.squeeze(-1).transpose(-1, -2)).transpose(-1, -2)#(1,64,1)
        x2 = self.fc(x).squeeze(-1).transpose(-1, -2)#(1,1,64)
        out1 = torch.sum(torch.matmul(x1,x2),dim=1).unsqueeze(-1).unsqueeze(-1)#(1,64,1,1)
        #x1 = x1.transpose(-1, -2).unsqueeze(-1)
        out1 = self.sigmoid(out1)
        out2 = torch.sum(torch.matmul(x2.transpose(-1, -2),x1.transpose(-1, -2)),dim=1).unsqueeze(-1).unsqueeze(-1)

        #out2 = self.fc(x)
        out2 = self.sigmoid(out2)
        out = self.mix(out1,out2)
        out = self.conv1(out.squeeze(-1).transpose(-1, -2)).transpose(-1, -2).unsqueeze(-1)
        out = self.sigmoid(out)

        return input*out

if __name__ == '__main__':
    input = torch.rand(1,64,256,256)
    Attention= FCAttention(channel=64)
    y = Attention(input)
    print(y.size())

改进方法

https://jingjing.blog.csdn.net/article/details/145296636?spm=1001.2014.3001.5502

测试结果

代码语言:javascript
代码运行次数:0
复制
YOLO11l summary (fused): 688 layers, 25,671,896 parameters, 0 gradients, 87.0 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95):  20%|██        | 3/15 [00:06<00:27,  2.32s/it]
                   all        230       1412      0.955      0.976       0.99      0.733
                   c17         40        131      0.981      0.992      0.995      0.826
                    c5         19         68       0.99      0.971      0.994      0.841
            helicopter         13         43      0.911      0.956      0.974      0.631
                  c130         20         85      0.986      0.988      0.995      0.697
                   f16         11         57      0.992       0.93      0.972      0.677
                    b2          2          2      0.855          1      0.995      0.697
                 other         13         86      0.893      0.953      0.959       0.53
                   b52         21         70      0.971      0.954      0.983        0.8
                  kc10         12         62      0.994      0.968      0.987      0.834
               command         12         40      0.965          1      0.995      0.807
                   f15         21        123      0.992      0.966      0.995      0.678
                 kc135         24         91      0.989      0.978      0.989      0.708
                   a10          4         27      0.995      0.926      0.967      0.458
                    b1          5         20          1      0.984      0.995       0.64
                   aew          4         25      0.953          1      0.993      0.788
                   f22          3         17      0.982          1      0.995      0.699
                    p3          6        105          1      0.968      0.995      0.792
                    p8          1          1      0.794          1      0.995      0.597
                   f35          5         32      0.949          1      0.995      0.561
                   f18         13        125      0.987      0.984      0.989      0.824
                   v22          5         41      0.993          1      0.995      0.692
                 su-27          5         31      0.987          1      0.995      0.859
                 il-38         10         27      0.961          1      0.994      0.827
                tu-134          1          1      0.807          1      0.995      0.895
                 su-33          1          2          1      0.837      0.995      0.759
                 an-70          1          2      0.859          1      0.995      0.848
                 tu-22          8         98      0.988          1      0.995      0.837
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI智韵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 论文信息
  • 引言
  • 方法概述
    • 1. 无监督双向对比重建框架(BCRF)
    • 2. 自适应细粒度通道注意(FCA)
    • 自适应细粒度通道注意(FCA)
      • FCA机制的基本原理
      • FCA机制的实现
      • FCA机制的应用
  • 实验结果
  • 结论
  • 未来工作
  • 代码
  • 改进方法
  • 测试结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档