大家好,这是专栏《计算摄影》的第七篇文章,这一个专栏来自于计算机科学与摄影艺术的交叉学科。

作者&编辑 | 言有三

图像超分,就是要将低分辨率的图像恢复为高分辨率的图像,它在日常的图像和视频存储与浏览中都有广泛的应用,本次我们介绍基于深度学习的图像超分辨核心技术。

1 什么是图像超分辨 

1.1 图片超分辨

我们常说的图像分辨率指的是图像长边像素数与图像短边像素数的乘积,比如iPhoneX手机拍摄照片的分辨率为4032px×3024px,为1200万像素。

显然,越高的分辨率能获得更清晰的成像。与之同时,分辨率越高也意味着更大的存储空间,对于空间非常有限的移动设备来说,需要考虑分辨率与存储空间的平衡。

图像超分,就是要从低分辨率的图像恢复为高分辨率的图像,它在日常的图像和视频存储与浏览中都有广泛的应用。

10年前手机中320px×240px分辨率的图像是主流,其视觉美感相对如今随处可见的4K分辨率来说是无法比拟的。我们可以使用超分技术来恢复当年拍摄的低分辨率图像,如下图是一个典型案例。

手机图片浏览中也有超分算法的努力,即同一张图片在不同手机上的显示效果不一样,是因为显示分辨率越高的手机可以使用更清晰的分辨率进行展示。

1.2 视频超分辨

人们在观看视频节目时总会更倾向于分辨率更高的配置,以腾讯视频为例,它包含了多种分辨率配置,标清为270P,高清为480P,超清为720P,蓝光为1080P。其中1080P的分辨率大小为1920×1080,相比于常见摄影图像的分辨率仍有不小的差距。但是受到网络带宽的影响,往往蓝光分辨率都不是所有人能够流畅播放,而超分技术可以实现在网络传输的时候使用低分辨率传播,而播放端进行实时分辨率提升,即实现视频超分。这在网络直播,视频播放与下载应用中非常有价值。

1.3 图片预处理

除了作为一个单独的任务,图像超分还可以作为其他工作的预处理或者其中一个独立的小模块,在提高目标检测任务中小目标的分辨率用于改善监控系统,提高医学图像中的模糊目标辨识度等很多应用领域中都有实际意义。

如今图像超分技术被用于许多珍贵的历史照片和视频的修复,这具有很大的人文价值和纪念意义。

2 图片超分辨关键技术

近年来CNN等深度学习模型在图像超分任务中取得了非常大的进展,使得超分算法得以真正在产品中落地,下面我们基于深度学习模型中的上采样位置,优化目标,模型结构特点来进行总结。

2.1 不同的采样结构

根据上采样(upsampling)在网络结构中的位置和使用方式不同,可以把超分网络结构设计主要分为三大类[1]:

(1) 前上采样(pre-upsampling),即在网络一开始的时候就完成上采样过程。Chao Dong等人提出的SRCNN方法[2]是最早期的尝试。

SRCNN框架首先使用双线性插值等上采样方法进行初始化,得到想要恢复的分辨率,这一步也可以使用反卷积来完成。

接下来就是对高分辨率图细节的改良,如下:

首先使用卷积层对输入的局部图像块进行特征提取,得到一系列特征图,这相当于完成了稀疏编码中重叠的图像块的构建,这一步骤可以表达如下:

其中W和B分别表示卷积核和偏置,*表示卷积操作,W1的尺寸为c×n1×f1×f1,其中c就是输入图的通道数量,n1是输出特征通道数,f1×f1是卷积核大小。

接着,使用1×1卷积进行维度变换,即将n1个特征通道转换为n2个特征通道,这就是相当于稀疏编码中低分辨率字典到高分辨率字典的映射,这一步骤可以表达如下,其中f2=1:

最后就是将高分辨率的图像块重新拼接成完整的图像,这一步骤可以表达如下:

当f2=1时,对于输出图像中的每一个像素,它在原图中的感受野大小为(f3+f1-1)×(f3+f1-1),一个典型的设定是f1=9,f3=5,此时输出像素与输出的13×13=169个像素有关,相比于传统方法具有较大的感受野,因此SRCNN具有较大的优势。

