【论文阅读】图像修复 - NAFNet

Simple Baselines for Image Restoration

https://arxiv.org/abs/2204.04676

亮点


  1. 网络架构简单,计算量相对较低
  2. 实验证明了网络中的激活函数可用乘法代替或移除
  3. 效果达到了 SOTA,计算量也低

GoPro图像去模糊任务上,较之前 SOTA 的 PSNR 高 0.38db,但计算量降低了 91.6%

请添加图片描述

SIDD图像去噪任务上,较之前 SOTA 的 PSNR 高 0.28db,但计算量降低了 50%

请添加图片描述

如何做


论文中构建简单网络架构可以用下面三点来概括

  • 使用带 short-cut 的 UNet 作为网络的 Backbone
  • 去除 Gated Linear Units 中的 tanh
  • 去除 Channel Attention 中的 Sigmoid,ReLU

UNet

请添加图片描述

为了减少模型每个模块间复杂的交互,网络架构为带 short-cut 的 UNet,同时还引入了 LN 操作,因为在 Transformer 中验证了它能使训练更平滑

Gated Linear Units

多篇相关工作中同时用到了 GLU (Gated Linear Units)并且声尘是有收益,因此 NAFNet 也引入了这个模块,其中 X 为 feature map,f 和 g 为linear transformers,σ 为激活函数
请添加图片描述

但加入 GLU 会增加计算量,大头主要是在激活函数这块,因此论文提出了一个观点,把激活函数去掉的 GELU 还是具备非线性拟合能力的

请添加图片描述

基于此提出了 Simple Gate

class SimpleGate(nn.Module):
    def forward(self, x):
        x1, x2 = x.chunk(2, dim=1)
        return x1 * x2

从计算上来说,x1 和 x2 在训练时随参数更新而变化,说具备非线性拟合能力也说的通,论文实验发现在图像去噪和去模糊任务上分别有 0.08db 和 0.41db 的收益

Channel Attention
请添加图片描述

同样,加入了通道注意力 CA 组件,对效果也是有收益的,但论文这里对传统注意力组件做了简化,没错,也是去除激活函数,同样的也命名为 Simple Channel Attention,经实验,PSNR 值在 SIDD 上有 0.14 db 增益,而在 GoPro 上有 0.24db 增益


# Simplified Channel Attention
self.sca = nn.Sequential(
     nn.AdaptiveAvgPool2d(1),
     nn.Conv2d(in_channels=dw_channel // 2, out_channels=dw_channel // 2, kernel_size=1, padding=0, stride=1,
     groups=1, bias=True),
)

Metric


从计算量,PSNR 两个角度衡量该算法在不同图像处理任务下的效果

请添加图片描述
请添加图片描述

更多对比细节,请看原文

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值