Bootstrap

超分辨率技术

何为超分辨率?

超分辨率技术(Super Resolution):通过硬件或软件的方法提高图像或视频帧的分辨率, 通过一系列低分辨率图像获取到高分辨率图像的过程。
功能介绍:提升图像或视频分辨率最高至8K,能够生成逼真、自然的细节纹理,提升视觉效果,同时可以保证生成纹理的连惯性,不易抖动。
适用场景:旧照片、电影、电视剧、纪录片、动漫、综艺和手机短视频等。

超分辨率理论描述

超分辨率的理论描述又是什么样子的呢?如下图示,最直观地讲,超分辨率就是将左图中像素点之间的空间位置用像素点进行填充,使得整个图像具有更多的像素点,更丰富的细节,从信号的角度讲就是补充出更多的高频成分。
在这里插入图片描述

目前超分辨率技术主要可以分为两类,单图像超分辨率(Single Image Super Resolution,简称SISR)和视频超分辨率(Video Super Resolution,简称VSR)。上述两类技术中,一般来讲后者相比于前者具有更多可参考信息,且有更好的高分辨率视频图像的重建质量,但是其更高的计算复杂度也限制了其应用。本文将以单图超分辨率/图像插值为例,进行超分辨率技术的介绍。

在这里插入图片描述
上图中,左图:原始图像,右图:经过AI技术修复后的高分辨率图像

视频图像超分辨率的方法

视频图像超分辨率的方法通常分为2种:传统图像插值方法和基于深度学习的方法。基于图像插值算法:指通过在图像原有的像素周围插入新像素来加大图像的尺寸,插入像素后还要给这些像素赋值,从而恢复图像内容,达到提高图像分辨率的效果,主要包括图示中的方法。
在这里插入图片描述线性插值(传统的图像插值)

最近邻插值:实现起来运算量最小,只需要直接使用离它最近的原有像素点的值,作为新像素点的值即可。但是这样没有考虑周围像素点的影响,采样后有明显的不连续性,会出现锯齿和马赛克块效应。

在这里插入图片描述
左图为松鼠原图,右图为像素等比例扩大1.5倍后,可以看左图进行最近邻插值后,出现很多锯齿和马赛克。

双线性插值:使用相邻2x2区域的像素值,根据与新像素的距离加权求和。过程稍微复杂些,克服了不连续性,但是未考虑相邻像素的相互影响,边缘会变模糊,还会有轻微马赛克块效应。
双三次插值:和双线性插值类似,但它分别使用4x4和8x8区域的像素进行插值,算法更复杂,克服了像素不连续性、考虑相邻像素的影响,输出的图像边缘比双线性插值更为平滑和精准。
总的来说,线性插值方法是在图像插值过程中采用同一种插值内核,不考虑待插像素点所处的位置,这种做法会使图像中的边缘变得模糊不清,达不到高清图像的视觉效果。
(Tip:图像中平坦纯色的区域叫做低频区域,图像中凹凸不平有纹理的地方叫做高频区域。边缘是高频区域和低频区域的分界。)
在这里插入图片描述
非线性插值方法

非线性插值方法相对上述方法,运算更复杂,但是图像边缘保护得更好:
基于边缘信息的插值算法:对非边缘像素点采用无方向的线性插值方法进行插值,而对于边缘像素点则采用有方向的插值方法,保护了边缘,让边缘更光滑。
基于小波系数的插值算法:将图像的高、低频信息分离,单独对高频信息进行处理。若能准确地得到图像的高频细节,利用重构理论,将得到的高频与原有的低频相叠加,再通过离散小波逆变换就得到一幅高分辨率的图像。
基于深度学习的插值算法:将低分辨率图像恢复出清晰的纹理,效果比之前的传统算法更好,特别是当上采率比较高的时候,传统算法不能很好地重构出对应的高清图像,基于深度学习的算法就可获得更好的图像效果,优势明显。
在这里插入图片描述
如上所示,线性插值和非线性插值效果的对比,基于边缘信息的算法边缘锯齿明显减少,一般来说,我们所说的超分辨率都默认指基于深度学习的插值算法,下面简单介绍基于深度学习得插值算法。
基于深度学习的超分:利用高分辨率图像的先验知识和以混叠形式存在的高频信息进行复原,在视频中还利用相邻图像之间的互补信息。超分利用深度神经网络通过训练,提前学习到了这些知识,训练好的深度神经网络就是超分模型。

在这里插入图片描述如上图,将真实的低分辨率图像输入到训练好的超分模型中利用模型习得的先验知识,重建图像的高频细节,从而获得较好的图像恢复效果。

基于深度学习的算法步骤包括:
1、开始训练的时候用随机数初始化模型的权重。
2、将训练数据里面的低清图像输入到模型里面,正向计算得到输出重建的高清图像。
3、比较生成的重建高清图像和真实高清图像之间的差异,用损失函数衡量。
4、利用梯度下降法最小化损失函数,目的是使重建高清图像和真实高清图像尽量接近,利用梯度反向传播法更新模型的权重。
Tips:损失函数是评价模型的预测值和真实值不一样的程度。包括:像素损失(Pixel-wise Loss),内容损失(Perceptual Loss),纹理损失(Texture Loss),对抗损失(GAN Loss)。超分最常见的是像素损失,将多种损失函数相结合的方式可以获得更强大的超分模型。
在这里插入图片描述
大量数据学习,模型权重反复优化获取超分模型示意图

参考:https://www.imperial-vision.com/34/303

;