NTIRE2023 图像复原和增强赛事Efficient Super-Resolution赛道冠军方案解读——DIPNet

news2024/11/28 14:40:10

DIPNet: Efficiency Distillation and Iterative Pruning for Image Super-Resolution


0. 简介

NTIRE 的全称为New Trends in Image Restoration and Enhancement Challenges,即“图像复原和增强挑战中的新趋势”,是CVPR(IEEE Conference on Computer Vision and Pattern Recognition)举办的极具影响力的计算机视觉底层任务比赛,主要涉及的研究方向有:图像超分辨率、图像去噪、去模糊、去摩尔纹、重建和去雾等。

其中在2023年,CVPR开展的NTIRE相关挑战有:

  1. 夜间摄影渲染(night photography rendering);

  2. 从图像中估计深度(HR depth from images of specular and transparent surfaces);

  3. 图像去噪(image denoising);

  4. 视频着色(video colorization);

  5. 阴影去除(shadow removal);

  6. 视频增强的质量评估(quality assessment of video enhancement);

  7. 双目超分辨率(stereo super-resolution);

  8. 光场图像超分辨率(light field image super-resolution);

  9. 图像4倍超分辨率(image super-resolution (×4));

  10. 360°全景图像和视频超分辨率(360° omnidirectional image and video super-resolution);

  11. 镜头到镜头的散景效果转换(lens-to-lens bokeh effect transformation);

  12. 实时4K超分辨率(real-time 4K super-resolution);

  13. 高分辨率图像非均匀去雾(HR nonhomogenous dehazing);

  14. 高效超分辨率(efficient super-resolution)。

同时,以上的这些挑战也蕴含着当前的一些研究难点及挑战,需要研究学者们集思广益,提出针对提升任务性能的想法,为共同解决近年来的难题贡献出一份力量。

本篇文章着重于NTIRE 2023高效超分辨率(efficient super-resolution)挑战赛的冠军方案的解读,学习能够提升任务的tricks,以期给相关的科研任务一些启发。NTIRE 2023高效超分辨率挑战赛的目标是以RFDN(AIM 2020 高效超分辨率冠军)为baseline,以尽量少的推理时间(runtime),参数量(parameters),计算量(FLOPs),激活值(activations)和显存占用(memory consumption)实现4倍超分,同时在DIV2K validation set上的PSNR至少要达到29.00dB

比赛提供的数据集有DIV2K数据集LSDIR数据集。DIV2K数据集包含1000张多样的2K分辨率的RGB图像,其中训练集有800张,验证集有100张,测试集有100张。LSDIR数据集有86991张高分辨率高质量的图像,其中训练集有84991张,验证集有1000张,测试集有1000张。


1. 摘要

最近对高效超分辨率的研究主要集中在通过各种网络设计来减少参数量(the number of parameters)和浮点数运算量(floating-point operations)。尽管这些方法能够减少参数量和计算量,但是并不一定能够真正减少推理时间(running time)

针对这个问题,作者提出了一个多阶段轻量级网络增强方法,能够使得轻量级网络获得优异的性能。特别地,作者使用经过增强的高分辨率结果(实际上是其他网络的1倍超分结果)作为训练时的额外监督,从而提升轻量级学生网络的学习能力。

学生网络训练收敛之后,使用重参数化技术(reparameterization)技术和迭代式网络修剪(iterative network pruning) 来简化网络的结构。

同时,作者还采用了结合多锚点蒸馏(multi-anchor distillation)和渐进式学习(progressive learning) 作为高效轻量化网络训练策略,使得轻量化网络获得杰出的性能。

最后,该方法在保持极具竞争力的超分结果的同时,在NTIRE 2023高效超分辨率挑战的所有方案中,推理速度是最快的。结果表明,该方法在极具代表性的DIV2K数据集上(在客观和主观方面)取得了相当好的性能,同时推理速度更快,网络参数量更少


2. 引言

最近的单幅图像超分(SISR)方法(如RFDN)在重建图像方面取得了巨大的成功。然而,这些方法通常需要大量的计算资源,使得很难部署在真实世界应用的资源受限的设备中。

为了解决这个问题,越来越多研究者开发出具有高效推理速度的SISR模型,同时要在重建图像质量计算量上取得更好的权衡(trade-offs)。之前的研究尝试通过减少模型参数或浮点操作来提高效率,具有权重共享的递归网络通常用来减少参数量,但是由于其复杂的图拓扑结构,并不一定能减少计算量和推理时间。同样的,通常也会使用深度可分离卷积(depth-wise convolutions)、特征划分(feature splitting)和混洗(shuffling) 来减少FLOPs,但这也不一定能提升计算效率。

