2023-Efficient and Explicit Modelling of Image Hierarchies for Image Restoration(RGL)

基本信息

作者: Yawei Li1 Yuchen Fan2 Xiaoyu Xiang2 Denis Demandolx2 Rakesh Ranjan2 Radu Timofte1;3 Luc Van Gool1;4
期刊: CVPR
引用: *
摘要: 本文的目的是提出一种机制,在全局、区域和局部范围内有效和明确地建立图像层次模型,用于图像修复。为了实现这一目标,我们首先分析了自然图像的两个重要属性,包括跨尺度相似性和各向异性的图像特征。受此启发,我们提出了Anchored Stripe Attention,它在自我注意的空间和时间复杂性以及区域范围以外的建模能力之间实现了良好的平衡。然后,我们提出了一个新的网络结构GRL,通过Anchored Stripe Attention、Window Attention和Channel Attention增强卷积,在全局、区域和局部范围内明确地模拟图像层次。最后,提议的网络被应用于7种图像修复类型,涵盖真实和合成设置。所提出的方法为其中的几个类型设定了新的技术状态。

1.简介

自然图像包含全局、区域和局部范围的特征层次,深度神经网络可以利用这些特征进行图像修复。

  • 首先,局部范围涵盖几个像素的跨度,典型的特征是边缘和局部颜色。为了对这些局部特征进行建模,我们使用了具有小核(如3x3)的卷积神经网络(CNNs)
  • 第二,区域范围的特点是有几十个像素的窗口。这个范围的像素可以覆盖小物体和大物体的组成部分。由于范围较大,用大核CNN对区域特征(一致性、相似性)进行明确建模,在参数和计算上都是低效的。相反,具有窗口关注机制的变换器很适合这项任务。
  • 第三,除了局部和区域性的,一些特征具有全局性的跨度,包括但不限于对称性、多尺度图案重复、同尺度纹理相似性,以及大型物体和内容的结构相似性和一致性。为了在这个范围内建立特征模型,需要对全局图像进行理解

全局范围特征的挑战:

  • 首先,现有的基于卷积和窗口关注的图像修复网络无法通过使用单一的计算模块明确地捕捉长距离的依赖性。虽然在一些工作中使用了非局部操作,但它们要么在网络中被稀疏地使用,要么被应用于小的图像裁剪。因此,全局性的图像分析仍然主要是通过重复的计算模块对特征进行渐进式的传播。
  • 其次,当今图像的分辨率不断提高,对长距离依赖性建模提出了挑战。高图像分辨率导致了与成对像素比较和相似性搜索相关的计算负担

本文回答的主要问题:

  1. 如何有效地对高维图像中的全局范围特征进行建模,用于图像修复;(第3章)
  2. 如何通过单一计算模块对图像层次(局部、区域、全局)进行明确建模,用于高维图像修复;(第4章)
  3. 这种联合建模如何能使不同的图像修复任务获得统一的性能改进。(第5章)

本文的贡献:

  1. 提出了锚定条纹的自我注意,以实现超越区域范围的高效依赖性建模。受自然图像的跨尺度相似性各向异性的图像特征启发。
  2. 提出了一个新的Transformer网络,在一个单一的计算模块中明确地模拟全局、区域和局部范围的依赖性。图像的分层建模是通过平行计算所提出的锚定条纹自我注意、窗口自我注意和通道注意增强卷积来实现的。
  3. 提出的GRL变换器被应用于各种图像修复任务。

2.相关工作

  1. 用于局部范围建模的卷积:在图像上滑动内核,检测与可学习内核类似的局部模式。通过堆叠多个卷积层,CNN的感受野被逐渐扩大,丰富的图像特征被捕获。
  2. 非局部(区域)与全局预设:非局部操作、自注意力模拟全局依赖关系
  3. 区域自我注意力:Swin Transformer

3.动机

3.1.依赖性建模的自关注

自我关注善于明确地建模长距离的依赖关系,它有利于信息在建模的依赖关系中的传播。这种操作允许一个标记与所有其他标记进行比较。输出标记被计算为基于相似性比较的所有标记的加权和:

