大牛分享: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

相关文章

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable