论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration

这篇具有很好参考价值的文章主要介绍了论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:CVPR2022oral 用transformer应用到low-level任务

Restormer: Efficient Transformer for High-Resolution Image Restoration

引言

low-level task 如deblurring\denoising\dehazing等任务多是基于CNN做的,这样的局限性有二:
第一是卷积操作的感受野受限,很难建立起全局依赖,
第二就是卷积操作的卷积核初始化是固定的,而attention的设计可以通过像素之间的关系自适应的调整权重

现有的transformer用于low-level任务最大的瓶颈在于分辨率太大了,自注意力机制的复杂度随着空间分辨率的增加二次增长,现有的一些解决方案有:
1.划成很多个8 * 8的像素小窗口,在这个小窗口内进行应用自注意力
2.化成不重叠的48 * 48的块,块与块之间进行自注意力机制

然而,这样的设计和transformer建立全局依赖的初衷是矛盾的

因此,本文解决了用transformer处理这类问题的计算复杂性,将其计算复杂度降低成和空间分辨率线性相关
改进了SA self-attention部分和feed-forward部分,并提出了一种渐进式patch训练方式来处理基于transformer的图像复原问题

相关工作

(这里不得不感叹看到这位作者介绍相关工作,都有一种被俯视的感觉,之前的一篇论文直接点某某,某某,are good examples, 这次直接建议阅读 NTIRE 挑战报告了)

方法

文章pipeline,类似Unet结构
论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration,论文阅读,论文阅读,transformer,深度学习
SA设计
论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration,论文阅读,论文阅读,transformer,深度学习
这里最大的改动就是把HW * HW的attention变成了通道 * 通道的attention,计算量是降下来了,但是不过是把全局特征通道重组,没有办法建立空间像素关系的依赖,建立像素依赖的部分实际上还是3 * 3的按通道分组卷积Dconv(绿色方框)部分,(看到这样的设计都能有效果也是惊了)
其中,消融实验,可以看到 (a)(b)差别不大,但是MTA加上一个3 * 3的Dconv的提升很大,论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration,论文阅读,论文阅读,transformer,深度学习SA代码

class Attention(nn.Module):
    def __init__(self, dim, num_heads, bias):
        super(Attention, self).__init__()
        self.num_heads = num_heads
        self.temperature = nn.Parameter(torch.ones(num_heads, 1, 1))

        self.qkv = nn.Conv2d(dim, dim*3, kernel_size=1, bias=bias)
        self.qkv_dwconv = nn.Conv2d(dim*3, dim*3, kernel_size=3, stride=1, padding=1, groups=dim*3, bias=bias)
        self.project_out = nn.Conv2d(dim, dim, kernel_size=1, bias=bias)
        


    def forward(self, x):
        b,c,h,w = x.shape

        qkv = self.qkv_dwconv(self.qkv(x))
        q,k,v = qkv.chunk(3, dim=1)   
        
        q = rearrange(q, 'b (head c) h w -> b head c (h w)', head=self.num_heads)
        k = rearrange(k, 'b (head c) h w -> b head c (h w)', head=self.num_heads)
        v = rearrange(v, 'b (head c) h w -> b head c (h w)', head=self.num_heads)

        q = torch.nn.functional.normalize(q, dim=-1)
        k = torch.nn.functional.normalize(k, dim=-1)

        attn = (q @ k.transpose(-2, -1)) * self.temperature
        attn = attn.softmax(dim=-1)

        out = (attn @ v)
        
        out = rearrange(out, 'b head c (h w) -> b (head c) h w', head=self.num_heads, h=h, w=w)

        out = self.project_out(out)
        return out

FN设计
论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration,论文阅读,论文阅读,transformer,深度学习
和传统的Feed-forward部分不同,这里分了两支进行MLP,并且HW依旧保持排列好的状态所以还是可以用3 * 3 分组卷积,下面的分支过了一个GeLU激活函数与上面的分支相乘

消融实验
可以看到 (b)(d)比较,单加上一个gated分支反倒效果不好,但(b)(e)直接上3 * 3的按通道分组卷积效果提升很明显,起作用的还是3 * 3的卷积核来学习空间信息
论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration,论文阅读,论文阅读,transformer,深度学习

FN的设计代码

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.Conv2d(dim, hidden_features*2, kernel_size=1, bias=bias)

        self.dwconv = nn.Conv2d(hidden_features*2, hidden_features*2, kernel_size=3, stride=1, padding=1, groups=hidden_features*2, bias=bias)

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

    def forward(self, x):
        x = self.project_in(x)
        x1, x2 = self.dwconv(x).chunk(2, dim=1)
        x = F.gelu(x1) * x2
        x = self.project_out(x)
        return x

实验

作者做了去雨、去糊、去噪等实验,在各个数据集上效果都挺好的
去糊实验结果
论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration,论文阅读,论文阅读,transformer,深度学习
论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration,论文阅读,论文阅读,transformer,深度学习

总结

虽然这是一篇transformer的文章,但是通道与通道之间的注意力和传统的Transformer也没什么联系了,并且前文花了很多篇幅讲transformer可以建立起 long-range pixel interactions,但是网络设计却仍然还是没有利用到transformer的全局像素依赖的这个属性
(个人疑惑的一个点是在于,既然简单的几层堆叠 [4,6,6,8] 的3*3的空间像素层上的卷积依赖已经能有这么好的效果,long-range pixel interactions对于low-level的任务真的有必要吗…)文章来源地址https://www.toymoban.com/news/detail-745224.html

