Happy · 2021年04月19日

大幅降低计算&性能有提升,华为诺亚从频率角度出发提出频率感知动态超分网络FADN

首发:AIWalker
作者:HappyAIWalker

image.png
标题&作者团队

本文是华为诺亚、清华大学以及悉尼大学提出的一种用于高效图像超分的频率感知动态网络。本文从图像的不同频率成分复原难度、所需计算量等角度出发,提出了一种动态调节不同频率特征计算分支的模块并由此引出了本文所提方案FADN。所提方法可以大幅降低模型性能,且保持超分性能不变,甚至有些微提升。比如,所提方法可以减少50%EDSR计算量,同时还有0.02~0.05dB的性能提升。

Abstract

深度学习技术已成为图像超分的主流方案,为得到更好的视觉感知质量与重建效果,现有方法往往采用具有重度计算量的复杂网络。然而,移动端设备的计算资源极为有限,难以满足现有超分方案的计算负载要求。

为缓解上述问题,我们探索了一种新颖的频率感知动态网络,它将输入按照其在DCT域的系数划分为不同部分。实际上,高频部分需要采用复杂的操作处理,对低频部分采用廉价操作处理以减少计算量要求。由于低频区域包含非常少的纹理,因此该动态网络不会影响最终超分图像的质量。此外,我们将频率预测器嵌入到端到端动态网络中对手工设计的频率感知掩码进行微调。

我们在公开基准数据集上进行了充分实验,结果表明:所提频率感知动态网络可以适用于不同图像超分架构并取得更好的重建质量与计算复杂度均衡。比如,所提方法可以减少EDSR模型近50%计算量,同时保持SOTA超分性能。

Introduction

自从SRCNN提出以来,深度学习就成为了图像超分的主流,出现了各式各样的超分架构,比如简单到极致的EDSR、WDSR、RDN、注意力机制的应用RCAN与SAN、图的应用IGNN、NAS的应用FALSR、传统迭代反投影的应用DBPN、递归的应用DRRN以及GAN的应用SRGAN、ESRGAN等等。

尽管前述超分方案在重建客观指标方面取得非常好的指标,同时具有较好的视觉感知质量,但伴随而来的是高计算量,这对于资源受限的实际场景场景来说天战极大。比如,采用RDN生成(720p)大小图像需要10194G计算量。

尽管有也有不少方案聚焦于如何降低整体的计算量,但这些方法不够充分有效。自然图像由不同频率信号构成。高频信息的重建需要更高的计算量,而低频信息的重建并不需要高计算量。以下图为例,低频区域采用最轻量的模型所取得效果与重度模型效果基本一致;而高频区域方能看到重度模型重建质量的有效性。

image.png

Method

受上述现象启发,从频率角度出发,我们提出了一种新颖的频率感知动态网络FADN,网络结构见下图。FADN由动态残差模块构成,对每个模块,我们引入了一个预测器基于DCT将输入特征划分为多个成分,即低频、中频以及高频。预测器通过手工频域掩码在训练集上通过有监督方式学习。然而不同部分的特征采用不同计算量的卷积处理。

image.png
fadn

Dynamic ResBlock

image.png

image.png

Mask Predictor

如何将按照频率强度送入到合适分支非常重要,这是低频信号采用轻量分支重建节省计算量的关键。一种直观的思路是采用DCT生成频率掩码。以下图为例,我们首先采用DCT将图像从空域变换到频域,b1代表全频率带信息,b2部分为低频区域,b3部分为中频区域,b4部分则是高频区域。c图则给出了按照频率阈值划分并变换到空域后的频率掩码。
image.png
不幸的是,手工阈值对于噪声比较敏感,故而不适用于所有图像。我们希望网络可以自适应学习一个频率掩码。由于掩码不具有微分性质,我们采用Gumbel Softmax技巧使Mask Predictor变成可微分形式。

image.png

Losses

image.png

Efficient Implementation

由于每个分支的权值共享特性,计算过程空域通过GEMM实现。每个分支的第一个卷积应当具有相同的核尺寸,因此我们采用im2col将输入展开;与此同时,Mask Predictor生成频率掩码M;然而,展开X按照M拆分并送入不同分支,每个分支完成处理后合并为完整张量;最后将上述所得与输入相加即可得到该模块的输出。

