大牛分享:NTIRE 2018 图像超分辨率 CVPR Workshop 优胜方案

2023-10-28 05:50

本文主要是介绍大牛分享:NTIRE 2018 图像超分辨率 CVPR Workshop 优胜方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.360doc.com/content/18/0717/08/54183077_771058619.shtml

https://zhuanlan.zhihu.com/p/39930043

NTIRE 2018 图像超分辨率 CVPR Workshop优胜方案

很荣幸邀请了王超锋同学为大家做关于《NTIRE 2018 图像超分辨率 CVPR Workshop优胜方案》专题分享。

王超锋同学,研究生阶段主要研究图像超分辨率(Image Super Resolution)方向,他是Amusi 眼中的深度学习大佬。向他邀文了很久,大佬终于答应写一篇专题分享,再次感谢。

话不多说,下面介绍专题正文:

 

专题正文

今年的CVPR已经在美国盐湖城结束。这里主要想借着CPVR聊一下目前low level领域上的一些进展,本人研究生时,做过一些超分辨率上不算太深入的研究。目前工作了,实践的少了,但依然有关注这个方向。这几天整理关注了下NTIRE 图像复原(Image Restoration)挑战赛上超分辨率赛道上一些优胜队伍的方法。在这里跟大家分享下,如有错误的地方,还请指正,学习为主。

今年是NTIRE挑战赛举办的第二年(以下都称为NTIRE2018),主要有图像超分辨率(super-resolution)、图像去雾(dehazing)、光谱重建(spectral reconstruction)三个方向。网站如下: http://www.vision.ee.ethz.ch/ntire18/。超分辨率上有四个赛道,其中一个为使用经典的bicubic降尺度方式作为待重建图像,进行8倍放大重建。这也是目前大部分文献中最常见的设置方式之一。而其余三个赛道均是来自不同程度(Mild、Difficult、Wild)未知退化算子模拟相机采集的待重建图像,进行4倍放大重建。

暂时抛开比赛,聊一点近几年基于深度学习的超分辨率重建的背景。从我自己了解的论文来看,目前基于深度学习(主要还是CNN)最为经典的论文应该是SRCNN[1]、FSRCNN[2]、ESPCN[3]、VDSR[4]、EDSR[5]、SRGAN[6]这几篇论文。

SRCNN是最早用CNN来进行超分辨率重建的论文(Kaiming He也参与其中),FSRCNN是SRCNN作者的改进,主要贡献在于直接原图像进行端对端的重建,在速度上也非常快,如图1。

图1. SRCNN和FSRCNN


如图2,ESPCN主要提出了subpixel convolution的方法,这种方式在之后很多方法的上采样重建中都有被使用(NTIRE2017的超分辨率冠军EDSR也采用了该方法)。如图3,VDSR则是第一个将全局残差引入SR的方法,使得训练速度明显加快,在PSNR以及SSIM评价指标上有了很大的提升。VDSR之后大部分方法都采用了这种方式。当然还有很多很优秀的网络例如RED、DRRN、MemNet、LapSR这里不在过多介绍。有兴趣的朋友可以深入了解下。

图2. ESPCN

图3. VDSR


EDSR是首届NTIRE2017的超分辨率冠军,其主要使用了增强的ResNet,移除了batchnorm,使用了L1 loss训练。如图4。

图4. EDSR


而SRGAN则是第一篇(我的认知里是第一篇,有待查证,同时期Li FeiFei组[7]也有类似的一篇做style transfer的论文中做了SR)将GAN引入SR重建的,如图5,此外SRGAN与其他上述方法,不同的是重建得到的图像虽然比上述方法都要清晰,但在PSNR和SSIM上都要比上述方法甚至是bicubic上采用得到都要低很多。主要原因SRGAN使用了style transfer里用到的感知损失(当然也用非GAN方法使用感知损失的,例如EnhanceNet[8]),而感知损失重建的图像在人类的认知视觉上更舒服,但细节恢复上确实会和原图相差很多。论文中的图片上我们就可以找找茬。

图5. SRGAN

图6. 4倍放大SRGAN-HR和ground truth,细节部分被修改,整体视觉感受较好



所以在我的理解里,即便是超分辨率重建,依然可以将其分为两个方向。第一个方向力求恢复出真实可靠的细节部分,应用场景例如医学影像上的超分辨率重建,低分辨率摄像头人脸或者外形的恢复等对细节要求苛刻的场景。另一个则追求整体视觉效果,细节部位要求不高。例如低分辨率视频电视的恢复、相机模糊图像的恢复等。