因此,作者考虑从其他的角度解决问题,即无需额外的网络设计,只通过更好的训练策略,就能达到高效超分。如下图所示,作者提出的策略使得超分模型更快更小。直接训练好一个小网络是困难的,但是我们可以通过先训练一个大的教师网络,再让教师网络通过知识蒸馏(knowledge distillation)的方式指导学生网络的学习。但是由于教师网络和学生网络的学习能力存在巨大的差距,所以学生网络很难通过直接蒸馏的方式学到足够的高频信息。受到HGGT的启发,作者使用的高分辨率(HR)图像不是原始数据集中的HR图像,而是经过增强的HR图像。增强后的图像能够提供更丰富的高频信息,能够帮助学习能力有限的学生网络更轻松的学习。受到RepVGG的启发,在设计学生网络的过程中,作者设计了顺序分支,并行分支和残差连接。当学生网络训练收敛后,使用重参数化的技术简化成一个轻量级结构。这一操作增强了模型的学习能力,但又没有引入额外的模型复杂度。为了充分使用教师网络的指导能力,作者使用多层级蒸馏策略,即在网络的不同结点处设置锚点,使用锚点处不同层级的特征来进行蒸馏

通常,为了训练的方便,我们使用相对较小的图块(patch)进行训练。然而,近期研究表明这样的方式将会造成训练和测试时的输入分布不一致,使得网络在测试时不能高效地进行一些全局操作。因此,为了使得模型在测试阶段表现得更好,训练阶段和测试阶段的输入尺寸应该尽可能接近。然而,在训练时直接使用大尺寸的图块会非常耗时,不能使用更大的图块也会进一步影响训练的稳定性。同时,在表达能力有限的网络中,使用大的图块,并不利于挖掘全局的信息。因此作者采用了渐进式学习的方法,在训练过程中逐渐增大输入的图块尺寸,能够取得很好的结果。训练好的学生网络仍有一些不重要的冗余参数,所以作者迭代式地修剪模型,进一步压缩模型尺寸。

作者的贡献总结如下:

  • 首先,提出了使用增强的HR图像来增强轻量级网络的学习能力;
  • 作者提出了一个结合蒸馏,渐进式学习和修剪的多阶段轻量化训练策略
  • 大量实验表明论文所提方法的有效性,并且该方法在推理时间和模型大小上超过了NITRE 2023高效超分挑战赛的所有其他对手。

3. 相关工作

相关工作中回顾了一些主流的单幅图像超分和高效图像超分领域的方法。

3.1 单幅图像超分

  • Dong等人提出了第一个基于CNN的超分方法——SRCNN。
  • Kim等人提出了一个更深(20层)的网络来提高超分性能——VDSR。
  • Lim等人使用局部和残差连接,提出了EDSR。
  • RCAN引入了通道注意力和二阶通道注意力,可以利用特征的相关性来提高性能。
  • 一些工作提出了改进的损失函数来学习真实的图像细节——VGG loss、perceptual loss和GAN loss。
  • 基于Transformer的超分方法越来越流行,能够获得更好的性能——SwinIR和HAT。
  • 然而,大部分方法需要大量的计算资源,参数量、FLOPs和推理时间都比较大,不能在边缘设备上进行部署和应用。

3.1 高效图像超分

高效图像超分旨在减少计算量和参数量,同时取得更快的推理时间和保持良好的性能。在真实世界的SR模型部署中,边缘设备的算力通常十分有限,因此也有大量的研究工作集中于高效的超分技术。

  • NTIREAIM几乎每年都会开展高效图像超分赛道,促进这方面的相关研究(大家可以好好留意一下这两个比赛)。

  • CARN(2018)使用了局部和全局级联机制,从而获得轻量级的SR网络。

  • IMDN(2019)通过构造级联信息多蒸馏块,设计了一个信息多蒸馏网络来提取层级特征。

  • RFDN(2020)引入了特征信息块来进一步提升网络性能,使用 1 × 1 1\times1 1×1卷积层实现维度的转换。

  • RLFN(2022)在RFDN的基础上,探究了其速度瓶颈,通过移除层级特征连接来提高推理速度。此外,RLFN提出了特征提取器,能够提取边缘和纹理的更多信息。RLFN是NTIRE 2022高效超分挑战赛的冠军


4. 方法

作者提出的高效蒸馏和迭代式修剪SR网络,称为DIPNet,该网络包含四个主要模块,分别为:

  • 重参数化残差特征块(reparameterization residual feature block, RRFB);
  • 基于模型引导的GT增强(Model Guided Ground-truth Enhancement);
  • 多锚点特征蒸馏(Multi-anchor Feature Distillation);
  • 迭代式修剪策略(Iterative Pruning Strategy)。

