1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【图像超分辨率】ClassSR: A General Framework to Accelerate Super-Resolution Networks by Data Characteristic

【图像超分辨率】ClassSR: A General Framework to Accelerate Super-Resolution Networks by Data Characteristic

时间:2021-12-01 03:03:39

相关推荐

【图像超分辨率】ClassSR: A General Framework to Accelerate Super-Resolution Networks by Data Characteristic

CVPR: ClassSR: A General Framework to Accelerate Super-Resolution Networks by Data Characteristic 阅读笔记

Paper: ClassSR: A General Framework to Accelerate Super-Resolution Networks by Data Characteristic

Code: /Xiangtaokong/ClassSR

Abstract

我们的目标是加速在大型图像(2K-8K)上的超级分辨率(SR)过程。

在实际使用中,大图像通常被分解成小的子图像。基于这种处理方式,我们发现不同的图像区域有不同的修复难度,可以由具有不同能力的网络来处理。直观地说,光滑的区域比复杂的纹理更容易进行重建。为了利用这一特性,我们可以采用适当的SR网络来处理分解后的不同子图像。在此基础上,我们提出了一个新的解决方法–ClassSR,它在一个统一的框架中结合了分类和超分辨率。特别的是,它首先使用一个Class-Module将子图像按照修复难度分为不同的类别,然后应用一个SR-Module对不同的类别进行SR。Class-Module是一个传统的分类网络,而SR-Module是一个network container网络容器,由to-be-accelerated SR network和其简化版本组成。我们还引入了一种新的分类方法,用两种损失–类损失Class-Loss和平均损失Average-Loss–来产生分类结果。经过联合训练,大部分子图像将通过较小的网络,因此计算成本可以大大降低。实验表明,我们的ClassSR可以帮助大多数现有的方法(如FSRCNN、CARN、SRResNet、RCAN)在DIV8K数据集上节省高达50%的FLOPs。这个通用的框架也可以应用于其他低级别的视觉任务。

Introduction

在本文中,我们研究了如何在 "大 "输入图像上加速SR算法,这些图像将被上采样到至少2K的分辨率(2048×1080)。而在现实世界的使用中,智能手机和电视显示器的图像/视频分辨率已经达到了4K(4096×2160),甚至8K(7680×4320)。由于最近的SR算法是建立在CNN的基础上,内存和计算成本将随着输入尺寸的增加而呈quadratically增长。因此,有必要将输入分解成子图像,并不断加速SR算法,以满足在真实图像上实时实施的要求。

最近关于SR加速的工作集中在提出轻量级的网络结构,例如,从早期的FSRCNN到最新的CARN。我们从一个不同的角度来解决这个问题,不是设计一个更快的模型,而是提出一个新的处理方法,可以加速大多数SR方法。我们发现不同的图像区域需要不同的网络复杂度,例如,平面区域(如天空、土地)自然比纹理(如头发、羽毛)更容易处理。这表明,如果我们能用较小的网络来处理不太复杂的图像区域,计算成本就会大大降低。

根据我们的统计,对于DIV8K数据集,大约60%的LR子图像(32×32)属于平滑区域,而对于DIV2K数据集,这一比例下降到30%。因此,大图像的加速率会更高。其次,子图像分解可以帮助节省实际应用中的内存空间,对低内存处理芯片来说是必不可少的。将子图像分配给并行处理器以进一步加速也是合理的。

为了解决上述问题并加速现有的SR方法,我们提出了一个新的解决方案,即ClassSR,以同时进行分类和超分辨率。该框架由两个模块组成–分类模块SR模块。分类模块是一个简单的分类网络,根据修复难度将输入分类到一个特殊的类别,而SR模块是一个网络容器,用相应类别的SR网络处理分类后的输入。它们被连接在一起,共同训练。创新之处在于分类方法和训练策略。具体来说,我们引入了两个新的损失来限制分类结果,第一个是 “类损失”,它鼓励对个别子图像对选择某一类有更高的概率。另一个是平均损失,确保整体分类结果不偏向于单一类别。这两种损失协同工作,使分类结果有意义且分布合理。此外,还加入了图像损失(L1损失),以保证重建的性能。对于训练策略,我们首先用Image-Loss对SR-Module进行预训练。然后,我们固定SR-模块,用所有三种损失优化Class模块。最后,我们同时优化这两个模块,直到收敛。

Methods

Observation

我们首先说明了我们对不同种类的子图像的观察。

