苏黎世华人博士提出模型SwinIR,只用33%的参数量就碾压图像修复领域sota

简介: 参数量和模型的性能有绝对关系吗?苏黎世华人博士提出SwinIR模型,实验结果告诉你,越小的模型还可能更强!SwinIR使用Transformer力压CNN,又在图像修复领域屠榜,模型参数量降低67%,再也不要唯参数量论英雄了!

图像修复(image restoration)是一个受到长期关注和研究的最基础的CV问题,它能够从低质量的图像,例如缩略图、有噪音的图或是压缩图像中恢复为原始高质量图像。 但目前图像修复领域的sota方法都是基于卷积神经网络CNN的,但是很少有人尝试使用Transformer,尽管ViT在高级视觉任务中早已占据排行榜多年。 来自苏黎世联邦理工学院的华人博士提出一个适用于图像修复的模型SwinIR,主要包括浅层特征提取、深层特征提取和高质量图像重建三部分。
实验结果证明SwinIR的性能比目前sota方法提高了0.14-0.45dB,并且参数量还降低了67%。 

1.jpg论文地址:https://arxiv.org/abs/2108.10257项目地址:https://github.com/JingyunLiang/SwinIR
大多数基于CNN的方法侧重于精细的架构设计,如residual learning和dense learning,通过巧妙的模型设计来提升性能,增大模型容量。 虽然与传统的基于模型的方法相比CNN的性能有了显著的提高,但通常会遇到两个源于卷积层的基本问题
1)图像和卷积核之间的交互与内容无关。使用相同的卷积核来恢复不同的图像区域可能不是最佳选择;2)由于CNN更关注局部特征,所以卷积对于长依赖性、全局的特征建模是效果不好。 在这种情况下,很容易想到Transformer来替代CNN。Transformer的自注意力机制能够很好地捕获上下文之间的全局交互,并在多个视觉任务上具有出了良好的表现。 然而,用于图像修复的ViT需要将输入图像分割为具有固定大小(例如48×48)的patch,并对每个部分进行单独处理。 这种策略不可避免地会产生两个缺点:
1)边界像素不能利用块外的相邻像素进行图像恢复;2)恢复的图像可能会在每个图像块周围引入边界伪影。
虽然这个问题可以通过patch重叠来缓解,但它会带来额外的计算负担。

模型设计


SwinIR的设计基于Swin Transformer,包括三个部分: 2.jpg1)浅层特征抽取shallow feature extraction 浅层特征提取模块采用卷积层提取浅层特征,并将浅层特征直接传输到重构模块,以保留低频信息。 2)深层特征抽取deep feature extraction 深层特征提取模块主要由residual Swin Transformer Block(RSTB)组成组成,每个块利用多个Swin Transformer layer(STL)进行局部注意力和交叉窗口的交互。此外,还在块的末尾添加一个卷积层以增强特征,并使用残差连接为特征聚合提供快捷方式,也就是说RSTB由多个STL和一个卷积层共同构成残差块, 3)高质量图像重建high-quality(HQ) image reconstructi 重建模块是最后一步,融合了浅层和深层特征用了恢复高质量的图像。 在实验方面,作者首先研究了通道数,RSTB数目和STL数目对结果的影响。可以观察到PSNR与这三个超参数正相关。对于信道数,虽然性能不断提高,但参数量呈二次增长。为了平衡性能和模型尺寸,在剩下的实验中选择180作为通道数。对于RSTB数和层数,性能增益逐渐饱和,所以后续实验设置为6以获得一个相对较小的模型。3.jpg和经典的图像超分辨率(super-resolution, SR)模型对,包括DBPN、RCAN、RRDB、SAN、IGNN、HAN、NLSA和IPT。可以看出,当在DIV2K数据上进行训练时,SwinIR在几乎所有五个基准数据集的所有比例因子上都取得了最佳性能,在Manga109在4倍缩放上的最大PSNR增益达到0.26dB。 不过需要注意的是,RCAN和HAN引入了通道和空间注意力,IGNN提出了自适应patch特征聚合,NLSA基于非局部注意机制。所有这些基于CNN的注意机制的表现都不如所提出的基于Transformer的SwinIR,这也表明了文中所提出模型的有效性。 4.jpg当在更大的数据集(DIV2K+Flickr2K)上训练SwinIR时,性能进一步大幅度提高,也实现了比基于Transformer的模型IPT更好的精度,达到0.47dB。即使IPT在训练中使用ImageNet(超过一百三十万图像),并且具有超过一亿的参数。相比之下,即使与基于CNN的sota模型相比,SwinIR的参数也很少(1500万-4430万)。 在运行时方面,与基于CNN的代表性的模型RCAN相比,IPT和SwinIR在1024×1024分别需要约0.2、4.5和1.1秒。