SRCNN框架可以适用于任意分辨率的提升,因为在输入网络之前,上采样过程已经对输出分辨率做了初始化,所以CNN模型要学习的是由粗到精的改进,学习过程比较简单。不过由于整个网络在高分辨率空间进行计算,因此计算量大,而且噪声容易被放大。

(2) 后上采样(post-upsampling),即在网络的最后才开始进行上采样。

在前上采样框架中首先使用反卷积来完成上采样是一种很自然的操作,但是它计算复杂度较大,因此SRCNN的作者后来将该上采样过程放置在网络最后端,通过一个反卷积来学习该上采样过程,将其命名为FSRCNN框架[3]。

而Twitter图片与视频压缩研究组则采用了与反卷积完全不同的上采样思路,提出了ESPCN模型[4],其中核心思想是亚像素卷积(sub-pixel convolution),完整流程示意图如下:

对于维度为H×W×C的图像,标准反卷积操作输出的特征图维度为rH×rW×C,其中r就是需要放大的倍数,而从图6.6可以看出,亚像素卷积层的输出特征图维度为H×W×C×r×r,即特征图与输入图片的尺寸保持一致,但是通道数被扩充为原来的r×r倍,然后再进行重新排列得到高分辨率的结果。

整个流程因为使用了更小的图像输入,从而可以使用更小的卷积核获取较大的感受野,这既使得输入图片中邻域像素点的信息得到有效利用,还避免了计算复杂度的增加,是一种将空间上采样问题转换为通道上采样问题的思路。相比于前上采样中在开始就进行单一的一次上采样,后采样策略能更好地利用模型的表达能力,学习更加复杂的低分辩率到高分辨率的转换,因此ESPCN模型被验证为更加有效,后续的超分模型基本沿用了该思路。

(3) 逐步式上采样(progressive upsampling),即逐渐进行上采样。

为了解决后采样方法无法对高倍率因子进行很好的超分辨,LapSRN(Laplacian Pyramid Super-Resolution Network)[5]等渐进的上采样方法被提出,其模型结构如下图:

在上图中包含了两个分支,一个是特征提取分支(Feature Extraction Branch),它包括多个不同分辨率层级,每一个层级利用多个卷积层获取非线性特征映射,最后加上反卷积来提升图像的分辨率得到特征(feature)。

另一个是图像重建分支(Image Reconstruction Branch),它将输入图进行上采样后与相同分辨率大小的特征提取分支相加得到下一级分辨率的输出图像,直到得到最终的高分辨率结果图。

LapSRN模型中由于各个分辨率层级的结构相似,所以其中的部分网络层会进行参数共享,这让每一个学习过程更加简单。而且逐步式上采样的方法利用了在很多计算机视觉任务中都使用的跳层连接多尺度技术,通过学习残差简化了学习过程。有的研究者使用了类似于LapSRN模型的渐进式模型[6],实现了对人脸图像8倍的上采样。

除了以上3种常见的结构,还有一种结构为升降采样迭代式(iterative up-and-downsampling)[7]结构,它采用上采样和下采样过程交替进行。这一类模型试图通过上采样图像到下采样图像的反馈来更好地捕捉它们之间的关系,结构非常复杂,训练难度较高。

2.2 感知损失与对抗损失

早期的基于CNN模型的超分框架如SRCNN,ESPCN都使用图像像素空间的欧式距离(即L2 loss,或者MSE损失)作为优化目标,结果能取得较高的PSNR和SSIM指标,但是存在结果过于平滑的问题。

人眼对重建结果质量的感知并不完全与这些指标相符,比如MSE指标较小并不能保证局部细节的清晰度,而较大的MSE指标也并不等价于较差的结果,比如原图偏移一个像素后与原图的MSE值可能较大,但是视觉感知效果很接近。

CNN网络的高层特征空间相比于原始的像素空间,具有较高的抽象层级,它使得原始图像的特征与目标图像的特征差异可以反应在语义级别,这非常符合人眼的主观评估感受,研究者基于此提出了感知损失。

基于特征空间计算的欧式距离被称为感知损失(perceptual loss),令φ来表示网络,j表示网络的第j层,表示第j层的特征图的大小,感知损失的定义如下;

研究者[8]将SRCNN模型的像素损失改为感知损失后,显著提高了视觉效果,如下图中的最后一幅图就是使用感知损失的结果,因此感知损失也被后续的很多模型采用。