Q=WQX,K=WKX,V=WVX。WQ,WK,WV均为dxd,X,Y为dxN,N和d分别表示token的数量和维度。
自注意力的时间(N
N)、空间(N
N
d)复杂度随token的数量增加呈四级增长,自我注意很容易成为计算的瓶颈。为了克服这个问题,我们建议在一个窗口内应用自我注意。这样一来,参与自我注意的标记数量就会大大减少,计算负担也会减轻。

窗口自我关注的问题是,由于窗口尺寸小,操作的建模能力被限制在区域范围内。另一方面,即使窗口大小略有增加,也会导致更好的图像修复。因此,可以推测,对区域范围以外的依赖关系进行建模对图像修复仍然很重要。因此,如何在控制计算预算的情况下保持长距离依赖关系建模的能力,仍有待研究。

3.2.动机一:跨尺度的相似性

即跨尺度相似性:图像的基本结构,如线条和边缘,在不同比例系数的图像版本中保持不变。无论该像素是来自高分辨率图像还是缩小的版本,该像素与高分辨率图像之间的热图都显示了图像的基本结构。

的集合是图像特征图中信息的总结,具有较低的维度。锚点不是直接在查询和键之间进行相似性比较,而是作为相似性比较的一个中间环节。从形式上看,锚定的自我关注被提出来了,如下式所示

A是锚,Me是query与锚点的注意力图,Md是锚点和Key之间的注意图。
由于锚的数量远远小于其他token的数量,因此得到的两个注意图Me和Md的大小远远小于公式(1)中的原始注意图M。然后从右手计算出公式(2)中的矩阵乘法。首先对锚点和Key进行自我注意。注意力图谱Md将标记V提炼成一个中间特征Z,然后在query和锚点之间进行自我注意。第二个注意力图谱Me扩大了特征Z的大小并恢复了V中的信息。而空间复杂度则降低到O(NM)

3.3.动机二:各向异性的图像特征

对于图像修复任务,剩下的项N是图像的宽度和高度的乘法。因此,公式(2)中的锚定自关注的复杂度仍然可能由于大项N而无法承受,因此,最好进一步降低锚定自关注的复杂度。
条纹注意机制。所提出的条纹关注机制由四种模式组成,包括水平条纹、垂直条纹、移位的水平条纹和移位的垂直条纹。水平条纹和垂直条纹的关注机制可以在整个变压器网络中交替使用。通过这种方式,在保持全局范围建模能力和控制全局自我注意的计算复杂性之间进行了权衡。因此,结合锚的概念,我们提出了锚式条纹自我注意。对于这种注意机制,有效的自我注意是在垂直和水平条纹内借助于引入的锚点进行的。

3.4.讨论

  • 注意力图谱的低秩性:原始注意图M被分解成等级不大于M的小注意图Md和Me。而这里的实质是在不计算原始注意图的情况下提供低等级的近似。对于锚定自我注意的成功,必须保证以锚定为中介,近似的注意图与原始注意图相似。
  • 度量和相似性的传播:在提议的锚定自我关注中,首先将Query和Key与锚进行比较,然后计算Query-Key的相似性。因此,这个计算过程需要将Query-锚和Key-锚的相似性传播给Query-Key对。而相似性的传播与公制空间中的三角形不等式有关。
    尽管点积并不严格遵守三角形不等式,但它仍然保证了更好的图像修复效果。因此,我们可以根据经验得出结论,在目前的环境下,点积对于相似性传播是足够的。

