论文地址:https://arxiv.org/pdf/2305.02126.pdf
论文小结
本文提出的实时性、轻量级的图像超分网络,名为Bicubic++。
Bicubic++的网络结构,首先学习了图像的快速可逆降级和低分辨率特征,以减少计算量。
然后作者还设计了一个训练管道,可以在不使用幅度或梯度(magnitude or gradient)等指标的情况下实现端对端的全局结构裁剪,让优化后的网络可以专注于优化在验证集上的PSNR指标。
此外,作者发现,偏置项占用了相当多的时间,会略微增加PSNR,因此作者在卷积的过程中移除偏置选项。
在性能上,对比双三次差值算法,本文的方法在所有的SR测试数据集提升PSNR。在720p输入和4K输出的倍超分目标,在RTX3090上耗时约1.17ms,在RTX3070上耗时约2.9ms,运行精度为FP16。目标是成为工业界现在使用的Bicubic++的替代方案。
Bicubic++是NTIRE 2023 RTSR Track2赛道,即倍超分比赛的第一名,是所有竞争方法中最快的。
总的来说,没啥新想法,主打的应用尝试。和bicubic比效果,和其他深度学习方法比时间。
论文简介
网络的整体架构,是先进行的下采样,缩小图像特征,以显著减少计算量,然后在最后使用上采样。网络架构如上图所示。
在训练阶段,提出三阶段训练管道来训练网络。首先训练一个卷积层通道大于“硬件最佳点”(hardware’s sweet spot)的网络。然后在不影响权重或梯度规范的情况下,使用全局结构化层裁剪(global structured layer pruning)。裁剪期间的重点在于维持PSNR的优化,卷积层bias的移除,和finetune操作,以进一步降低其运行速度,同时不会造成视觉效果的牺牲。
整篇论文的优化方向,也就是竞赛中的计算分数(下列公式(1)),其中和是网络和Bicubic上采样在测试集上的PSNR值,是到的运行时间:
方法介绍
作者对比了几种下采样方法(如下图所示),最后选择了带下采样的卷积,而不是S2D。
在通道数量的设计上,作者发现连续卷积层中某层的通道数降低,并不总是反馈到运行时间的降低。所以,作者决定在通道数上一直保持一致,除非在维持必要的输出通道数时。
在一些超分方法上,通过Squeeze和expand模块来更好地提取特征。但作者认为,这种模块对于运行时间的增加大大超过了其对于模型带来的增益。
为了得到最佳通道数,作者做了个实验,观察到运行时间与通道数并不是一直都是正相关的,存在一些“最佳点”,如下图所示。在作者的设计下,在实时性的约束下,RFDN论文中使用的个通道,和ABPN使用的个通道并不是最佳点。所以,如下图所示,本文最终模型使用的通道数为。
然而,作者一开始训练采用的通道数是,是一个非最优通道,然后对模型进行全局裁剪,获得最后的个通道。
作者对bias移除也进行了实验,证明相对于运行时间的降低,PSNR的降低是较小的。所以,在最后的网络中,也将偏置选项移除了。
训练细节
本文总共训练三个管道:(1)大channel的模型;(2)channel裁剪的模型;(3)移除bias的模型。第二第三个模型,都进行finetune训练。三个训练管道均使用 Adam 优化器,,。每个管道都训练个epoch,每个epoch由 组随机裁剪和翻转的对组成。每组LR的 patchSize 为 ,由DIV2K训练数据集经过 衰退而来。
初始学习率为,在所有阶段使用学习率衰减调度程序:其中在前个epoch中,学习率lr保持不变,在后500个epoch中,lr线性衰减,直到。
阶段一
训练网络如下图所示。其中,,DS是上面所提及的的卷积层,此时每层都有卷积偏置项bias。参数在后续有所解释。
阶段二
模型裁剪阶段,全局结构化裁剪。裁剪channel。此时还在应用conv bias。此时将ch从降到。
阶段三
消除卷积层的偏置项。再次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的实验结果表明,设置为和在尝试的模型架构中得到最佳分数。因此,最终的模型参数为,DS为SC,激活层为Leaky ReLU,并且在某个时刻禁用偏置项。
但可以看出, m 和 R 的提升也带来了PSNR的提升。
(3)确定裁剪前模型的通道数量 。
为了确定裁剪到 channel为32模型的大模型通道数。从P/B/R的实验看,通道数为的大模型好一点,有最高的裁剪分数。
(4)finetune和偏置项移除 。
从上面的模型剪枝得到了后,再次对剪枝模型进行微调,得到模型。
对比C和F,可以看出剪枝的积极效果。剪枝后的训练,比直接训练,指标要略微提升一点。
最后,作者从模型中移除偏置项,再次进行微调,就获得了本文提出的模型 Bicubic++ 。模型 和模型无法得到最优指标,这都表明了通过剪枝这种训练管道的优势。
几种训练管道实验步骤()的视觉效果对比如下图所示。
(5)不同的R(残差块)和m(卷积层数)参数的加载。
提高R和m抗原带来更高的PSNR以及更慢的运行时间,本文的目标是在RTX3070保持在3ms以下,所以就坚持上面的选择。
对比结果
定量和定性的比较结果如下图所示。本文提出的Bicubic++比Bicubic好,比其他相关方法运行速度快。
版权声明:本文为博主作者:时光机゚原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/qq_19784349/article/details/134643251