深度学习工程师必看:更简单的超分辨重构方法拿走不谢
csdh11 2024-12-31 10:28 21 浏览
作者 | Yong Guo, Jian Chen等
译者 | 刘畅
出品 | AI科技大本营(ID:rgznai100)
通过学习从低分辨率(LR)图像到高分辨率(HR)图像之间的非线性映射函数,深度神经网络在图像超分辨率(SR)任务上取得了较好的性能。
但是,现有的SR方法存在两个缺点:第一,学习从LR到HR图像的映射函数通常是一个不适定问题,因为存在无限的HR图像可以降采样为同一LR图像,这使得很难找到一个好的解决方案。第二,成对的LR-HR数据在实际应用中可能并不适用,因为图像退化的方法通常是未知的。对于这种更一般的情况,现有的SR模型通常会产生较差的性能。
为了解决上述问题,本文提出了一种对偶回归方法,它通过引入对LR数据的附加约束来减少函数的解空间。
具体而言,除了学习从LR到HR图像的映射外,本文方法还学习了另外的对偶回归映射,用于估计下采样的内核并重建LR图像,从而形成了一个闭环,可以提供额外的监督。
更关键的是,由于对偶回归过程不依赖于HR图像,因此我们可以直接从LR图像中学习。从这个意义上讲,我们可以轻松地将SR模型适应于真实场景的数据,例如来自YouTube的原始视频。实验结果证明了本文方法是优于现有方法,且能在真实场景上取得较好的结果。
引言
深度神经网络(DNN)已成为许多实际应用的主力军方法,包括图像分类,视频理解等等。
最近,图像超分辨率(SR)已成为一个热门的方向,它主要是学习从低分辨率(LR)图像到高分辨率(HR)图像之间的非线性映射。目前已经提出了许多基于深度学习的超分辨重构方法。但是,这些方法主要有两个局限:
第一,学习从LR到HR图像的映射通常是一个不适定问题,因为存在无限多可能的HR图像可以降采样获得相同的LR图像。这会导致LR映射到HR图像的解空间变得极大。因此很难在如此大的空间中学习到好的解决方案,模型性能受到限制。为了提高SR的性能,可以通过增加模型的复杂度来设计有效的模型,例如EDSR,DBPN和RCAN。但是,这些方法仍然存在解空间大的问题,从而导致超分辨性能有限,不会产生细致的纹理(见图1)。因此,如何减少映射函数的解空间以提高SR模型的性能成为了比较重要的问题。
第二,当无法获取配对的数据时,很难获得较好的SR模型。这是由于大多数SR方法都依赖于成对的训练数据,即HR图像及其Bicubic降级后的LR图。但是实际情况是,未配对的数据通常更多。而且,真实世界的数据不一定与通过特定的降采样方法(例如,双三次)获得的LR图像具有相同的分布。因此,能处理实际场景的SR模型是非常具有挑战性的。更关键的是,如果我们将现有的SR模型直接应用于现实世界的数据,它们通常会带来严重的泛化性问题,并产生较差的性能。因此,如何有效利用未配对的数据以使SR模型适应实际应用是一个比较重要的问题。
在本文中,作者提出了一种新的对偶回归方法,该方案形成了一个闭环用以增强SR性能。
为了解决第一个问题,本文引入了一个额外的约束来减少可能的解空间,以使超分辨图像可以重构输入的LR图像。
理想情况下,如果来自LR→HR的映射是最佳的,那么可以对超分辨图像进行降采样以获得相同的输入LR图像。在这样的约束下,我们能够估计出下采样内核,从而减少可能的函数空间,找到从LR到HR较好的映射。因此,这会变得更容易获得好的SR模型(请参见图1中的比较)。
为了解决第二个问题,由于LR图像的回归不依赖于HR图像,因此我们的方法可以直接从LR图像中学习。通过这种方式,本文方法可以轻松地将SR模型调整为适用于现实世界中的LR数据,例如来自Youtube的原始视频。实验证明了本文的方法优于SOTA方法。
本文的贡献总结如下:
本文通过引入其他约束条件提出了对偶回归方法,以便形成闭环的映射,可以增强SR模型的性能。此外,本文还从理论上分析了该方案的泛化能力,从而进一步证实了该方案是优于现有的方法。
本文研究了更通用的超分辨率情况,如没有相应HR数据的真实LR数据。利用提出的对偶回归方法,可以轻松地将深度模型调整为适用于现实世界的数据,例如YouTube的原始视频。
利用配对的训练数据和未配对的真实场景数据做了大量的SR实验,证明了本文所提出的对偶回归方法在图像超分辨率中的有效性。
方法
本文提出了一种对偶回归方法来处理配对的和非配对的训练数据,以实现超分辨率(SR)重构。总体的训练方案如图2所示。
针对配对的训练数据,主要是通过对LR数据引入了一个附加约束,除了学习LR 到HR的映射外,本文还学习了从超分辨图像到LR图像的逆映射。实际上,作者将SR问题公式化为涉及两个回归任务的对偶回归模型。损失函数如下图所示,包含两部分,一个是P网络的损失,一个是D网络的损失,权重推荐设置为0.1。
针对未配对的训练数据,作者还考虑了更一般的SR情况,对应真实场景的数据,是没有对应的HR数据可以用于训练。因此作者提出了一种有效的训练方法,可以使SR模型更适应新的LR数据,训练算法如下所示。
这是一种半监督的学习方法,使用配对的数据训练P网络,使用没有配对的数据训练D网络。目标函数如下,其中当使用有标签的数据时,1Sp为1,当使用没有标签的数据时,1Sp为0。
网络的整体结构如下图所示,它是基于U-Net设计的超分辨网络。本文的DRN模型由两部分组成:原始网络和对偶网络。作者还给出了详细的理论证明,这里就不赘述了,详情可以参见论文。
实验
作者在具有成对的Bicubic数据和不成对的真实数据情况下,对图像超分辨率任务进行了广泛的对比实验。所有实现均是基于PyTorch框架。测试数据集是五个基准数据集,包括SET5,SET14,BSDS100,URBAN100和MANGA109。评价指标是常用的PSNR和SSIM。训练集是DIV2K和Flickr2K数据集。
作者首先展示了4x和8x SR的性能和模型大小的比较。在实验中,作者提出了两种模型,即小模型DRN-S和大模型DRN-L。而对比的方法是从它们的预训练模型,开源的代码或是原始论文中获得的结果。结果如下:
还提供了4倍超分辨和8倍超分辨下,各方法性能对比的曲线图。
作者还研究了P网络和D网络两个损失函数之间的权重影响。以及是否加对偶学习的影响。如下表格所示。
最后,作者对比了在真实场景下的重构效果,这里仅展示了视觉上的结果。也对比了使用不同插值方法下的效果,可发现本文的效果均是最优的。
结论
在本文中,作者提出了一种针对配对和非配对数据的对偶回归方法。在配对数据上,作者通过重构LR图像来引入解空间的约束,可以显著提高SR模型的性能。此外,本文还将重点放在未配对的数据上,并将对偶回归方法应用于实际数据,例如来自YouTube的原始视频。对成对和非成对数据的大量实验证明了本文的方法是优于基准方法。
论文地址:
https://arxiv.org/pdf/2003.07018.pdf
相关推荐
- 用Python轻松修改Word文件的作者和时间,打造自己的专属效率工具
-
你是否曾经遇到过需要批量修改Word文件的作者、创建时间或修改时间的情况?手动操作不仅费时费力,还容易出错。可以用Python编写一个小工具,轻松解决这个问题!无论你是编程新手还是有一定经验的...
- 插件开发js代码划分(js插件编写)
-
在开发Chrome插件时,将JavaScript代码拆分成多个模块而非集中放置,主要基于性能优化、可维护性提升和浏览器插件特性适配等多方面的考量。以下是具体原因及区别分析:一、拆分的核心原因...
- 5分钟掌握Python中的标准输入、标准输出、标准错误
-
读取用户输入从标准输入获取输入:user_input=input("Impartyourwisdom:")print(f"Youshared:{user_input}")...
- 高大上的解答:在 'packages.pyi' 中找不到引用 'urllib3'
-
DeepSeek的一句代码:...
- Flask 入门教程(flask快速入门)
-
目录什么是Flask?环境配置与安装第一个Flask应用:HelloWorld路由与视图函数模板与Jinja2表单处理与用户输入...
- 每日一库之 Go 语言开发者的神器—Gotx
-
点击上方蓝色“Go语言中文网”关注我们,领全套Go资料,每天学习Go语言简介Gotx是一个Go语言(Golang)的解释器和运行环境,只有单个可执行文件,绿色、跨平台,无需安装任何Go语言环境就可...
- MySQL性能调优工具包制作(mysql性能调整)
-
一、最终工具包内容mysql_tuning_toolkit/├──scripts/#核心脚本│├──sysbench-pro.sh#...
- 掌握TensorFlow核心用法:从安装到实战的完整指南
-
一、为什么TensorFlow值得学习?作为全球使用最广泛的开源机器学习框架,TensorFlow已累计获得超过17万GitHub星标,支撑着Google搜索、Waymo自动驾驶、NASA卫星图像分析...
- 如何把PY 打包成EXE安装文件(pypy 打包exe)
-
将Python脚本打包成EXE文件通常使用第三方工具实现,以下是详细步骤和注意事项:...
- Pygame Zero 详细使用教程(python zerorpc)
-
PygameZero是一个基于Pygame的简化游戏开发框架,特别适合初学者和快速原型开发。它隐藏了许多底层的复杂性,使得开发者可以更专注于游戏逻辑的实现。本文将通过分析提供的代码,详细介绍如...
- Stable diffusion AI画图辅助脚本 Script 的使用(二)
-
本篇为脚本使用介绍的第二部分,主要介绍Promptmatrix提示词矩阵以及UltimateSDUpscale终极SD放大这两个脚本,同时也简单介绍一下如何编写自己的脚本。1、Promp...
- 一文明白Python 的import如何工作
-
Pythonimport系统的基础知识Python的import系统是该语言设计的关键部分,允许模块化编程和代码的轻松重用。了解这个系统对任何Python程序员都很重要,因为它决定了代码的结构...
- Highlight.js - 前端的代码语法高亮库
-
千辛万苦写了篇技术分享,贴了一堆代码,兴高采烈地发到了自己的博客网站上。结果却发现代码全是白底黑字,字体还难看得很,你瞬间就没了兴致。能不能让网页也能像IDE那样,做带语法高亮的炫酷显示呢?来看一...
- xbox xsx/s ps2模拟器 战神12,北欧女神2 配置教程
-
xsxxss下载PS2独立模拟器,Retroarch全能模拟器地址。...
- RetroArch 着色器、金手指怎么用? 重返复古游戏萤幕滤镜效果
-
自从上次分享RetroArch模拟器的一些技巧后,许多模拟器新用户对老旧游戏机感到好奇,为什么游戏画面看起来会有很多马赛克。这主要是因为当年的游戏开发商是针对当时的屏幕进行设计的,所以在现在的高分辨率...
- 一周热门
- 最近发表
-
- 用Python轻松修改Word文件的作者和时间,打造自己的专属效率工具
- 插件开发js代码划分(js插件编写)
- 5分钟掌握Python中的标准输入、标准输出、标准错误
- 高大上的解答:在 'packages.pyi' 中找不到引用 'urllib3'
- Flask 入门教程(flask快速入门)
- 每日一库之 Go 语言开发者的神器—Gotx
- MySQL性能调优工具包制作(mysql性能调整)
- 掌握TensorFlow核心用法:从安装到实战的完整指南
- 如何把PY 打包成EXE安装文件(pypy 打包exe)
- Pygame Zero 详细使用教程(python zerorpc)
- 标签列表
-
- mydisktest_v298 (34)
- document.appendchild (35)
- 头像打包下载 (61)
- acmecadconverter_8.52绿色版 (39)
- word文档批量处理大师破解版 (36)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- parsevideo (33)
- 个人网站源码 (37)
- centos7.4下载 (33)
- mysql 查询今天的数据 (34)
- intouch2014r2sp1永久授权 (36)
- 先锋影音源资2019 (35)
- jdk1.8.0_191下载 (33)
- axure9注册码 (33)
- pts/1 (33)
- spire.pdf 破解版 (35)
- shiro jwt (35)
- sklearn中文手册pdf (35)
- itextsharp使用手册 (33)
- 凯立德2012夏季版懒人包 (34)
- 反恐24小时电话铃声 (33)
- 冒险岛代码查询器 (34)
- 128*128png图片 (34)
- jdk1.8.0_131下载 (34)