深度学习之图像超分辨重建技术

计算机视觉工做者们,老是但愿能“看清”繁华世界的每一个像素点,可是却发现分辨率的极限,是他们绕不过去的坎。今天就来和你们聊一聊分辨率以及超分辨图像重建。
算法


分辨率极限api


分辨率极限,不管对于图像重建或是图像后处理算法的研究者,都是一项没法回避的技术指标。时间分辨率性能决定了视频输出的帧率,即实时效果空间分辨率性能决定了图像的画面清晰度到底是720P,1080P,仍是4K色阶分辨率性能决定了图像显示色彩的丰满程度与粒度。所以,分辨率是一幅图像、一段视频的核心。服务器


今天就简单说一下空间分辨率。网络

在实际的应用场景中,受限于图像采集设备成本、视频图像传输带宽,抑或是成像模态自己的技术瓶颈,咱们并非每一次都有条件得到边缘锐化,无块状模糊的大尺寸高清图像。在这种需求背景下,超分辨重建技术应运而生。app


图1机器学习


应用场景I:图片压缩与传输,即以较低的码率进行图像编码,在传输过程当中可极大节省转发服务器的流量带宽,在客户端解码获得相对低清晰度的图片,最后经过超分辨重建技术处理得到高清晰度图片ide


图2函数


应用场景II:生物组织成像 左图:光声显微成像图像 右图:光声超分辨显微图像,细微的蜜蜂翅膀纹理清晰可见【5】性能


传统超分辨重建技术大致上可分为4类【1, 2】,分别是预测型(prediction-based), 边缘型(edge-based), 统计型(statistical)和图像块型(patch-based/example-based)的超分辨重建方法。学习

目前你们使用最多的是图像块型,咱们在图像块型领域选择了4篇基于深度学习的图像块型超分辨重建的经典论文进行关键技术点分析。从论文中咱们能够看出研究者们对于超分辨任务的不一样的理解与解决问题思路。


在2012年AlexNet以15.4%的历史性超低的分类错误率得到ImageNet大规模视觉识别挑战赛年度冠军,吹响了深度学习在计算机视觉领域爆炸发展的号角以后。超分辨重建技术也开始采用深度学习的思想,以期得到更优的算法表现。

文章1:Image Super-Resolution Using Deep Convolutional Networks

做者: Chao Dong, Chen Change Loy, Kaiming He and Xiaoou Tang

SRCNN是基于深度学习的超分辨重建领域的开山之做,继承了传统机器学习领域稀疏编码的思想,利用三层卷积层分别实现: 1. 图像的图像块抽取与稀疏字典创建;2. 图像高、低分辨率特征之间的非线性映射;3. 高分辨率图像块的重建。


具体地,假设须要处理的低分辨率图片的尺寸为H × W × C, 其中H、W、C分别表示图片的长、宽和通道数;SRCNN第一层卷积核尺寸为C × f1 × f1 × n1,能够理解为在低分辨率图片上滑窗式地提取f1 × f1的图像块区域进行n1种类型的卷积操做。在全图范围内,每一种类型卷积操做均可以输出一个特征向量,最终n1个特征向量构成了低分辨率图片的稀疏表示的字典,字典的维度为H1 × W1 × n1;SRCNN第二层卷积核尺寸为n1 × 1 × 1 × n2,以创建由低分辨率到高分辨率稀疏表示字典之间的非线性映射,输出的高分辨率稀疏字典的维度为H1 × W1 × n2,值得注意的是在这一步中SRCNN并未采用全链接层(fully connected layer)来进行特征图或是稀疏字典之间的映射,而是采用1x1卷积核,从而使得空间上每个像素点位置的映射都共享参数,即每个空间位置以相同的方式进行非线性映射; SRCNN第三层卷积核尺寸为n2 × f3 × f3 × C,由高分辨率稀疏字典中每个像素点位置的n2 × 1向量重建f3 × f3图像块,图像块之间相互重合覆盖,最终实现图片的超分辨率重建。


图3 SRCNN的三层卷积结构【1】


文章2:Real-Time Single Image and Video Super-Resolution Using an Efficient

Sub-Pixel Convolutional Neural Network

做者: Wenzhe Shi, Jose Caballero, Ferenc Huszár, Johannes Totz, Andrew P. Aitken,Rob Bishop, Daniel Rueckert, Zehan Wang

在SRCNN将CNN引入超分辨重建领域后,研究者们开始考虑如何利用“卷积”来解决更深刻的问题。若是对一幅高分辨率图片作高斯平滑或是降采样能够等效为卷积操做,那么由降采样后低分辨率图片恢复高分辨率的过程则相应的等效为反卷积操做(deconvolution)。此时咱们的计算任务是学习合适的解卷积核,从低分辨率图片中恢复高分辨率图像。CNN中反卷积层的标准作法如图4所示,对一幅低分辨率图片填充零值(zero padding),即以每个像素点位置为中心,周围2×2或3×3邻域填充0,再以必定尺寸的卷积核进行卷积操做。


图4 标准反卷积层实现示意图


可是标准反卷积操做的弊端是显而易见的,首先,填充的零值并不包含任何图像相关的有效信息,其次填充后的图片卷积操做的计算复杂度有所增长。在这种状况下,Twitter图片与视频压缩研究组将sub-pixel convolution的概念引入SRCNN中。