到了这里,关于论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【论文阅读】Dynamic Split Computing for Efficient Deep Edge Intelligence

    作者:Arian Bakhtiarnia, Nemanja Milošević, Qi Zhang, Dragana Bajović, Alexandros Iosifidis 发表会议: ICML 2022 DyNN Workshop ICASSP 2023 发表单位: ∗DIGIT, Department of Electrical and Computer Engineering, Aarhus University, Denmark. †Faculty of Sciences, University of Novi Sad, Serbia. ‡Faculty of Technical Sciences, University of N

    2024年02月11日
    浏览(48)
  • 论文阅读:TinySAM: Pushing the Envelope for Efficient Segment Anything Model-文章内容阅读

    论文标题: TinySAM: 极致高效的分割一切模型 论文地址:https://arxiv.org/pdf/2312.13789.pdf 代码地址(pytorch):https://github.com/xinghaochen/TinySAM 详细论文解读:TinySAM:极致高效压缩,手机就能实时跑的分割一切模型 - 知乎 (zhihu.com)  目录 文章内容解析  概括 文章的观点 技术创新解

    2024年01月17日
    浏览(35)
  • 【论文阅读】ELA: Efficient Local Attention for Deep Convolutional Neural Networks

    论文链接 :ELA: Efficient Local Attention for Deep Convolutional Neural Networks (arxiv.org) 作者 :Wei Xu, Yi Wan 单位 :兰州大学信息科学与工程学院,青海省物联网重点实验室,青海师范大学 引用 :Xu W, Wan Y. ELA: Efficient Local Attention for Deep Convolutional Neural Networks[J]. arXiv preprint arXiv:2403.01123,

    2024年04月15日
    浏览(37)
  • 【论文阅读笔记】Prompt Tuning for Parameter-efficient Medical Image Segmentation

    Fischer M, Bartler A, Yang B. Prompt tuning for parameter-efficient medical image segmentation[J]. Medical Image Analysis, 2024, 91: 103024. 【开源】 【核心思想】 本文的核心思想是提出了一种用于医学图像分割的参数高效的提示调整(Prompt Tuning)方法。这种方法基于预训练的神经网络,通过插入可学习的

    2024年01月17日
    浏览(39)
  • 论文阅读《Efficient and Explicit Modelling of Image Hierarchies for Image Restoration》

    论文地址:https://openaccess.thecvf.com/content/CVPR2023/papers/Li_Efficient_and_Explicit_Modelling_of_Image_Hierarchies_for_Image_Restoration_CVPR_2023_paper.pdf 源码地址:https://github.com/ofsoundof/GRL-Image-Restoration   图像复原任务旨在从低分辨率的图像(模糊,子采样,噪声污染,JPEG压缩)中恢复高质量的图

    2024年02月03日
    浏览(34)
  • 论文阅读——SMLP4Rec An Efficient All-MLP Architecture for Sequential Recommendations

    SMLP4Rec:用于顺序推荐的高效全 MLP 架构 自注意力模型通过捕获用户-项目交互之间的顺序依赖关系,在顺序推荐系统中实现了最先进的性能。然而,它们依赖于向项目序列添加位置嵌入来保留顺序信息,由于这两种类型的嵌入之间的异质性,这可能会破坏项目嵌入的语义。此

    2024年04月26日
    浏览(23)
  • 论文阅读 | Cross-Attention Transformer for Video Interpolation

    前言:ACCV2022wrokshop用transformer做插帧的文章,q,kv,来自不同的图像 代码:【here】 传统的插帧方法多用光流,但是光流的局限性在于 第一:它中间会算至少两个 cost volumes,它是四维的,计算量非常大 第二:光流不太好处理遮挡(光流空洞)以及运动的边缘(光流不连续)

    2024年02月09日
    浏览(29)
  • 论文阅读:Multimodal Graph Transformer for Multimodal Question Answering

    论文名 :Multimodal Graph Transformer for Multimodal Question Answering 论文链接 尽管 Transformer模型 在视觉和语言任务中取得了成功,但它们经常隐式地从大量数据中学习知识,而不能直接利用结构化的输入数据。另一方面, 结构化学习方法 ,如集成先验信息的图神经网络(gnn),几乎无法

    2024年02月04日
    浏览(27)
  • 【论文阅读笔记】Würstchen: AN EFFICIENT ARCHITECTURE FOR LARGE-SCALETEXT-TO-IMAGE DIFFUSION MODELS

    这篇文章提出了一个高效的用于文本到图像生成模型架构,整体思路比较直白,在不损失图像生成质量的情况下,相比于现有T2I模型(SD1.4,SD2.1等)大大节约了成本。附录部分给了一些有趣的东西,比如FID的鲁棒性 整篇文章还有点疑惑,比如阶段B的训练,使用的模型;节省

    2024年02月21日
    浏览(30)
  • 论文阅读:FCB-SwinV2 Transformer for Polyp Segmentation

    这是对FCBFormer的改进,我的关于FCBFormer的论文阅读笔记:论文阅读FCN-Transformer Feature Fusion for PolypSegmentation-CSDN博客 依然是一个双分支结构,总体结构如下: 其中一个是全卷积分支,一个是Transformer分支。 和FCBFormer不同的是,对两个分支都做了一些修改。 本文没有画FCB分支的

    2024年04月24日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包