实验结果


从可视化结果来看,SwinIR可以恢复高频细节并减轻模糊瑕疵,并产生锐利且自然的边缘。

相比之下,大多数基于CNN的方法会产生模糊的图像,甚至是不正确的纹理。与基于CNN的方法相比,IPT生成的图像更好,但它存在图像失真和边界伪影。5.jpg在图像降噪任务上,比较的方法包括传统模型BM3D和WNNM,基于CNN的模型DnCNN,IR-CNN,FFDNet,N3Net,NLRN,FOC-Net,RNAN,MWCNN和DRUNet。可以看到SwinIR模型比所有方法都强。6.jpg特别是它在具有100个高分辨率测试图像的大型Urban100数据集上通过最先进的DRUNet模型,最高可达0.3dB,并且SwinIR只有1200万的参数,而DRUNet有三亿参数,也就能侧面证明SwinIR的架构在学习用于图像恢复的特征表示方面是高效的。7.jpgSwinIR模型可以去除严重的噪声干扰并保留高频图像细节,从而获得更清晰的边缘和更自然的纹理。相比之下,其他方法要么过于平滑,要么过于锐利,无法恢复丰富的纹理。

相关文章
|
编译器 程序员 开发工具
c语言从入门到实战——在系统学习C语言之前所需要了解的知识
C语言是一种通用的、过程式的计算机编程语言,支持结构化编程、词汇变量作用域和递归等功能,其设计提供了低级别的存取权限,并且要求程序员管理所有的内存细节。C语言的基本构成包括数据类型(如整型、浮点型、字符型等)、运算符(如算术运算符、关系运算符、逻辑运算符等)、控制结构(如顺序结构、选择结构、循环结构等)以及函数等。此外,C语言还提供了指针的概念,这是其他许多编程语言所不具备的。指针是一个变量,其值为另一个变量的地址,通过指针可以间接访问和操作内存中的数据。C语言也支持数组、结构体、联合体等复合数据类型,以及文件操作、动态内存分配等高级功能。
281 0
|
SQL 开发框架 安全
Linux系统中ARMv8架构u-boot启动流程分析
Linux系统中ARMv8架构u-boot启动流程分析
645 1
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
AI如何预测体育比赛结果
AI预测体育比赛结果依赖于历史数据、球员表现、球队状态等多因素。通过数据收集与处理、机器学习模型(如回归分析、神经网络)、模拟与蒙特卡洛方法、实时数据分析及自然语言处理等技术,AI能识别影响比赛的关键模式,评估胜负概率,并结合统计学与优化算法不断调整预测,提升准确性。
|
12月前
|
传感器 物联网 数据挖掘
事件驱动模型
【10月更文挑战第30天】
132 5
|
10月前
|
开发框架 安全 Java
Java 反射机制:动态编程的强大利器
Java反射机制允许程序在运行时检查类、接口、字段和方法的信息,并能操作对象。它提供了一种动态编程的方式,使得代码更加灵活,能够适应未知的或变化的需求,是开发框架和库的重要工具。
179 5
|
编解码 人工智能 并行计算
阿里妈妈技术开源FLUX图像修复&蒸馏加速模型
本文介绍了阿里妈妈技术团队基于FLUX开发的Controlnet修复模型和蒸馏加速模型,填补了社区空白并提升了FLUX的实用性和效率。
|
11月前
|
人工智能 Cloud Native Serverless
从零到一:阿里云CAP助你轻松高效构建云应用
云原生应用开发平台CAP是阿里云提供的一站式应用开发及生命周期管理平台。它内置丰富的Serverless和AI应用模板、先进的开发者工具和企业级应用管理功能,帮助个人和企业开发者快速构建、部署和管理云上应用,大幅提升研发、部署和运维效能。CAP支持Web应用、AI应用、ETL数据处理等多种场景,提供图形化、低代码的流程编排能力,助力开发者高效构建复杂业务流程。
|
SQL 分布式计算 数据可视化
基于Hadoop的大数据可视化方法
【8月更文第28天】在大数据时代,有效地处理和分析海量数据对于企业来说至关重要。Hadoop作为一个强大的分布式数据处理框架,能够处理PB级别的数据量。然而,仅仅完成数据处理还不够,还需要将这些数据转化为易于理解的信息,这就是数据可视化的重要性所在。本文将详细介绍如何使用Hadoop处理后的数据进行有效的可视化分析,并会涉及一些流行的可视化工具如Tableau、Qlik等。
398 0
|
消息中间件 供应链 Java
实现基于Spring Cloud的事件驱动微服务
实现基于Spring Cloud的事件驱动微服务
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的校园线上订餐系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的校园线上订餐系统的详细设计和实现(源码+lw+部署文档+讲解等)
145 0