随着生成对抗网络GAN的发展,生成器和判别器的对抗学习机制在图像生成任务中展现出很强大的学习能力。Twitter的研究者们使用ResNet作为生成器结构,使用VGG作为判别器结构,提出了SRGAN[9]模型,模型结构如下。

生成器结构包含了若干个不改变特征分辨率的残差模块和多个基于亚像素卷积的后上采样模块。判别器结构则包含了若干个通道数不断增加的卷积层,每次特征通道数增加一倍时,特征分辨率降低为原来的一半。

SRGAN模型优化目标包含两部分,一部分是基于VGG网络特征构建内容损失函数(content loss),代替了之前的MSE损失函数,另一部分是对抗损失。

通过生成器和判别器的对抗学习取得了视觉感知上更好的重建结果,如下图对比。

基于GAN的模型虽然可以取得好的超分结果,但是它往往会放大噪声。在SRGAN的基础上,有研究者通过优化生成器的结构,GAN的损失函数,感知损失计算特征的选择提出了增强版的SRGAN,即ESRGAN[10],相比SRGAN取得了更好的超分结果。

当然除此之外,任务相关的损失也常被添加进优化目标,比如人脸超分辨常使用人脸关键点任务作为辅助,需要添加关键点损失[11]。

2.3 无监督模型

由于大部分有监督的超分辨模型都是基于成对的低分辨率和高分辨率图进行训练,研究者常通过固定的图像算法对高分辨率图进行采样获得低分辨率图,这与真实的图像蜕化过程并不一致,真实的图像蜕化往往包括各类模糊和噪声,缺陷等。

因此无监督的模型研究是非常重要的,典型的思路是首先学习降采样,再使用获得的成对数据集进行训练,这是一个无监督的学习过程。

如下就是一个典型框架[12],整个流程包括一个High-to-Low GAN和一个Low-to-High GAN。

High-to-low GAN模型:这一个模型的作用是从高分辨率数据集中生成低分辨率的图,高分辨率图像数据集可以是人脸质量较高的Celeb-A、AFLW、LS3D-W和VGGFace2等,低分辨率图像数据集可以是人脸质量较低的Wider face等,它们构成了未配对的高分辨率-低分辨率数据集。High-to-low GAN中的降采样网络(High-to-low)是一个编解码结构,它的输入是由随机噪声z和高分辨率图拼接而成,生成低分辨率图LR image。

Low-to-High GAN模型:从High-to-low GAN模型的输出结果可以得到成对的低分辨率和高分辨率训练数据,因此就可以训练一个正常的超分网络,即Low-to-High GAN模型,它是一个基于跳层连接的结构。

除了以上的无监督模型方案,还有两个常见的思路供读者进行延伸学习。

第一个是将高分辨率图像和低分辨率图像看作是两个域,然后使用了CycleGAN的循环结构来解决该问题,代表性框架是CinCGAN[13]。

第二个是zero-shot super-resolution (ZSSR)[14],它只使用图片本身的信息,对每一张图都训练一个CNN模型用于恢复分辨率,不过计算量也较大。

2.4  展望

虽然研究者提出了数十个超分模型,但是目前大多数超分模型对于真实的图像超分效果还不完美,主要存在以下几个问题。

(1) 训练数据难以获取,目前大部分模型采用了仿真的数据,这个过程难以模仿真实的图像蜕化过程,真实图像退化不仅仅是分辨率降低,更是在这个过程中会引入各类图像噪声,所以基于采样训练出来的模型容易过拟合,泛化能力不好。

(2) 模型难以通用,对于特定类型的图像,比如人脸超分则需要专门训练人脸相关的模型,通用的超分模型往往难以获得很好的效果。

3 参考资料

[1] Wang Z ,  J  Chen,  Hoi S C H . Deep Learning for Image Super-resolution: A Survey[J].  2019.