4.1 重参数化残差特征块

遵循RFDNRLFN,作者同样使用信息蒸馏网络来重构高质量的SR图像。基于RLFNRLFB块,作者在块中引入了可重参数化的拓扑结构。下图中,(a)是原始的RLFB块,在训练过程中,作者将其拓展成重参数化残差特征块(RRFB)的结构,如(b)所示。RRB的结构如(c)所示,在保证计算效率的同时,挖掘了优化过程中复杂结构的潜力,因为在推理过程中,RRB与单个 3 × 3 3\times3 3×3的卷积在计算上是等价的。

4.2 基于模型引导的GT增强

现在大多数方法在训练阶段都直接使用原始的HR图像。然而,根据HGGT提到的那样,原始HR图像的感知质量可能还是不够好,没有足够好到能够很好地监督训练。受到HGGT的启发,作者提出了一个模型引导GT增强策略,用来增强HR图像的(感知)质量。首先,作者训练了一个大型的混合注意力Transfomer(即HAT),用于实现1倍超分,用来产生增强的HR输出,记作 I e n h I_{enh} Ienh。然后使用低分辨率图像 I L R I_{LR} ILR和增强的HR图像 I e n h I_{enh} Ienh监督4倍超分的训练。不同于HGGT,作者没有进行人工的图块选择,保留区域较为平坦的图块,因为手工的选择通常能使得产生的结果视觉效果更好,但是对于客观指标却没有提升。下图展示了某些图块经过增强后的质量会优于原始的GT。

4.3 多锚点特征蒸馏

为了进一步提升轻量级模型的性能,作者提出了多锚点特征蒸馏方法。如下图所示,多锚点特征蒸馏包含两个阶段,第一个阶段是训练一个大的教师模型HAT,该模型记作 τ \tau τ。值得注意的是,在教师模型4倍超分训练过程中,作者使用增强的HR图像 I e n h I_{enh} Ienh用于最小化损失,即最小化 ∣ ∣ τ ( I L R ) − I e n h ∣ ∣ 1 ||\tau(I_{LR})-I_{enh}||_1 ∣∣τ(ILR)Ienh1

在训练完教师网络之后,作者对学生网络进行多层级的蒸馏,把学生模型记作 S S S。一旦学生模型训练收敛,就使用对RLFB结构使用重参数化技术。在蒸馏过程中,作者使用教师模型 τ \tau τ四个不同层级提取出的特征图,来监督学生模型 S S S的四个块的学习。

同样地,作者也是用教师模型地输出的伪GT增强后的GT进一步监督学生模型 S S S的学习。在完成蒸馏后,作者使用渐进式学习的策略微调学生模型。也就是在训练过程中逐渐增加输入图块的尺寸,同时使用 L 2 L_2 L2损失来监督训练,直到学生模型完全收敛。

4.4 迭代式修剪策略

最后,作者迭代式地修剪重参数化之后的学生网络。受到AGP的启发,在模型训练过程中,作者使用 L 2 L_2 L2滤波修剪的方式对网络进行迭代式地修剪。直到网络不能高效地进行预测后,作者才停止对网络的修剪,并把上一次修剪的网络作为最后的网络。


5. 实验

5.1 实验设置和细节

训练集:DIV2K。

测试集:Set5、Set14、BSD100、Urban100和Manga109。另外还有NTIRE 2023高效超分挑战赛提供的DIV2K和LDSIR的测试集。

评估指标:RGB通道的PSNR和SSIM。另外还有参数量(the number of parameters)、计算量(GFLOPs)和推理时间(inference time)。

比较模型:CARN、IMDN、RFDN、RLFN等等。

训练设备:NVIDIA 2080ti。

数据增强策略:随机翻转和旋转。

优化器:Adam。

训练策略:在训练教师网络和蒸馏学生网络的时候,初始学习率设置为 1 0 − 4 10^{-4} 104,每100k个迭代次数学习率减半,使用 L 1 L_1 L1损失进行监督。当使用渐进式学习策略微调学生网络时,初始学习率设置为 2 × 1 0 − 5 2\times10^{-5} 2×105,每200k个迭代次数学习率减半,输入的图块大小逐渐增大,依次为 [ 64 , 128 , 256 , 384 ] [64,128,256,384] [64,128,256,384]。在迭代式修剪的过程中,修剪率为0.05,一共重复3次。在每轮修剪之后, I L R I_{LR} ILR I e n h I_{enh} Ienh都用于微调过程的监督, 384 × 384 384\times384 384×384的图块作为微调过程中的输入。