简单介绍了背景,回到NTIRE2018这个比赛,这次比赛使用的数据集为DIV2K数据集[9],一共包含1000张2K分辨率的RGB图像,其中800张为训练集,100张为验证集,100张为测试集。评价标准使用了PSNR、SSIM。这就意味着这个场景下使用感知损失重建并不会是个很好的选择。大部分队伍以强化网络特征学习或者添加模糊算子先验为主。以下我将对一些有意思的方法进行简单的阐述,若有错误请指正。

经典的bicubic 8倍放大赛道上,Toyota-TI 提出的deep back-projection networks(DBPN)[10]获得了第一名,如图。DBPN本身已经被CVPR2018收录,NTIRE2018上也证明其在bicubic经典方式上效果的显著性。DBPN主要思想认为以往的CNN方法中,从LR到SR是一个完全上采用的过程,这过程中没有完全处理好LR到SR的与HR之间的差异。在高倍放大下更为显著。所以DBPN提供了一个up-down的映射单元,希望通过迭代上下交替采样的纠正反馈机制,恢复更好的细节特征。论文中的结果以及本次NTIRE2018的结果可以看出DBPN在高倍放大下比LapSR、EDSR拥有更好的效果。

图7. DBPN


来自杜克大学的Pixel Overflow 以及Duke Data Science团队,在bicubic 8倍以及Mild、Difficult 4倍放大赛道分别获得了第二名、第七名、第七名的成绩。由于两个团队最后的论文是一篇,所以这里放在一起简单做个介绍。

团队在SR重建上,定位在两个优化问题,第一,个人理解上应该是与DBPN类似,如何在大尺寸放大获得更好的细节收益。第二问题则针对Mild、Difficult现实LR图像中存在的噪声,如何在放大图像的同时不放大噪声,减弱噪声对重建的影响。

针对第一个问题,在bicubic上Pixel Overflow使用了EDSR模型,并使用了许多技巧例如RGB Layer Shuffle 、Per-Image Mean、Shift Residual Scaling Factor等.(NTIRE2018报告中介绍该团队使用了sobel滤波器提取SR和ground truth特征以强调边缘和细节的损失,但团队报告中似乎说明了这一方法并未有效)。

针对第二个问题,团队使用在EDSR前增加了一个去噪网络,两者通过将去除输出层的去噪网络与去除输入层的EDSR串接实现端对端的模型训练。如图8,实验表明去除头尾的方式比直接串联两个网络的方式效果更好。

图8. DNISR为原始串接网络,DNSR为去尾去头的网络



经典bicubic的第三名rainbow团队借鉴了EDSR以及SRDenseNet的结构,结合金字塔逐步重建的方式,在增强特征的同时,使用DenseNet重复利用特征的特点取得了不错的效果。如图9。

个人理解上DenseNet的重复利用特征的方式在SR上是个非常有用的方式,因为高频信息在浅层上会更丰富,将浅层信息直接输送到后面网络会更有利于边缘细节部分的重建。这一点可以参考ICCV2017上的MemNet[11]。

图9. rainbow团队网络结构


CVPR2017的LapSR[12],使用了金字塔网络逐步重建方式,在高倍重建中拥有快速且较优的效果。前面的rainbow团队以及同赛道的第四名DRZ团队同样使用了类似的结构,提出了非对称的金字塔逐步重建网络ProSR,如图10。同时,DRZ和rainbow团队一样也使用了类似Dense block的结构单元。

在ProSR的论文中有详细阐述他们的方案,同时他们也基于该网络结合GAN提出了ProGANSR,当然也有结合感知损失,在感知层面上取得非常优秀的效果。
 

图10. ProSR


UIUC-IFP 团队的同样基于EDSR进行改进,提出了WDSR,如图11。其主要做了如下三点改进。第一,改进了残差快,具体做法正好和ResNet的bottleneck方式相反,bottleneck在块内减少feature map数量,输出时恢复到与输入时一致。WDSR则是在块内增加feature map数量,输出是减少到与输入一致。

第二点EDSR中移除了batchnorm, 而WDSR则增加了weightsnorm,虽然不会带来性能上的收益,但能使用更大的学习率加快训练。

