paper:https://arxiv.org/abs/2004.13824

code: https://github.com/SHI-Labs/Pyramid-Attention-Networks

1. 基本思想

作者指出,当前基于深度学习的方法只是在单个尺度上利用了self-similarity(do not take full advantage of self-similarities by relying on self-attention neural modules that only process information at the same scale)。在该论文里,作者提出了 pyramid attention module 用于图像修复,可以利用多尺度特征金字塔捕获 long-range 的特征关联。

在传统图像去噪方法中,NLmean、BM3D都是采用自相似性进行图像去噪的佼佼者,图像的自相似性非常重要。同时,作者指出,基于深度学习的方法大多使用non-local方法来获取 long-range 的信息,这样的模块早期被用于识别和分类任务,但是在 low-level 的视觉任务中也被证明非常有效。

但是,直接将 self-attention 应用于图像修复有一定的局限性:

  • multi-scale non-local prior has not been explorered.
  • pixel-wise matching used in the self-attention module is usually noisy for image restoration.

基于上述分析,作者提出了non-local pyramid attention 模块来捕获long-range信息。

如图所示,该方法可以挖掘 multi-scale self-examplars 来提高重建性能,主要有三个优点:

  • 将现有non-local方法的扩展到多尺度空间(现有non-local方法的搜索空间仅限于金字塔的最底端)
  • 不同大小特征之间的 long-range 依赖被较好的建模
  • 可以降低特征中的噪声,进而提升性能。

2. 方法

如图2a所示,non-local attention 在全图进行响应特征平均,可以这样描述:

\[y^i=\frac{1}{\sigma(x)}\sum\phi(x^i, x^j)\theta(x^j)
\]

其中\(\phi\) 计算相似性,\(\theta\)表示特征变换。上述公式仅在统一尺度空间进行处理,难以利用跨尺度的特征。

图2b为 scale agnostic attention,是 2a 的一种扩展。给定一个尺度\(s\),如何评价\(x^j\)和\(x^j_{\delta(s)}\)之间的相似性,以及如何把\(x^j_{\delta(s)}\)聚合到\(y^i\)是两个关键问题。为了解决这两个问题,作者将\(x^j_{\delta(s)}\)下采样为像素特征\(z^j\),由于需要在整个特征图上搜索,作者对原始输入\(x\)进行下采样得到特征图\(z\),然后相似性可以这样计算:

\[y^i=\frac{1}{\sigma(x,z)}\sum_j\phi(x^i,z^i)\theta(z^i)
\]

同时,作者将该计算方式扩展到金字塔形式,金字塔注意力具有跨尺度特征自相似建模能力。

在具体实现时,相似性函数\(\phi\)使用了embeded gaussian。在特征变换函数\(\theta\)方面,使用简单的线性变换。同时,为了改进匹配的鲁棒性,添加了额外的近邻相似约束,类似于经典的非局部均值滤波,添加了一个强约束信息:近邻且相似。这样有助于学习相关特征,同时抑制不相关特征。

图3 为 Pyramid attention 模块的一个示意图,在损失函数方面,作者选择了L1损失。

3. 实验与结论

作者使用了一个5层的金字塔,网络包含80个残差块,提出的PA模块插入在第40个残差块之后,第41个残差块之前。该方法在图像降噪、去马赛克、去压缩伪影、超分辨率方面都进行了实验,效果都比较好。具体细节和ablation study 可以参考论文,不再细说。

该论文使用了一个 simple backbone,然后只加了一个 pyramid attention 模块,就取得了非常好的效果。作者认为,该模块可以在以后的图像修复网络中,作为基础模块来使用。