5.2 模型复杂度

下表展示了在维持29.00dB的PSNR时,作者提出的DIPNe使用的资源最少,推理时间快过RFDN,迭代式修剪策略使得网络在最少的开销中,能够获得更高的速度增益,远远快于RFDN​

5.3 主观比较

5.4 客观比较

5.5 消融实验

Original GT vs. Enhanced GT

最后,作者迭代式地修剪重参数化之后的学生网络。受到AGP的启发,在模型训练过程中,作者使用 L 2 L_2 L2滤波修剪的方式对网络进行迭代式地修剪。直到网络不能高效地进行预测后,作者才停止对网络的修剪,并把上一次修剪的网络作为最后的网络。

多阶段特征蒸馏

迭代式修剪策略

5.6 NTIRE 2023高效超分挑战赛


6. 结论

在本文中,作者提出了一个新颖的高效单幅图像超分的方法,该方法不是只依赖于网络结构的设计,而是通过改进训练策略来实现的。特别地,作者使用增强后的GT图像作为训练时额外的监督,结合蒸馏,渐进式学习和修剪提出了多阶段轻量级训练策略。实验表明了所提方法的有效性,针对推理时间模型大小在NTIRE 2023高效超分挑战赛中取得了SOTA的性能。论文的贡献在于:使用增强后的GT图像提升轻量级网络的学习能力,提出了多阶段轻量化训练策略


最后感谢小伙伴们的学习噢~


最后附上2023年高效超分的比赛报告链接,欢迎大家多多阅读分享:NTIRE 2023 Challenge on Efficient Super-Resolution: Methods and Results

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/741879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JAVAEE】JVM中垃圾回收机制 GC

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶 上篇文章我们讲了java运行时内存的各个区域。 传送门:【JavaEE】JVM的组成及类加载过程_xyk:的博客-CSDN博客 对于程序计数器、虚拟机栈、本地方法栈这三部分区域而言&#x…

6.S081——CPU调度部分(CPU的复用和调度)——xv6源码完全解析系列(10)

0.briefly speaking 终于到这里了,我们在之前阅读很多地方的内核代码时,总是习惯性地绕开CPU调度的部分(比如yield函数)。现在我们总算可以深入进去一探究竟了,这次总算是将整个操作系统中的一块重要拼图拼上去了。 有操作系统相关基础概念…

5 字符串拼接

5 字符串拼接作者: 赵晓鹏时间限制: 1S章节: 动态规划与贪心 输入说明 : 见问题描述。 输出说明 : 见问题描述。 输入范例 : aaaaaaaaaab aaaaaaaac aaaaaaaaaacaaaaaaaab 输出范例 : YES aa_________aaaaaaaab #include<iostream> #include<vector> using …

【数据分析 - 基础入门之pandas篇②】- pandas数据结构——Series

文章目录 前言一、Series的创建1.1 列表创建1.2 NumPy数组创建1.3 字典创建 二、Series索引2.1 显式索引2.2 隐式索引 三、Series切片2.1 显式切片2.2 隐式切片 四、Series基本属性和方法4.1 属性4.2 方法4.3 案例——使用 bool 值去除空值 五、Series运算六、Series多层行索引…

带你全面了解四大内存操作函数memset(),memcpy(),memmove(),memcmp()(附模拟实现)

内存操作函数 文章目录 内存操作函数memcpymemmovememcmpmemset 注&#xff1a;点击蓝色标题可以跳转到官方网站查看更权威的解析哦。 memcpy void * memcpy ( void * destination, const void * source, size_t num );函数memcpy从source的位置开始&#xff0c;向后复制num个…

Linux - CentOS 7 源码安装 MySQL 8.0.31

一、mysql-boost-8.0.31.tar.gz 源码下载 下载地址&#xff1a;https://dev.mysql.com 二、源码安装 MySQl 要求 cmake、Boost C库、ncurses库、OpenSSL库 //需要cmake3&#xff0c;gcc-5.3以上&#xff1b; 三、源码搭建 MySQL 环境 1、创建用户名和组 groupadd mysql …

ChatLaw团队招实习生啦!真格基金的创业、投资与AI详细指南;远程工作的8个安全法则;游戏开发者的数学教程 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 北大 ChatLaw 团队招聘实习生&#xff0c;开放算法和前后端岗位 ChatLaw 是一个开源的中文法律大模型&#xff0c;由北京大学与北大-兔…

vim编辑器中实现左边目录,右边内容布局的方法(vim插件:显示树形目录插件NERDTree安装和使用)