第三点,出于速度上的考虑,WDSR移除了EDSR尾部冗余的一些卷积。而在现实图片的三个赛道上,由于LR和HR之间存在偏移的情况。该团队,使用了预校准来减轻LR和HR之间的偏移。最终WDSR在bicubic上获得了第七名,而在现实图片的Mild、Difficult、Wild三个三道上分别取得了第一名、第一名和第二名的好成绩。

图11. WDSR


来自香港中文大学和商汤的PDN团队,提出了PolyDenseNet。PDN由多个PD block组成。每个PD block内由多个Dense block组成,每个Dense block的输出包括输入最终add到最终输出上,但每一项的add操作都会有个权重系数,如图12。PDN似乎只参加了现实图片的Wild的赛道(可能觉得这个赛道难度最高吧),最终使用了PolyDenseNet和变体的PolyDenseNet的集成获得了该赛道的第一名,在PSNR以及SSIM上大幅度的领先了第二名WDSR(用了4块Titan Xp,体量应该也不小 )。

但由于没有找到其详细的论文介绍(找到的朋友请给个地址),因此不太确定作者这么做的motivation到底是什么。本人YY一下,可能出发点和上面的提到的使用DenseNet类似,主要为了提取更多有效的高频信息。而最终相加的权重系数,可能是用来筛选高频信息的权重比。不知道这几个权重参数是否可学习。如果是,那网络学习的到的权重比很可能就高频信息的占有比。

图12. PolyDenseNet


和Pixel Overflow团队想法很类似,BMIPL UNIST团队将现实图片赛道的SR重建定位为denoising和deblurring 两个阶段。在denoising阶段,其改进了去噪网络DnCNN[13],提出了DnResNet网络;deblurring 阶段则是改进EDSR,使用pyramid pooling来提升重建质量。该团队参加了bicubic、现实的Mild、difficult三个赛道比赛。在训练Mild、Difficult阶段,其使用了bicubic上的网络参数,进行微调。如图13。最终其在bicubic获得了第九名,在Mild和Difficult均获得了第二名。

图13.BMIPL UNIST团队网络结构


来自哈工大的HIT-VPC团队参加了所有赛道的比赛,与以上团队的只用一种解决方案的不同,HIT-VPC团队在bicubic赛道和现实图像赛道分别使用了一种解决方案。在经典的bicubic赛道,提出了inverse multi level wavelet convolutional neural network(iMwCNN)。

iMwCNN是个具有多级小波包变换(WPT)的金字塔结构网络。 输入LR图像首先通过2倍bicubic放大,并将放大后的的DWT系数作为网络的输入进行重建学习。为了获得8倍放大,一共进行三次2倍bicubic放大。 在每个级别的网络之间,采用固定的逆小波变换将系数转换回图像空间。 再来了解下,在现实图片的三个赛道上的算法,super-resolution network for multiple degradations (SRMD)[14],这和DBPN一样,已被CVPR2018接收。

SRMD主要是针对近几年的超分辨率方法都是使用bicubic下采样模拟真实图像的退化过程。但在现实生活中大部分图片并不遵循该假设,使用bicubic训练后的模型用于真实图像重建的时候往往效果很差。当然这也是NTIRE2018设置了三个现实图片重建赛道的出发点。现实图片退化类型可能会有很多,同时除了模糊还伴着有噪声,因此大大增加了重建难度。所以SRMD的出发点就是是否可以设计一个非盲的SR模型适用于多种退化情况。因此SRMD除了使用LR作为输入外,使用了一个维度拉伸策略,将模糊核以及噪声的形成的退化图也作为网络的输入进行训练,如图14。

这种合成多种退化的方式能够让其在处理真实图像退化的场景时依然有很好的收益。SRMD在Mild、Difficult和Wild上分别获得了第三、第九、第三的成绩。值得一提的是这个成绩是其使用盲SRMD得到的结果。而Difficult和Wild赛道上该团队提交了令一份附加成绩,这份成绩不参与排名,效果少只是稍逊于第一名,是其使用精确的模糊核的结果。此外,SRMD只用了20层卷积,速度上秒杀绝大部分团队。这里充分证明了SRMD的效果。

图14. iMwCNN和SRMD


当然NTIRE2018还有其他队伍优秀的解决方案,由于精力和时间有限,这里不在一一列举,写的也很糙(ps:经常熬夜到一两点睡觉,然后一大早起床上班的感觉太难受了)。这篇主要介绍了NTIRE2018超分辨率比赛的一些解决方案。CVPR2018也有一些不错的超分辨率文章可以参考,有时间的话会再写点。