具体来说,我们研究了DIV2K验证数据集中32×32LR子图像的统计特征。为了评估其修复难度,我们将所有子图像通过MSRResNet,并根据其PSNR值对这些子图像进行排序。如图所示,我们用蓝色曲线显示这些值,并将它们分成三个具有相同数量子图像的等级–“简单、中等、困难”。可以看出,具有高PSNR值的子图像通常是光滑的,而具有低PSNR值的子图像包含复杂的纹理。

然后我们采用不同的网络来处理不同种类的子图像。如表1所示,我们使用三个FSRCNN模型,它们具有相同的网络结构,但在第一卷积层和最后一个反卷积层中具有不同的通道数(比如16、36、56)。它们分别用训练数据集中的 "简单、中等、困难 "子图像进行训练。

从表1中我们可以发现,FSRCNN(16)和FSRCNN-O(56)在 "简单 "子图像上几乎没有区别,而FSRCNN(36)在 "中等 "子图像上可以达到与FSRCNN-O(56)大致相同的性能。这表明我们可以用一个轻量级的网络来处理简单的子图像以节省计算成本。这就是为什么我们提出以下ClassSR方法,它可以对不同的图像区域进行不同的处理,并加速现有的SR方法。

Overview of ClassSR

ClassSR是一个新的单图像SR的解决方案,它由两个模块组成–Class-Module和SR-Module。

类模块将输入的图像分类为

类模块将输入的图像分为M个类,而SR模块则包含M个分支(SR网络)来处理不同的输入。

具体来说,一个大的输入LR图像X,首先被分解为重叠的子图像{xi}(i=1,2,3,…N)。

分类模块接受每个子图像xi,并生成一个概率向量[P1 (xi ), …, PM (xi )]。之后,我们决定

后,我们通过选择最大概率值的索引来决定使用哪个SR网络。最后,我们将所有的输出子图像结合,得到最终的大SR图像Y(2K-8K)。

Class-Module

Class-Module的目标是通过低层次的特征来判断 “输入的子图像重建的难易程度whether the input sub-image is easy or hard to reconstruct”。如图4所示,我们把Class-Module设计成一个简单的分类网络,它包含五个卷积层、一个平均池层和一个全连接层。

卷积层负责特征提取,而池化层和全连接层负责概率向量的提取。这个网络是相当轻量级的,并没有带来什么额外的计算成本。实验表明,这样一个简单的结构已经可以达到令人满意的分类结果。

SR-Module

SR-模块被设计成一个容器,由几个独立的分支组成。一般来说,每个分支可以是任何基于学习的SR网络。由于我们的目标是加速现有的SR方法(例如,FSRCNN,CARN),我们采用这种SR网络作为基础网络,并将其设置为最复杂的分支,其他分支SR 是通过降低fM的网络复杂性得到的。

为了简单起见,我们用每个卷积层的通道数来控制网络的复杂性。那么每个SR分支需要多少个通道呢?其原则是,分支网络应该达到与用相关类别的所有数据训练的基础网络相当的结果。例如(见表1和图4),fS1R、fS2R、fS3R的通道数量可以是16、36、56,其中56是基础网络的通道数量。请注意,只要网络性能符合上述原则,我们还可以通过其他方式降低网络的复杂性,如减少层数。

Classification Method

在训练过程中,分类模块根据子图像对特定分支的修复难度进行分类。因此,与测试不同的是,输入的子图像x应该通过所有M个SR分支。此外,为了保证Class-Module能够接受重建结果的梯度传播,我们将重建的子图像fi(x)SR和相应的分类概率Pi(x)相乘,生成最终的SR输出y,即为

我们用Image-Loss(L1损失)来约束y,然后我们就可以自动获得分类概率。

**但在测试过程中,输入只通过概率最大的SR分支。**因此,我们提出Lc(Class-Loss),使最大概率达到1,y将等于概率为1的子图像。请注意,如果我们只采用Image-Loss和Class-Loss,训练将很容易收敛到一个极端点,即所有图像都被归入最复杂的分支。为了避免这种偏颇的结果,我们设计了La(Average-Loss)来约束分类结果。

Loss Functions

损失函数由三个损失组成:一个常用的L1损失(Image-Loss)和我们提出的两个损失 Lc(分类损失)和La(平均损失)。具体来说,L1用于确保图像重建质量,Lc用于证明分类的有效性,而La则确保每个SR分支可以被平等地选择。

损失函数表达为:

Class-Loss

Class-Loss限制了分类模块的输出概率分布。