NERDTree&#xff1a;是Vim编辑器的文件系统资源管理器。使用此插件&#xff0c;用户可以直观地浏览复杂的目录层次结构&#xff0c;快速打开文件进行读取或编辑&#xff0c;并执行基本的文件系统操作。 它允许轻松浏览文件&#xff0c;并在不离开vim的情况下执行一些基本操作…

Spring Cloud的基本应用

上篇文章我们的eureka的集群已经搭建完毕,但是我们还没有开始使用,之前我们的page访问的方法是直接写死的,现在我们就可以改为集群的方式来写 Autowired//注册中心对应的客户端对象private DiscoveryClient discoveryClient;RequestMapping("query/{id}")public Prod…

基于51单片机的智能垃圾桶

功能&#xff1a; 本实例是基于51单片机为核心的智能垃圾桶仿真&#xff0c;主要由51单片机最小系统、L298N电机驱动电路、开盖电机、超声波传感器、红外测速模块、直流电机、红外人体传感器、LCD1602显示屏、震动传感器、按键电路构成。 1.系统的传感器主要用人体感应和机体震…

订单结算页+下单业务

一、订单结算页 1.业务分析 (1) 获取用户收货地址信息 一般的收货地址都是多个&#xff0c;使用时选中一个&#xff0c;所以收货地址使用List集合封装 (2)获取购物车商品信息 购物车商品也是多个&#xff0c;使用List集合封装 (3)查询商品库存 查询每个商品是否有库存&#…

VSCode安装及环境配置详细教程(windows版本)

目录 安装VSCode 安装Python 检查环境变量 检查Python是否能运行 VSCode环境配置 切换成简体中文 添加Python插件 编写代码运行 &#xff01;&#xff01;请先在官网下载Python和VSCode安装包&#xff0c;保存至本地 Python官网&#xff1a;https://www.python.org/do…

多元回归预测 | Matlab基于灰狼算法(GWO)优化高斯过程回归(GWO-GPR)的数据回归预测,matlab代码,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于灰狼算法(GWO)优化高斯过程回归(GWO-GPR)的数据回归预测,matlab代码,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源…

APP测试要点有哪些?

我们日常购物、旅游、支付等活动都离不开手机&#xff0c;由此衍生了很多APP。 比如每天使用频率非常高的微信、支付宝、微博、抖音、王者荣耀等等。 APP测试主要进行功能测试、性能测试、自动化测试、安全性测试、兼容性测试、专项测试。 01、APP测试流程 APP测试流程与web测…

软考A计划-系统集成项目管理工程师-项目进度管理-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

python glob库glob函数返回为空时

这里的max函数会报空序列的错误&#xff0c;原因就是glob.glob函数读取不到文件的问题&#xff0c;推测是脚本所在文件夹与传入的文件夹地址不对造成的&#xff0c;比如C&#xff1a;/tor/data/jiaoben.py,而文件所在文件夹是C&#xff1a;/tor/biaobei/

自媒体13条监管新规来了:做自媒体还有前途吗?

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 各位自媒体人&#xff0c;大家一定要逐条逐句&#xff0c;认真研读&#xff0c;领会精神&#xff0c;掌握要求&#xff0c;规范运营好自己的账号&#xff0c;切莫越界踩线&#xff0c;多为广大网友…

邮箱推荐和(警告)使用qq邮箱的坏处

qq如果发布违规消息&#xff0c;比如群聊无意发布会导致你账号封号&#xff0c;而且随着次数增多&#xff0c;会导致永久封号&#xff0c;你的qq音乐&#xff0c;qq浏览器&#xff0c;qq游戏&#xff0c;{qq邮箱}&#xff0c;全部会无法登录&#xff0c;比如需要登陆邮箱验证码…

初学者也能轻松掌握的MQL4编程入门指南

MQL4编程是外汇交易中极为重要的一部分&#xff0c;掌握MQL4编程可以帮助交易者快速创建自己的交易算法&#xff0c;进而提高交易效率和盈利水平。但是对于初学者来说&#xff0c;MQL4编程可能会显得有些困难。本篇文章就是为初学者准备的&#xff0c;针对MQL4编程进行入门指导…

对RAM和ROM的理解

什么是RAM、ROM&#xff1f; RAM(Random Access Memory)随机存取存储器 ROM(Read Only Memory)只读存储器 先记住一件事 RAM断电将失去数据 ROM断电仍会保留数据 RAM、ROM、Flash、内存条、硬盘、SD卡到底怎么归类&#xff1f; 我们先来看下计算机的原理和计算机的需求 …