4.模型框架

  • Transformer层:Transformer层提供全局、区域和局部范围内的分层图像建模能力的关键组件。该层首先通过并行的自我注意模块通道注意增强的卷积来处理输入特征图。卷积分支的作用是捕捉输入特征图中的局部结构。另一方面,自我注意模块包含Swin变换器V2中提出的窗口注意和本文中提出的锚定条纹注意。特征图沿通道维度被平均分割,并在两个注意力模块内进行平行处理后再次沿通道维度串联起来。窗口注意提供了捕捉区域范围依赖性的机制。然后,由卷积模块和注意力模块输出的特征图被添加到输入特征图中,由以下MLP模块处理。
  • Anchored Stripe Attention:锚定条纹的自我注意。所提出的锚定条纹注意力的操作是根据公式(2)进行的,并在图6c中得到了可视化。不同特征的尺寸也被显示出来。Q,K,V的三联体是由普通线性投影得出的。为了将信息总结为锚点,锚点投影被实现为一个平均集合层,然后是一个线性投影。在锚点投影之后,图像特征图的分辨率沿两个方向下调了一个系数s。如图6所示,两个注意力图Md和Me发挥了与原始注意力图M类似的作用,但空间和时间复杂度较低。

5.实验结果

  1. 真实图像修复:单幅图像运动去模糊,离焦去模糊
  2. 基于合成数据的图像修复:图像去噪,单幅图像SR,JPEG压缩伪影去除,去马赛克
  3. 基于数据合成的真实图像修复
    GRL-Tiny,GRL-Small,GRL-Base

5.1.真实图像修复-图像去模糊(Image deblurring)

  • 单幅图像运动去模糊
  • 离焦图像去模糊

5.2.基于合成数据的图像修复(Image restoration based on synthetic data)

  • 图像去噪
  • JPEG伪影去除
  • 去马赛克
  • 图像超分辨
    1.GRL-T在轻量级网络中优于卷积和基于自我注意的网络,包括DBPN、SwinIR和EDT。
    2.GRL-B为准确的图像SR设定了新的技术状态。
    3.GRL-S在网络复杂性和SR图像质量之间取得了良好的平衡。

5.3.基于数据合成的真实图像修复(Real image restoration based on data synthesis)

5.4.消融性研究

  • 相似性比较方法的影响:如第3.4节所述,为了从理论上保证相似性的传播,应该使用一个数学指标而不是点积。为了研究两者之间的区别,用两种操作对图像修复进行了比较, 从表中可以看出,点积与度量相比是非常有竞争力的,在一些设置中它超过了距离度量。考虑到这一点,点积仍被用于其他实验中
  • 锚点投影的影响:锚点投影操作有助于总结特征图中的信息。 考虑到精度性能和参数预算,最终采用了Avgpool+线性投影。此外,窗口和条纹尺寸的影响也在表11中。增加窗口和锚的大小可以使Urban100和Manga109的性能得到明显改善

6.结论

本文提出了GRL,一个具有高效和明确的分层建模能力的网络,用于图像修复。所提出的网络主要受到两个图像特性的启发,包括跨尺度相似性和各向异性的图像特征。在此基础上,我们提出了高效的锚定条纹自我注意模块,用于长距离依赖性建模。然后提出了一个用于图像修复的多功能网络结构。提出的网络可以在全局、区域和局部范围内对图像层次进行建模。由于先进的计算机制,所提出的网络架构在各种图像修复任务中实现了最先进的性能。

代码实现

https://github.com/ofsoundof/GRL-Image-Restoration

个人总结

本文的核心是Transformer结构,包括应对全局特征的Anchor Stripe,应对区域特征的Swin和应对局部特征的CA,整体使用R in R结构,超分效果达到了目前的SOTA。