不过回到超分辨率方向这个话题,以上一些经典的文章包括NTIRE2018的所有解决方案[16]除了SRGAN以及EnhanceNet,评价指标都是常用的PSNR以及SSIM,这两个指标一定程度上并不能完全反映图像的重建质量。而SRGAN和EnhanceNet的感知评价上还没有一个很普遍统一的标准,但在今年的CVPR2018中一篇名为<<The Perception-Distortion Tradeoff>>[15]的文章详细说明了感知评价和图像失真程度之间的关系,文中也提出了评估图像恢复的新方法。而这个评价标准正好被用于了ECCV2018 workshop PIRM2018的感知超分辨率图像重建挑战赛中。目前这个比赛正在进行当中,有兴趣的朋友可以参加下。附上网站地址https://www.pirm2018.org/PIRM-SR.html。

Github:https://github.com/roimehrez/PIRM2018。

以上引用比赛文章都在如下链接中,就不一一列举出来了:
http://openaccess.thecvf.com/CVPR2018_workshops/CVPR2018_W13.py

其中总结性文章可以参考,链接中的<<NTIRE 2018 Challenge on Single Image Super-Resolution: Methods and Results>>这篇。最后如果哪里有问题请帮忙指正,毕竟最重要的是互相学习。



Reference

1. Dong C, Chen C L,He K, et al. Image Super-Resolution Using Deep Convolutional Networks[J]. IEEETransactions on Pattern Analysis & Machine Intelligence, 2016,38(2):295-307.
2. Dong C, Chen C L,Tang X. Accelerating the Super-Resolution Convolutional Neural Network[J].2016:391-407.
3. Shi W, CaballeroJ, Huszar F, et al. Real-Time Single Image and Video Super-Resolution Using anEfficient Sub-Pixel Convolutional Neural Network[C]// IEEE Conference onComputer Vision and Pattern Recognition. IEEE Computer Society, 2016:1874-1883.
4. Kim J, Lee J K,Lee K M. Accurate Image Super-Resolution Using Very Deep ConvolutionalNetworks[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEEComputer Society, 2016:1646-1654.
5. Lim B, Son S, KimH, et al. Enhanced Deep Residual Networks for Single ImageSuper-Resolution[C]// Computer Vision and Pattern Recognition Workshops. IEEE,2017:1132-1140.
6. Ledig C, Theis L,Huszar F, et al. Photo-Realistic Single Image Super-Resolution Using aGenerative Adversarial Network[J]. 2016:105-114.
7. Johnson J, AlahiA, Li F F. Perceptual Losses for Real-Time Style Transfer andSuper-Resolution[J]. 2016:694-711.
8. Sajjadi M S M,Schölkopf B, Hirsch M. EnhanceNet: Single Image Super-Resolution ThroughAutomated Texture Synthesis[J]. 2016.
9. E. Agustsson andR. Timofte. NTIRE 2017 challenge on single image super-resolution: Dataset andstudy. In The IEEE Conference on Computer Vision and Pattern Recogni[1]tion(CVPR) Workshops, July 2017. 1, 2
10. Haris M,Shakhnarovich G, Ukita N. Deep Back-Projection Networks ForSuper-Resolution[J]. 2018.
11. Tai Y, Yang J, LiuX, et al. MemNet: A Persistent Memory Network for Image Restoration[J].2017:4549-4557.
12. Lai W S, Huang JB, Ahuja N, et al. Deep Laplacian Pyramid Networks for Fast and AccurateSuper-Resolution[C]// IEEE Conference on Computer Vision and PatternRecognition. IEEE Computer Society, 2017:5835-5843.
13. Zhang K, Zuo W,Chen Y, et al. Beyond a Gaussian Denoiser: Residual Learning of Deep CNN forImage Denoising.[J]. IEEE Transactions on Image Processing, 2017,26(7):3142-3155.
14. Zhang K, Zuo W,Zhang L. Learning a Single Convolutional Super-Resolution Network for MultipleDegradations[J]. 2017.
15. Blau Y, MichaeliT. The Perception-Distortion Tradeoff[J]. 2017.
16. NTIRE 2018Challenge on Single Image Super-Resolution: Methods and Results


扫描下方二维码,即可关注CVer公众号
 

http://weixin.qq.com/r/NioZAUbEpRvarQJi938k (二维码自动识别)

这篇关于大牛分享:NTIRE 2018 图像超分辨率 CVPR Workshop 优胜方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291129

相关文章

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)