Experiments

Training 我们将所提频率感知动态机制应用到EDSR,将所得模型称之为FAD\_EDSR,它包含32个残差模块、256通道。训练数据采用常规的DIV2K,退化方式BI。

Evaluation 测试数据为常规Set5、Set14、B100以及Urban100,度量指标为PSNR与SSIM。

image.png

sota

上表给出所提方法与其他方案的性能对比,从中可以看到:

  • 所提方法方案FADN可以有效的计算量计算量(即FLOPs);
  • 相比EDSR,所提方法可以降低近一半的FLOPs,同时保持甚至取得性能的提升。比如,在x2任务+Set5数据方面,模型的FLOPs下降69.6%同时PSNR指标提升0.11dB;
  • 相比AdaEDSR,所提方法可以降低更多的计算量,取得更好的超分性能。比如,在x4任务+Urban100数据方面,AdaEDSR的FLOPs降低16%、PSNR降低0.06dB;而所提方案计算量空域降低35.9%且PSNR指标提升0.06dB。
  • 在大尺度任务(如x3与x4)上,AdaEDSR出现了严重的性能退化问题;受益于端到端训练,所提方案仍具有非常优秀的性能。

image.png

上图给出了不同计算复杂度模型的性能对比,可以看到:所提方法具有最佳的PSNR-FLOPs均衡

image.png

learning

上表对比了不同掩码方式的性能对比,可以看到:

  • 随机掩码会早成性能下降显著下降,因其无法有效判别频率信息并赋予合适分支;
  • 固定随机掩码的结果比多个随机掩码的结果更差;
  • DCT频率掩码要比随机掩码更加,它可以提供合理的分支预测;然而会受限于手工阈值。
  • 端到端的可学习频率掩码可以避免DCT掩码存在的问题;
  • DCT频率掩码引导的学习方式可以加速训练收敛并取得更佳性能。

image.png

mask predictor

除了性能对比了,我们还对比了学习频率掩码与DCT频率掩码的可视化效果,见上图。

  • DCT频率掩码指示了频率分布,但对噪声敏感;
  • 所提可学习频率掩码与DCT频率掩码类似,但预测更精确;同时不同模块的掩码存在细微区别。

image.png
number mask

上表对比了不同分支模型性能对比,可以看到:分支越多模型性能越好。考虑到训练与内存消耗,我们建议3分支FADN。

题外语

本文与笔者之前分享的《[https://mp.weixin.qq.com/s/vI...](A Divergence to Convergence Approach for Image Super-Resolution)》与《CVPR2021|超分性能不变,计算量降低50%,董超等人提出用于low-level加速的ClassSR》有着比较强的相关性。

这三篇文章意识到:不同的区域重建难度不一,高频区域(纹理、边缘)重建难度更高,需要更多的计算量;低频区域(平坦)重建难度低,需要较少的计算量。

三者的出发点与所采用的方案各不相同,简单说明如下:

  • ClassSR采用最简单直接的思路:分类器预测每个图像块的复原难度,然后每个块采用不同复杂度的超分网络。从实用角度来看,ClassSR更易于部署。
  • SMSR采用了类似剪枝的思路,跳过冗余计算,在达到高计算量降低的同时保持性能不变。尽管可以大幅的降低计算量,但实际推理提升并不大,重度依赖于稀疏卷积的支持程度。
  • FADN采用了既有Class的分块的思想,同时还有SMSR的细粒度控制计算复杂度的机制。但FADN则是在模块层面采用Predictor预测高低频区域,然后采用多分支方式处理。从实际推理角度来看,FADN部署难度介于上述ClassSR与SMSR之间。
  • 从开源角度看,ClassSR与SMSR均已经开源,而FADN尚未。如有同学计划复现FADN,可考虑结合SMSR中的Gumbel Softmax实现进行FADN的复现。

推荐阅读

本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏深度学习从入门到精通
推荐阅读
关注数
6197
内容数
191
夯实深度学习知识基础, 涵盖动态滤波,超分辨,轻量级框架等
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息