【图像超分辨率重建】——GRL论文精读笔记相关推荐

  1. 学习笔记之——基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  2. 基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  3. 图像超分辨率重建之SRCNN

    新版本请访问简书链接:https://www.jianshu.com/p/dfe85a3c2096 图像超分辨率重建:指通过低分辨率图像或图像序列恢复出高分辨率图像.高分辨率图像意味着图像具有更多的细 ...

  4. 基于SRGAN实现图像超分辨率重建或复原

    基于SRGAN实现图像超分辨率重建或复原 2018年04月20日 11:50:26 山水之间2018 阅读数 14064 文章标签: SRGAN图像超分辨率重建 更多 分类专栏: 深度学习 图像处理  ...

  5. 【数字图像处理3 】(上)图像超分辨率重建(SR)概述

    图像超分辨率重建 一.前言(废话时间) 二.扫盲知识 什么是 超分辨率重建? 兴起原因 三.传统超分辨率重建 1.基于插值的超分辨率重建 2.基于退化模型的超分辨率重建 3.基于学习的超分辨率重建 四 ...

  6. 图像超分辨率重建算法,让模糊图像变清晰(附数据和代码)

    一.  图像超分辨率重建概述 1. 概念 图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数,包括时间分辨率.空间分辨率及色阶分辨率等,体现了成像系统实际所能反映物体细节信息的能力.相较于低 ...

  7. PANet:基于金字塔注意力网络的图像超分辨率重建(Pytorch实现)

    PANet:基于金字塔注意力网络的图像超分辨率重建 [!] 为了提高代码的可读性,本文模型的具体实现与原文具有一定区别,因此会造成性能上的差异 文章目录 PANet:基于金字塔注意力网络的图像超分辨率 ...

  8. 一文掌握图像超分辨率重建(算法原理、Pytorch实现)——含完整代码和数据

    目录 一.  图像超分辨率重建概述 1. 概念 2. 应用领域 3. 研究进展 3.1 传统超分辨率重建算法 3.2 基于深度学习的超分辨率重建算法 二.  SRResNet算法原理和Pytorch实 ...

  9. 超分辨率——基于SRGAN的图像超分辨率重建(Pytorch实现)

    基于SRGAN的图像超分辨率重建 本文偏新手项,因此只是作为定性学习使用,因此不涉及最后的定量评估环节 目录 基于SRGAN的图像超分辨率重建 1 简要介绍 2 代码实现 2.1 开发环境 2.2 主 ...

  10. 【毕业设计】基于深度学习的图像超分辨率重建 - opencv python cnn

    文章目录 0 前言 1 什么是图像超分辨率重建 2 应用场景 3 实现方法 4 SRResNet算法原理 5 SRCNN设计思路 6 代码实现 6.1 代码结构组织 6.2 train_srresne ...

最新文章

  1. 查找运行时间超过1天的frmweb进程
  2. Javascript实现浏览器菜单命令
  3. python声明数组_在Python中如何声明动态数组
  4. python正则表达式匹配括号并删除_如何使用正则表达式删除括号内的文本?
  5. 华为云专属月·行业深耕专项行动正式开启
  6. php开发实例大全pdf百度云盘_互联网大厂 主要使用哪些开发语言
  7. in-source builds are not allowed
  8. ios开发--编码格式
  9. bzoj4987: Tree(树形dp)
  10. Delphi读写UTF-8、Unicode格式文本文件
  11. qt调用python(不是python调用qt,不是使用pyqt模块)
  12. java swing开发打飞机的小游戏源代码下载
  13. kinect_v2-ros(iai_kinect2)安装,环境ubuntu1604+INTEL+NVIDIA
  14. swap file .swp already exists
  15. 深度揭秘硅片产业,巨大潜力成就半导体材料之王
  16. Word查找替换详细用法及通配符一览表
  17. 解决pip install ninjia 后,依旧报错的问题
  18. DevExpress中动态设置主题、皮肤
  19. 【PSO三维路径规划】基于matlab粒子群算法融合鸡群算法多无人机三维路径规划【含Matlab源码 1792期】
  20. 移动通信网络规划:覆盖场景划分

热门文章

  1. Jieba分词的准确率提升:使用paddle模式进行分词(使用百度飞桨深度学习模型进行分词)
  2. 自发光效果(控制自发光的颜色、强度,呼吸光可选)
  3. c语言 验证用户名密码
  4. 51单片机控制的自动感应调光、坐姿矫正智能台灯
  5. Python代码画圣诞树--turtle绘图
  6. 魅族计算机按键声,魅族16T按键音怎么关
  7. 关于51CTO被脱裤,几点关于密码的建议
  8. 招人!!!招人!!!
  9. 如何显示和删除联想的OEM分区
  10. 第四周项目3单链表应用(2)