论文地址:https://arxiv.org/pdf/2305.02126.pdf
论文小结
本文提出的实时性、轻量级的图像超分网络,名为Bicubic++。
Bicubic++的网络结构,首先学习了图像的快速可逆降级和低分辨率特征,以减少计算量。
然后作者还设计了一个训练管道,可以在不使用幅度或梯度(magnitude or gradient)等指标的情况下实现端对端的全局结构裁剪,让优化后的网络可以专注于优化在验证集上的PSNR指标。
此外,作者发现,偏置项占用了相当多的时间,会略微增加PSNR,因此作者在卷积的过程中移除偏置选项。
在性能上,对比双三次差值算法,本文的方法在所有的SR测试数据集提升PSNR ∼ 1 d B \sim1dB ∼1dB。在720p输入和4K输出的 3 3 3倍超分目标,在RTX3090上耗时约1.17ms,在RTX3070上耗时约2.9ms,运行精度为FP16。目标是成为工业界现在使用的Bicubic++的替代方案。
Bicubic++是NTIRE 2023 RTSR Track2赛道,即 3 3 3倍超分比赛的第一名,是所有竞争方法中最快的。
总的来说,没啥新想法,主打的应用尝试。和bicubic比效果,和其他深度学习方法比时间。
论文简介
网络的整体架构,是先进行 × 2 \times2 ×2的下采样,缩小图像特征,以显著减少计算量,然后在最后使用 × 6 \times6 ×6上采样。网络架构如上图所示。
在训练阶段,提出三阶段训练管道来训练网络。首先训练一个卷积层通道大于“硬件最佳点”(hardware’s sweet spot)的网络。然后在不影响权重或梯度规范的情况下,使用全局结构化层裁剪(global structured layer pruning)。裁剪期间的重点在于维持PSNR的优化,卷积层bias的移除,和finetune操作,以进一步降低其运行速度,同时不会造成视觉效果的牺牲。
整篇论文的优化方向,也就是竞赛中的计算分数(下列公式(1)),其中 P P P和 P b i c P_{bic} Pbic是网络和Bicubic上采样在测试集上的PSNR值, t t t是 720 P 720P 720P到 4 K 4K 4K的运行时间: S ( P , t ) = { 0 i f P ≤ P b i c 2 P − P b i c × 2 0.1 × t e l s e (1) S(P,t)=\begin{cases} 0 \quad &if \ P\leq P_{bic} \\ \frac{2^{P-P_{bic}}\times2}{0.1\times\sqrt{t}} \quad & else \end{cases}\tag{1} S(P,t)={00.1×t2P−Pbic×2if P≤Pbicelse(1)
方法介绍
作者对比了几种下采样方法(如下图所示),最后选择了带下采样的卷积,而不是S2D。
在通道数量的设计上,作者发现连续卷积层中某层的通道数降低,并不总是反馈到运行时间的降低。所以,作者决定在通道数上一直保持一致,除非在维持必要的输出通道数时。
在一些超分方法上,通过Squeeze和expand模块来更好地提取特征。但作者认为,这种模块对于运行时间的增加大大超过了其对于模型带来的增益。
为了得到最佳通道数,作者做了个实验,观察到运行时间与通道数并不是一直都是正相关的,存在一些“最佳点”,如下图所示。在作者的设计下,在实时性的约束下,RFDN论文中使用的
56
56
56个通道,和ABPN使用的
28
28
28个通道并不是最佳点。所以,如下图所示,本文最终模型使用的通道数为
32
32
32。
然而,作者一开始训练采用的通道数是
34
34
34,是一个非最优通道,然后对模型进行全局裁剪,获得最后的
32
32
32个通道。
作者对bias移除也进行了实验,证明相对于运行时间的降低,PSNR的降低是较小的。所以,在最后的网络中,也将偏置选项移除了。
训练细节
本文总共训练三个管道:(1)大channel的模型;(2)channel裁剪的模型;(3)移除bias的模型。第二第三个模型,都进行finetune训练。三个训练管道均使用 Adam 优化器,
β
1
=
0.99
\beta_1=0.99
β1=0.99,
β
2
=
0.999
\beta_2=0.999
β2=0.999。每个管道都训练
1000
1000
1000个epoch,每个epoch由
800
800
800 组随机裁剪和翻转的对组成。每组LR的 patchSize 为
108
108
108,由DIV2K训练数据集经过
J
P
E
G
Q
=
90
JPEG Q=90
JPEGQ=90 衰退而来。
初始学习率为
5
e
−
4
5e^{-4}
5e−4,在所有阶段使用学习率衰减调度程序:其中在前
500
500
500个epoch中,学习率lr保持不变,在后500个epoch中,lr线性衰减,直到
1
e
−
8
1e^{-8}
1e−8。
阶段一
训练网络如下图所示。其中, c h = 34 , m = 2 , R = 1 ch=34,m=2,R=1 ch=34,m=2,R=1,DS是上面所提及的 s t r i d e = 2 stride=2 stride=2的卷积层,此时每层都有卷积偏置项bias。参数在后续有所解释。
阶段二
模型裁剪阶段,全局结构化裁剪。裁剪channel。此时还在应用conv bias。此时将ch从 34 34 34降到 32 32 32。
阶段三
消除卷积层的偏置项。再次finetune网络。
论文实验
量化分析网络的各个组成结构,消融实验如下表所示。
消融学习
消融实验部分由五个方面组成:
(1)下采样(Downscaling, DS),偏置(bias, b),激活层函数选择。
从实验Q到T,可以看出,即便在通道数较少的情况下,带有stride的卷积(SC),比离散小波变换(discrete wavelet transform,DWT)和space-to-space(S2D)要好(score是有一个比赛的公式得到的)。
对比Q和Z,尽管Q的通道数更少,但Q和Z几乎获得相同的分数(score以psnr和runtime为平衡)。
对比T和A,可以看出LReLU比ReLU能带来较大收益,而基本没有运行时间的损失。
对比A和E,可以看出,移除偏置项bias,可以得到更高的分数。
(2)残差模块数量(R)和卷积层数量(m)。
1到4和E的实验结果表明,设置为
m
=
2
m=2
m=2和
R
=
1
R=1
R=1在尝试的模型架构中得到最佳分数。因此,最终的模型参数为
c
h
=
32
ch=32
ch=32,DS为SC,激活层为Leaky ReLU,并且在某个时刻禁用偏置项。
但可以看出, m 和 R 的提升也带来了PSNR的提升。
(3)确定裁剪前模型的通道数量 。
为了确定裁剪到 channel为32模型的大模型通道数。从P/B/R的实验看,通道数为
34
34
34的大模型好一点,有最高的裁剪分数。
(4)finetune和偏置项移除 。
从上面的模型
B
B
B剪枝得到了
B
∗
B^*
B∗后,再次对剪枝模型进行微调,得到模型
C
C
C。
对比C和F,可以看出剪枝的积极效果。剪枝后的训练,比直接训练,指标要略微提升一点。
最后,作者从模型
C
C
C中移除偏置项,再次进行微调,就获得了本文提出的模型 Bicubic++ 。模型
I
I
I 和模型
F
F
F无法得到最优指标,这都表明了通过剪枝这种训练管道的优势。
几种训练管道实验步骤( A → G , E → H , A → F → I , A → E → H → J A\rightarrow G, E\rightarrow H, A\rightarrow F\rightarrow I, A\rightarrow E\rightarrow H\rightarrow J A→G,E→H,A→F→I,A→E→H→J)的视觉效果对比如下图所示。
(5)不同的R(残差块)和m(卷积层数)参数的加载。
提高R和m抗原带来更高的PSNR以及更慢的运行时间,本文的目标是在RTX3070保持在3ms以下,所以就坚持上面的选择。文章来源:https://www.toymoban.com/news/detail-854256.html
对比结果
定量和定性的比较结果如下图所示。本文提出的Bicubic++比Bicubic好,比其他相关方法运行速度快。文章来源地址https://www.toymoban.com/news/detail-854256.html
到了这里,关于【论文阅读笔记】Bicubic++: Slim, Slimmer, Slimmest Designing an Industry-Grade Super-Resolution Network的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!