我们预先知道,分类模块对最大概率的类的信心要比其他类高得多。例如,分类结果[0.90, 0.05, 0.05]比[0.34,0.33,0.33]好,因为后者看起来像是随机选择。

分类损失被表述为:

其中M是类的数量。Lc是同一子图像的各类概率之间的距离之和的负数。这种损失可以极大地扩大不同分类结果之间的概率差距,从而使最大概率值接近于1。

Average-Loss

如果我们只采用Image-Loss和Class-Loss,子图像很容易被分配到最复杂的分支。这是因为,最复杂的SR网络很容易得到更好的结果。那么,分类模块就会失去其功能,SR模块就会退化为基础网络。**为了避免这种情况,我们应该确保每个SR分支都有平等的机会被选中。**因此,我们设计了 “平均损失”(Average-Loss)来限制分类结果。

它被表述为:

其中B是batchsize,M是分类数。La是平均数( B )与一个批次内每个类别的子图像数之间的距离之和。有了这种损失,在训练过程中通过每个SR分支的子图像的数量将大致相同。

Training Strategy

我们建议通过三个步骤来训练ClassSR。首先,预训练SR-Module,然后固定SR-Module,使用三种损失来训练Class-Module,最后对所有网络进行联合微调。这是因为如果我们从头开始训练Class-Module和SR-Module,性能将非常不稳定,分类将很容易陷入一个糟糕的局部最小值。

为了预训练SR模块,我们使用按PSNR值分类的数据。具体来说,所有的子图像都通过一个训练有素的MSRResNet。然后根据PSNR值对这些子图像进行排名。接下来,前1/3的子图像被分配到hard类,而后1/3属于easy类。然后我们在相关的easy/medium/hard数据上训练easy/medium/hard的SR分支。尽管使用MSRResNet获得的PSNR来估计不同SR分支的修复难度并不完美,但它可以为SR分支提供一个良好的起点。

之后,我们添加分类模块并固定SR模块的参数。在所有的数据上用这三种损失来训练整个模型。如图所示,这个过程可以使类模块具有初级分类能力。之后,我们添加分类模块并固定SR模块的参数。在所有的数据上用这三种损失来训练整个模型,这个过程可以使类模块具有初级分类能力。

我们放松所有的参数,对整个模型进行微调。在联合训练期间,分类模块通过最终的SR结果重新确定其输出概率向量,而SR模块则根据新的分类结果进行更新。在实验中(见图6),我们可以发现,子图像被分配到不同的SR分支,而性能和效率同时提高。

Experiments

Training Data

使用DIV2K数据集进行训练。为了准备训练数据,我们首先对原始图像进行下采样,缩放系数为0.6、0.7、0.8、0.9,生成HR图像。

这些图像被进一步四倍下采样,得到LR图像。然后,我们从LR图像中密集地裁剪出1.59M个大小为32×32的子图像。通过MSRResNet,这些子图像根据其PSNR值被平均分为三个等级(每个等级0.53M)。所有子图像通过翻转旋转进一步增强。最后,我们得到 "easy/medium/hard "的数据集,用于SR-模块的预训练。此外,我们还从DIV2K验证集中选择了10幅图像(索引0801-0810),用于训练期间的评估。

Testing Data

我们从DIV8K数据集中选择了300张图像(索引1201-1500),而不是常用的SR测试集,如Set5和Set14,因为它们的图像太小,无法分解。

具体来说,前两百张图像分别被降为2K和4K分辨率,作为Test2K和Test4K数据集的HR图像。最后一百张图像构成Test8K数据集。LR图像也是在HR图像的基础上通过×4下采样得到的。在测试期间,LR图像被裁剪成32×32的子图像,跨度为28。通过对重叠区域进行平均化处理,将超分辨率的子图像合并为SR图像。我们使用SR和HR图像之间的PSNR值来评估重建性能,并计算测试集内所有32×32子图像的平均FLOPs来评估计算成本。

ClassSR with Existing SR networks

ClassSR是一个通用框架,可以纳入大多数基于深度学习的SR方法,而不考虑网络结构。因此,我们不将ClassSR与其他网络加速策略进行比较,因为它们也可以通过ClassSR进一步加速。因此,为了证明其有效性,我们用ClassSR来加速FSRCNN、CARN、SRResNet和RCAN,它们是不同网络规模的代表性网络。他们的SR-Modules都包含三个分支。最复杂的分支f3是原始网络,而其他分支是通过减少每个卷积层的通道得到的。

Results:在保证图片质量的情况下,大幅减少了计算量。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。