RAM: Residual Attention Module 新的注意力模型

现在注意力模型在计算机视觉领域应用的越来越广泛了。不光在图像分割,其他领域也应用的比较多。RAM这篇文章是应用在图像超分辨率上。这是因为应用到图像超分辨领域的注意力模型大都没有考虑超分辨和其它高层计算机视觉问题的天然不同。
作者提出了一个新的注意力模型,由针对 SR 问题优化的新的通道和空间注意力机制以及将这两者结合起来的融合机制组成

上图就是这种模型的结构图。

在以前的方法中,通道注意力(CA)大多采用平均池化或者最大池化。但是,作者认为超分辨问题旨在恢复出图像的高频成分,因此利用通道的高频特性来学习注意力更加合理。所以,这里采取方差池化,也就是求得每个通道大小为 W×H 的特征图的方差。后续步骤与之前方法类似,通过两层神经网络来预测注意力图。

在空间注意力(SA)中,每个通道代表着一种滤波器,不同的滤波器负责提取图像的不同特征。因此在这里需要区别对待不同的通道,而不是像之前的注意力机制那样直接对通道维度进行压缩。这里,作者采用了深度可分离卷积,针对每个通道的特征分别卷积得到注意力图。

这里有一个简单的利用keras和tensorflow 的实现

 

def RAM(input, channels,reduction_ratio=16, kernel_size=3):
    # pre-attention feature extraction
    x = Conv2D(channels, kernel_size, strides=1, padding='same')(input)
    x = ReLU()(x)
    x = Conv2D(channels, kernel_size, strides=1, padding='same')(x)
    
    # compute attentions
     _, ca = Lambda(lambda x: tf.nn.moments(x, axes=[1, 2]))(input)
    ca = Dense(channels // reduction_ratio)(ca)
    ca = ReLU()(ca)
    ca = Dense(channels)(ca)
  
    sa = DepthwiseConv2D(kernel_size, padding='same')(input)
    fa = add([ca, sa])
    fa = Activation('sigmoid')(fa)

    # apply attention
    x = multiply([x, fa])

    return add([input, x])



整个论文的模型,是由多个RAM还有其他的上采样构成

 

 

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值