图片超分辨率python_图像处理中的“黑科技”——超分辨率重建

本文来源于Hulu,《试读 | 系列四:超分辨率重建》,葫芦娃著。

图片超分辨率python_图像处理中的“黑科技”——超分辨率重建_第1张图片

超分辨率重建是一项在放大图像时用于恢复图像中细节内容的技术。

在名侦探柯南第 106 集中,阿笠博士就展示了这项“黑科技”。他通过放大并恢复犯罪现场的照片,发现了犯罪嫌疑人遗留在现场的手表这个关键性证据。人邮君对这一集印象非常深刻,直到接触了超分辨率重建这项技术,才知道这项“黑科技”是真的存在。

图片超分辨率python_图像处理中的“黑科技”——超分辨率重建_第2张图片

Figure 1: 名侦探柯南中的“黑科技” —— 超分辨率重建

想在放大图片的同时,恢复图片的内容,其实就是在图像放大后的空缺点上,填上相应的像素值,我们称这些点叫插值点。这听起来好像并不难,最简单的方法是直接复制最近像素点的像素值,这种方法叫最近邻插值法。在这之上,还可以参考插值点的邻域,使用他们的加权平均值来进行填补,这种方法叫双线性插值法(bilinear),类似的插值方法还有双三次差值法(bicubic)。下图是对这一过程的展示。

图片超分辨率python_图像处理中的“黑科技”——超分辨率重建_第3张图片

Figure 2: 两种传统的插值方法

上述这几种方法对于细节没有完全还原,图片只是看起来大了些,但并不足够清晰。比如上图中,窗户里是什么,我们完全看不出来。这是因为,上面的这些方法都是传统的信号处理方法,而在信息论中,根据数据处理不等式,无论怎样对数据进行处理,都是无法增加本身就不存在的数据的。这听起来好像有点打击人,是不是说我们对于恢复图像本身的内容就完全无能为力了呢?其实并不是。在深度学习发展的过程中,人们发现神经网络可以通过对训练样本的学习,得到一些模式来恢复图像中缺失的信息。接下来,我们将介绍一个最基础的图像超分辨率神经网络,并对这个领域的后续发展进行简单地讨论。

在 2014 年,SRCNN [1] 网络的提出掀起了使用深度学习进行超分辨率重建任务的热潮。它使用卷积神经网络来对单张图像做超分辨率重建,在训练时,网络的输入是将原始低分辨率图像经过双三次(bicubic)插值后的图像,记为 Y。该网络的目标,是将上采样后的低分辨率图像 Y,通过学习到的映射 F,恢复为高分辨率图像 X,如下图所示。

图片超分辨率python_图像处理中的“黑科技”——超分辨率重建_第4张图片

Figure 3: SRCNN的训练目标

在 SRCNN 中,整个过程主要分为三个步骤:

图片超分辨率python_图像处理中的“黑科技”——超分辨率重建_第5张图片
图片超分辨率python_图像处理中的“黑科技”——超分辨率重建_第6张图片
图片超分辨率python_图像处理中的“黑科技”——超分辨率重建_第7张图片

Figure 4: SRCNN 网络结构示意图

自 SRCNN 后,学者们提出了很多新的网络模型来优化重建效果和加速重建过程。在提高重建质量方面,2016 年学者们提出的 VDSR [2] 对 SRCNN 进行了改进,通过采用 20 层的网络来提升重建效果,其原因有两个:(1) 深层网络能获得更大的感受野,理论上,感受野越大,学习的信息越多,准确率越高;(2) 深层网络能现实复杂的非线性映射。

然而,网络层数的增加,也使学习的难度上升,模型更难收敛。为了解决这个问题,VDSR 引入了残差网络(ResNet)的思想,仅训练高分辨率与低分辨率之间的高频残差部分。另外,为了缓解深层网络在训练过程中的梯度消失或爆炸问题,论文中还使用了自适应梯度剪切技术,可以根据学习率来调整梯度的幅值,确保收敛的稳定性。很多模型都采用了类似的思想来提升重建效果。此外,2017 年学者们提出的 EDSR [3] 中指出,删除 ResNet 中的批归一化(BN)可以提升重建效果。

提升重建效果的另一方法是更好地定义损失函数。传统的基于卷积神经网络的超分辨率重建算法大都以 MSE 作为最小化的目标函数。用 MSE 作为目标函数,虽然可以在重建后取得较高的 PSNR,但是当放大倍数较高时,重建的图片会过于平滑,丢失细节,导致主观质量较差。

这是因为,MSE 或 PSNR 本身不能完全衡量重建图像的主观质量,只能代表重建图像的客观质量。SRGAN [4] 则以提升重建的主观质量为目标,它使用对抗式生成网络(GAN)来对图像进行重建,在重建时对图像加入一些“构造出的细节”,以提升图像的主观感受。

图片超分辨率python_图像处理中的“黑科技”——超分辨率重建_第8张图片

Figure 5: 不同的算法在 4 倍放大下的重建效果对比

此外,在 2018 年,RCAN [5] 的提出,使得超分辨率重建的效果又得到了提升。该网络将注意力机制引入到特征的通道中,同时在残差网络中,使用了长残差连接(long skip connection)和短残差连接(short skip connection),既保证了信息的流动,也加速了网络的训练。

在深度学习高速发展的几年中,涌现了大量基于深度学习的超分辨率重建模型。文章 [6] 对这些模型的客观效果、计算量、参数量进行了统计。整体而言,随着计算量和参数量的提升,重建效果也有着明显的提升。在实际应用中,人们可以结合具体的场景来选择合适的方法。

图片超分辨率python_图像处理中的“黑科技”——超分辨率重建_第9张图片

Figure 6: 基于深度学习的超分辨率重建方法的比较


参考文献:

[1] DONG C, LOY C C, HE K, 等. Learning a deep convolutional network for image super-resolution[C]//European Conference on Computer Vision. Springer, 2014: 184–199.
[2] KIM J, KWON LEE J, MU LEE K. Accurate image super-resolution using very deep convolutional networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1646–1654.
[3] LIM B, SON S, KIM H, 等. Enhanced deep residual networks for single image super-resolution[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops. 2017: 136–144.
[4] LEDIG C, THEIS L, HUSZÁR F, 等. 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.
[5] ZHANG Y, LI K, LI K, 等. Image super-resolution using very deep residual channel attention networks[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 286–301.
[6] WANG Z, CHEN J, HOI S C. Deep learning for image super-resolution: A survey[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, IEEE, 2020.

你可能感兴趣的:(图片超分辨率python)