[2] Dong C, Loy C C, He K, et al. Image super-resolution using deep convolutional networks[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 38(2): 295-307.

[3] C. Dong, C. C. Loy, and X. Tang, “Accelerating the super-resolution convolutional neural network,” in ECCV, 2016.

[4] Shi W , Caballero J , Ferenc Huszár, et al. Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network[J]. 2016.

[5] Lai W S, Huang J B, Ahuja N, et al. Fast and accurate image super-resolution with deep laplacian pyramid networks[J]. IEEE transactions on pattern analysis and machine intelligence, 2018, 41(11): 2599-2613.

[6] Kim D, Kim M, Kwon G, et al. Progressive Face Super-Resolution via Attention to Facial Landmark[J]. arXiv preprint arXiv:1908.08239, 2019.

[7] Haris M, Shakhnarovich G, Ukita N. Deep back-projection networks for super-resolution[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 1664-1673.

[8] Johnson J, Alahi A, Fei-Fei L. Perceptual losses for real-time style transfer and super-resolution[C]//European conference on computer vision. Springer, Cham, 2016: 694-711.

[9] Ledig C, Theis L, Huszár F, et al. Photo-realistic single image super-resolution using a generative adversarial network[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4681-4690.

[10] Wang X, Yu K, Wu S, et al. Esrgan: Enhanced super-resolution generative adversarial networks[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 0-0.

[11] Bulat A, Tzimiropoulos G. Super-fan: Integrated facial landmark localization and super-resolution of real-world low resolution faces in arbitrary poses with gans[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 109-117.

[12] Bulat A, Yang J, Tzimiropoulos G. To learn image super-resolution, use a gan to learn how to do image degradation first[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 185-200.

[13] Y. Yuan, S. Liu, J. Zhang, Y. Zhang, C. Dong, and L. Lin, “Unsupervised image super-resolution using cycle-in-cycle generative adversarial networks,” in CVPRW, 2018.

[14] Shocher A, Cohen N, Irani M. “zero-shot” super-resolution using deep internal learning[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 3118-3126.

更多内容与实践细节,请参考我最近出版的新书,《深度学习之摄影图像处理》,介绍如下:

言有三新书来袭,业界首本深度学习计算摄影书籍,科技与艺术的结合

总结

本文介绍了基于深度学习模型的图像超分辨关键技术,这是一个相对比较成熟,应用价值较大的领域,值得对视觉技术感兴趣的朋友了解学习。

有三AI秋季划-图像质量组

图像质量小组需要掌握与图像质量相关的内容,学习的东西包括8大方向:图像质量评价,图像构图分析,图像降噪,图像对比度增强,图像去模糊与超分辨,图像风格化,图像深度估计,图像修复。了解详细请阅读以下文章:

【CV秋季划】图像质量提升与编辑有哪些研究和应用,如何循序渐进地学习好?

转载文章请后台联系

侵权必究

往期精选

  • 【CV春季划】2021年有三AI-CV春季划出炉,最后一届言有三手把手从零带学

  • 【CV夏季划】告别入门,提升眼界,从掌握最有价值的那些CV方向开始

  • 【CV秋季划】生成对抗网络GAN有哪些研究和应用,如何循序渐进地学习好?

  • 【CV秋季划】模型优化很重要,如何循序渐进地学习好?

  • 【CV秋季划】人脸算法那么多,如何循序渐进地学习好?

  • 【CV秋季划】图像质量提升与编辑有哪些研究和应用,如何循序渐进地学习好?

  • 【计算摄影】浅析多重曝光与自动图像融合技术

  • 【计算摄影】先拍照后对焦,浅析基于深度估计的景深编辑与背景虚化

  • 【计算摄影】计算机如何学会自动地进行图像美学增强?

  • 【计算摄影】计算机如何学会自动裁剪图片(自动构图)?

  • 【计算摄影】计算机如何学会欣赏照片的美感?

  • 【计算摄影】图像美学专栏上线,先从学点摄影知识开始

【计算摄影】图像与视频超分辨,深度学习核心技术与展望相关推荐

  1. 计算摄影——图像超分

    这一节主要介绍一下基于单张图的图像超分算法.图像超分,就是要从低分辨率的图像恢复为高分辨率的图像,它在日常的图像和视频存储与浏览中都有广泛的应用. 基于深度学习的图像超分算法 不同的采样结构 图像超分 ...

  2. 【星球知识卡片】图像和视频超分辨都有哪些核心技术,如何对其长期深入学习...

    大家好,欢迎来到我们的星球知识小卡片专栏,本期给大家分享图像和视频超分辨相关的资源. 作者&编辑 | 言有三 1 基本的超分辨模型 基本的超分辨模型根据上采样(upsampling)在网络结构 ...

  3. 2021地理设计组一等奖:融合短视频和深度学习的城市空间意象解构与分析

    作品简介 一.应用背景与目标 城市是自然.构筑物及人构成的复杂动态综合体.城市空间意象是人们感受到的城市空间表达,也是人们对城市的直接或间接的经验性的空间认识.解构城市空间意象[1]作为城市空间认知研 ...

  4. 免费教材丨第48期:业界大牛中文教学视频《深度学习:进阶》第25-28讲

    小编说 我们将继续发放彭老师的<深度学习:进阶>课程,本期发放第25-28讲,本教材由麦子学院提供,现表示感谢.本教学视频为中文教学,代码讲解为主,通俗易懂哦! 彭亮简介 美国犹他州立大学 ...

  5. 免费教材丨第47期:业界大牛中文教学视频《深度学习:进阶》第21-24讲

    小编说 我们将继续发放彭老师的<深度学习:进阶>课程,本期发放第21-24讲,本教材由麦子学院提供,现表示感谢.本教学视频为中文教学,代码讲解为主,通俗易懂哦! 彭亮简介 美国犹他州立大学 ...

  6. 2018python培训-2018python深度学习核心技术培训班

    各有关单位: 在这个人工智能火热的时代,在商业.经济及其他领域中基于数据和分析去发现问题并作出科学客观的决策越来越重要:python是一种面向对象直译式计算机程序设计语言,也是一种功能强大的通用型语言 ...

  7. 【每周一本书】之《深度学习核心技术与实践》:“小猿搜题”团队倾力之作...

    [数据猿导读] <深度学习核心技术与实践>主要介绍深度学习的核心算法,以及在计算机视觉.语音识别.自然语言处理中的相关应用 编辑 | sharon 官网 | www.datayuan.cn ...

  8. 【每周一本书】之《深度学习核心技术与实践》:“小猿搜题”团队倾力之作

    [数据猿导读] <深度学习核心技术与实践>主要介绍深度学习的核心算法,以及在计算机视觉.语音识别.自然语言处理中的相关应用 编辑 | sharon 官网 | www.datayuan.cn ...

  9. 深度学习图像融合_基于深度学习的图像超分辨率最新进展与趋势【附PDF】

    因PDF资源在微信公众号关注公众号:人工智能前沿讲习回复"超分辨"获取文章PDF 1.主题简介 图像超分辨率是计算机视觉和图像处理领域一个非常重要的研究问题,在医疗图像分析.生物特 ...

最新文章

  1. 取代MybatisPlus?阿里推出了新 ORM 框架!(两者对比参考)
  2. C语言文件操作解析(二)
  3. ajax如何处理服务器返回的三种数据类型
  4. Redis 数据库入门教程
  5. 如何保证添加自定义对象元素的唯一性
  6. JAVA常用的XML解析方法
  7. shell死循环(whilefor)
  8. MySQL何时使用索引 何时不使用索引
  9. day5 字典 dict
  10. jQuery2.x源码解析(设计篇)
  11. SQL Server 2005全文索引(full text search)
  12. Ubuntu16.04安装MATLAB2014a
  13. 在线教育平台架构设计-数据库设计1期
  14. 安装AdventureWorks2008R2示例数据库
  15. android麦克风设置在哪,手机麦克风设置实用教程
  16. 键盘上打出省略号的方法
  17. HTML移动端 实现刻度尺效果
  18. 华为鸿蒙新平板,华为鸿蒙Beta 3.0 版本推送更新 预装鸿蒙新平板获入网许可
  19. 【OAI】【debug】分立机器基站接入核心网并调试可用解决之路
  20. react 函数组件暴露方法

热门文章

  1. 传智播客成都java培训中心7月8号基础班开班啦
  2. python学习日记(内置、匿名函数练习题)
  3. 《C游记》 第二章 - 初识分支句 循环助本心(壹)
  4. 武汉星起航:亚马逊产品listing中几个小技巧实现流量关联
  5. DEVONthink + Notion 搭建一个完美的知识管理体系
  6. 从《货殖列传》中学习炒股
  7. 基带信号及其眼图MATLAB仿真实现,Matlab通信仿真——带限系统下的基带信号
  8. Java基础学习Day09--字符串
  9. 【风马一族_Android】Android学习
  10. Lidar与IMU标定——lidar_imu_calib