图5 Efficient Sub-Pixel Convolutional Neural Network (ESPCN)网络结构【2】

Sub-Pixel核心思想在于对于任意维度为H × W × C的图像,标准反卷积操做输出的特征图维度为rH × rW × C,其中r为超分辨系数即图片尺寸放大的倍数,而sub-pixel的输出特征图维度为H × W × C × r2,即令特征图与输入图片的尺寸保持一致,但增长卷积核的通道数,既使得输入图片中邻域像素点的信息获得有效利用,还避免了填充0引入的计算复杂度增长。

文章3:Perceptual Losses for Real-Time Style-Transfer and Super-Resolution

做者: Justin Johnson, Alexandre Alahi, Li Fei-Fei


相较于其余机器学习任务,如物体检测(object detection)或者实例分割(instance segmentation),超分辨重建技术中学习任务的损失函数的定义一般都相对简单粗暴,因为咱们重建的目的是为了使得重建的高分辨率图片与真实高清图片之间的峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)尽量的大,所以绝大多数的基于深度学习的超分辨重建研究都直接的将损失函数设计为平均均方差(Mean Square Error, MSE),即计算两幅图片全部对应像素位置点之间的均方差,因为MSE Loss要求像素点之间位置一一对应,所以又被称做Per-Pixel Loss。


但随着技术的发展,研究者慢慢发现Per-Pixel Loss的局限性。考虑一个极端的状况,将高清原图向任意方向偏移一个像素,事实上图片自己的分辨率与风格并未发生太大的改变,但Per-Pixel Loss却会由于这一个像素的偏移而出现显著的上升,所以Per-Pixel Loss的约束并不能反应图像高级的特征信息(high-level features)。所以研究图像风格迁移的研究者们相对于Per-Pixel Loss在2016年的CVPR会议上提出了Perceptual Loss的概念。


图6 基于Perceptual Loss的全卷积网络结构【3】


基于Per-Pixel Loss的超分辨重建网络目标在于直接最小化高清原图与超分辨重建图像之间的差别,使得超分辨重建图像逐步逼近原图的清晰效果。但Perceptual Loss最小化的是原图与重建图像的特征图之间的差别,为了提升计算效率,Perceptual Loss中的特征图由固定权重值的卷积神经网络提取,例如在ImageNet数据集上预训练获得的VGG16网络,如图7所示,不一样深度的卷积层提取的特征信息不一样,反映的图像的纹理也不一样。


图7 不一样深度的卷积层提取的图片特征示意图【3】


所以研究者们在训练超分辨神经网络时,利用跨间隔的卷积层(strided convolution layer)代替池化层(pooling layer)构建全卷积神经网络(Fully Convolutional Network, FCN)进行超分辨重建,并在卷积层之间添加残差结构(residual block)以在保证网络拟合性能的前提下加深网络深度得到更佳表现。最终利用VGG16网络对原图与重建图像进行特征提取,最小化二者特征图之间的差别使得超分辨重建图像不断逼近原图的分辨率。

文章4: RAISR: Rapid and Accurate Image Super Resolution

做者: Yaniv Romano, John Isidoro, and Peyman Milanfar

前面提到的几种典型的图像块型(也被称做样例型)超分辨技术,都是在高低分辨率图像块一一对应的数据基础上,学习由低分辨率到高分辨率图像块的映射。具体的来讲,一般这种映射是一系列的滤波器,针对输入图片不一样像素位置点的不一样的纹理特征来选择适当的滤波器进行超分辨重建。


基于这种思想,Google于2016年在SRCNN, A+以及ESPCN等超分辨研究的基础上发布了RAISR算法,该算法主打高速的实时性能与极低的计算复杂度,核心思想在于利用配对的高低分辨率图像块训练获得一系列的滤波器,在测试时根据输入图片的局部梯度统计学特性索引选择合适的滤波器完成超分辨重建。所以RAISR算法由两部分组成,第一部分是训练高低分辨率映射(LR/HR mapping)的滤波器,第二部分是创建滤波器索引机制(hashing mechanism)。


图8 RAISR 2倍上采样滤波器【4】


图9 RAISR在2x上采样率时与SRCNN, A+等超分辨算法的技术指标对比

左图为PSNR-runtime指标,右图为SSIM-runtime指标【4】

结语


超分辨重建在医学影像处理、压缩图像加强等方面具备广阔的应用前景,近年来一直是深度学习研究的热门领域。卷积和残差构件的改进、不一样种类perceptual loss的进一步分析、对抗生成网络用于超分辨重建的探索等都是值得关注的方向。


参考文献


[1] Dong, Chao, et al. "Image Super-Resolution Using Deep Convolutional Networks." IEEE Transactions on Pattern Analysis & Machine Intelligence 38.2(2016):295-307.

[2] Shi, Wenzhe, et al. "Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network." (2016):1874-1883.

[3] Johnson, Justin, A. Alahi, and F. F. Li. "Perceptual Losses for Real-Time Style Transfer and Super-Resolution." (2016):694-711.

[4] Romano, Yaniv, J. Isidoro, and P. Milanfar. "RAISR: Rapid and Accurate Image Super Resolution." IEEE Transactions on Computational Imaging 3.1(2016):110-125.

[5] Conkey, Donald B., et al. "Super-resolution photoacoustic imaging through a scattering wall." Nature Communications 6(2015):7902.

相关文章
相关标签/搜索