Pyramid attention networks for image restoration的更多相关文章

  1. 论文笔记之:Graph Attention Networks

    Graph Attention Networks 2018-02-06  16:52:49 Abstract: 本文提出一种新颖的 graph attention networks (GATs), 可 ...

  2. RCAN——Image Super-Resolution Using Very Deep Residual Channel Attention Networks

    1. 摘要 在图像超分辨领域,卷积神经网络的深度非常重要,但过深的网络却难以训练.低分辨率的输入以及特征包含丰富的低频信息,但却在通道间被平等对待,因此阻碍了网络的表示能力. 为了解决上述问题,作者提 ...

  3. 论文解读(GATv2)《How Attentive are Graph Attention Networks?》

    论文信息 论文标题:How Attentive are Graph Attention Networks?论文作者:Shaked Brody, Uri Alon, Eran Yahav论文来源:202 ...

  4. 谣言检测——《MFAN: Multi-modal Feature-enhanced Attention Networks for Rumor Detection》

    论文信息 论文标题:MFAN: Multi-modal Feature-enhanced Attention Networks for Rumor Detection论文作者:Jiaqi Zheng, ...

  5. 谣言检测(ClaHi-GAT)《Rumor Detection on Twitter with Claim-Guided Hierarchical Graph Attention Networks》

    论文信息 论文标题:Rumor Detection on Twitter with Claim-Guided Hierarchical Graph Attention Networks论文作者:Erx ...

  6. GRAPH ATTENTION NETWORKS

    基本就是第一层concatenate,第二层不concatenate. 相关论文: Semi-Supervised Classification with Graph Convolutional Ne ...

  7. Recent papers on Action Recognition | 行为识别最新论文

    CVPR2019 1.An Attention Enhanced Graph Convolutional LSTM Network for Skeleton-Based Action Recognit ...

  8. [阅读笔记]EfficientDet

    EfficientDet 文章阅读 Google的网络结构不错,总是会考虑计算性能的问题,从mobilenet v1到mobile net v2.这篇文章主要对近来的FPN结构进行了改进,实现了一种效 ...

  9. (转)注意力机制(Attention Mechanism)在自然语言处理中的应用

    注意力机制(Attention Mechanism)在自然语言处理中的应用 本文转自:http://www.cnblogs.com/robert-dlut/p/5952032.html  近年来,深度 ...

随机推荐

  1. IntelliJ IDEA安装配置、搭建Spring MVC

    安装前必备软件: 1.jdk1.8.0_144安装包 2.IntelliJ IDEA 2016.1.1(64) 3.Tomcat安装包 4.Mysql.MySQL-JDBC驱动安装包 5.Jetbra ...

  2. ajax前后端交互原理(6)

    6.XMLHttpRequest对象 XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能.它提供了一个通过 URL 来获取数据的简单方式,并且不会使整个页 ...

  3. Jquery中$(document).ready()

    window.onload = function(){ alert("welcome"); } 语句的作用是希望在页面加载完,自动执行定义js代码(function). $(doc ...

  4. hbase2.1.9 centos7 完全分布式 搭建随记

    hbase2.1.9 centos7 完全分布式 搭建随记 这里是当初在三个ECS节点上搭建hadoop+zookeeper+hbase+solr的主要步骤,文章内容未经过润色,请参考的同学搭配其他博 ...

  5. 如何更换Windows中命令提示符(cmd)中的字体

    前言 CMD(命令提示符),全称"Command Prompt":对于这个东西我相信大部分用电脑的人基本都知道,因为常常会用到一些基本的DOS命令进行一些电脑的基本查看处理:但是我 ...

  6. 古有七步成诗,今有六步完成DevOps上华为云DevCloud实践

    引言: 在“DevOps能力之屋(Capabilities House of DevOps)”中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力.华为云DevClo ...

  7. kafka的认识、安装与配置

    认识Kafka 花费越少的精力在数据移动上,就能越专注于核心业务 --- <Kafka:The Definitive Guide> 认识 Kafka 之前,先了解一下发布与订阅消息系统:消 ...

  8. Github 新玩法 -- Profile ReadMe

    Github 新玩法 -- Profile ReadMe Intro 今天刷 Github 的时候偶然发现一个新的玩法,Github Profile ReadMe,可以在个人的 Profile 页面展 ...

  9. day07 流程控制

    灵魂三问: 什么是?为什么要有?怎么用? 目录 一 分支结构 1.1 什么是分支结构 1.2 为什么要有分支结构 1.3 怎么用分支结构 1.3.1 if语法 二 循环结构 2.1while循环 一 ...

  10. Spring Boot 2 实战:常用读取配置的方式

    1. 前言 在Spring Boot项目中我们经常需要读取application.yml配置文件的自定义配置,今天就来罗列一下从yaml读取配置文件的一些常用手段和方法. 2. 使用@Value注解 ...