超解析度成像

超解析度成像（Super-resolution imaging，缩写SR），是一种提高影片解析度的技术。在一些称为「光学SR」的SR技术中，系统的绕射极限被超越；而在其他所谓的「几何SR」中，数位感光元件的分辨率因而提高。超解析度成像技术用于一般图像处理和超高解析度显微镜。
小波变换相关技术.
在2000年以来，小波变换的技术被使用在提高影像的解析度。
DASR.
DASR (Demirel-Anbarjafari Super Resolution)是使用离散小波变换（Discrete wavelet transform）来进行超解析度成像的方法。当时，超解析度成像通常是以内插影像的像素值来完成，而作者认为，对影像中的高频部份进行内插是造成品质降低的主要理由，因为内插高频部份让物体的边界变得模糊且平滑，于是提出使用离散小波变换的算法来减轻这个问题。
影像可以表示成二维的讯号，经过二维的离散小波变换，可以被分解成四个不同频段的影像，分别是：low-low (LL), low-high (LH), high-low (HL) 和 high-high (HH)，各自代表在不同维度是高频或低频，举例来说，LH就是在原影像的第一维(x轴)是低频而在第二维(y轴)是高频的分解后结果。
将原影像分解为LL, LH, HL和HH后，DASR会对高频段的三张影像LH, HL和HH分别做内插，以产生高解析度的LH, HL和HH。这是由于作者认为，将不同的高频影像各自做内插，能够避免彼此干扰，进而保留更多的高频资讯。DASR不会内插LL，而是内插原图来当作高解析度的LL，因为原图比LL含有更多资讯。取得四张高解析度的LL, LH, HL和HH后，DASR将四张影像经过逆离散小波变换(Inversed discrete wavelet transform)，来生成最终的成像结果。
DASR当时在 Lena, Elaine, Pepper和Baboon上取得State-of-the-art的结果，并超越传统使用内插和其它使用离散小波变换的方法。
深度神经网路相关技术.
随著神经网路的流行，相关技术也被应用在提高图片解析度。
SRCNN.
SRCNN ( Super-resolution convolution neural network )是一个神经网路，输入是一个低解析度（视觉上）的图像，而输出是一个高解析度的图像，这里需要注意的是，在将图像喂进神经网路前，需要先经过一个预处理bicubic interpolation，将原始图片变成跟想要的高解析度图像一样大小后，再喂进神经网路中。而神经网路做的事情，主要分成三个步骤区块特征抽取与表达（Patch extraction and representation）、非线性对应（non-linear mapping）以及重建（reconstruction）。
区块特征抽取与表达（Patch extraction and representation）.
这一步就如同一般的CNN ( convolution neural network )，只是没有经过max-pooling，公式如下。
formula_1
formula_2代表已经经过bicubic interpolation的图像，formula_3则为这层神经网路的输出，formula_4代表formula_5个formula_6的filter（formula_7是图像的channel数量，而formula_8则为filter的大小），formula_9代表卷积（convolution），formula_10是偏移量（bias），最后的formula_11则代表激活函数RELU。
非线性对应（non-linear mapping）.
非线性对应，基本上就是持续利用一般CNN的方式将前一步每一块的formula_5维的特征向量，分别转换成formula_13维的特征向量，公式如下。
formula_14
重建（reconstruction）.
在重建的步骤中，我们要考虑的是每一个像素所要的值是多少，这个步骤可以想成在多个相关的高维度的特征向量中，取一个平均，很凑巧的，这刚好也很像一般的卷积层（convolution layer），公式如下。
formula_15
训练方法.
在SRCNN中所采用的差异函数（Loss Function）是简单的平均方根差（Mean Square Error），定义为重建后的相片每一个像素与真正的图片的每一个像素的差异，公式如下。
formula_16
formula_17为SRCNN的参数，formula_18为给定的SRCNN重建formula_19的图像，formula_20则为真正的高解析度图像，formula_21为拿来训练神经网路的图像数量或者是一个batch中所有的图像数量。
Losses for Real-Time Style Transfer and Super-Resolution".
这篇论文提供了一个做法，可以应用在图像风格转移（Style Transfer）以及超高解析度（Super-resolution）。
整个系统由两个神经网路组成，其中一个是图像转移网路formula_22，另一个则是可以用来定义各种差异的差异网路formula_23。
图像转移网路formula_22.
图像转移网路的输入为一张图像，输出也是一张图像，而这个网路的参数以formula_25表示。
这个图像转移网路由5个residual block所组成，而所有非residual的convolution layer后面都会接上batch normalization。激活函数（activation function）的部分，除了在最后的输出层（output layer）使用scaled tanh使得输出的数值在0到255之间，其他都是使用RELU。
convolution layer的filter（kernel）的数量上，第一层和最后一层使用formula_26个，其他层则是使用formula_27个。
差异网路formula_23.
差异网路定义了各种差异函数（loss function），输入为两张图像，一张来自图像转移网路，一张则是真正的高解析度影像，输出为一个实数（scalar）。
而这篇论文所使用的差异网路是16层的VGG网路，并事先利用Image Net训练过。差异函数的部分，使用了两个不同于传统简单的差异函数。（CHW代表feature map各个维度的数值）
特征重建差异（Feature Reconstruction Loss）.
这个差异函数的设计理念在于，当我们在看两张图片像不像时，我们并不是一个一个像素的比较，而是比较两张图片中的特征像不像。因此，他拿差异网路中某一层的输出，当作一个图片特征值，再以两张图片的特征值的Euclidean Distance当作差异。
formula_29
风格重建差异（Style Reconstruction Loss）.
除了一般的特征以外，我们也会需要图像转移网路正确的重建颜色、材质等等的内容，因此必须再加上风格重建差异函数。
在定义风格重建差异之前，我们先定义Gram矩阵formula_30。
formula_31
接著差异函数就可以定义为
formula_32
而一般比较每一个像素差异的差异函数，则可以写为
formula_33
有了这两个网路后，训练图像转移网路的方法则是最小化各式差异函数的权重和（weighted sum），优化的方法是梯度下降法（Stochastic Gradient Descent（l()是差异函数（loss function）））。
formula_34
这篇论文在高解析度图像这个传统问题上，给了一个快速且有效的解法，快速的原因在于，在遇到一张新的图片时，只需要把图像喂进图像转移网路就好（一次forward pass）。而在结果上，也大大的超越了之前的做法（一样使用深度神经网路）SRCNN。
立体图像超解析度成像.
立体图像超解析度成像（Stereo Image Super-Resolution，缩写SSR）是一种利用多台相机对同一场景进行拍摄的影像进行超解析度成像的技术。通常，SSR技术的目的是提高低分辨率的立体图像对的空间解析度，从而获得更加细致、清晰的立体图像。单张图像超解析度成像（Single Image Super-Resolution）方法在单张图像上进行超解析度处理，但当只有单张图像时，无法从中获得立体资讯。而SSR技术利用两台或多台相机同时拍摄同一场景的影像，通过分析这些影像中的立体资讯，从而实现对低分辨率立体图像对的超解析度成像。
SSR技术的关键是能够对齐或是解析不同视角的立体图像，并处理影像之间的视差，以便将它们结合在一起进行超解析度处理。一旦能够取得视差资讯，可以使用多种超解析度技术，如插值、机器学习等方法，来提高解析度。
基于深度学习的方法.
由于机器学习是一种能够从资料中自动分析获得规律，并利用规律对未知资料进行预测的演算法，因此在超解析度领域可以借由让神经网路模型从大量的训练数据中学习到高解析度图像的统计特性和特征，来获得提高立体图像的超解析度成像效果。
立体图像超解析度成像作为单张图像超解析度成像的延伸，在神经网路架构的设计上是可以沿用单张图像超解析度成像的架构的，再加入图像间特征混合的作法来处理影像之间的视差，如此便可以有效利用不同视角的图片间的资讯，将解析度提升至比单张图像超解析度成像还要高的品质，如：NAFSSR即是一个以此概念设计的神经网路。
由于立体图像超解析度任务是很容易过适的，因此在训练过程中，需要适当的加上数据扩充方法，常见的方法为随机裁减训练影像的部分区块、随机的水平或上下翻转，以及随机排列RGB颜色通道的顺序。