hwyzw 发表于 2025-3-9 04:24:45

超分辨率技术揭秘:如何将模糊图片和视频变高清

    看电影时,有一幕大家都很熟悉。警察从证据图片里选取一块区域,然后将其不断放大,持续放大,一直到一个很小的目标变得清晰可辨,借此发现了重要的线索。现实中是否真的存在这样的技术,能够把模糊的小图变得清晰呢?答案是在一定程度上可以做到。这项黑科技是超分辨率技术,它能够从低分辨率图像中恢复出高分辨率图像,以此提高图像的质量,进而获得更加清晰的图片。超分辨率技术有着广泛的实际应用,像医学图像的重建、人脸图像的重建、远程传感、全景视频、无人机监控以及超高清电视等领域都有应用。同样的道理,实时视频是能够进行超分辨率处理的。它可以把模糊的、小分辨率的视频转变为高清或超高清的视频。在本篇干货分享中,就将为大家揭开这项黑科技的神秘面纱。

    01 什么是超分辨率

    我们看到的图片或视频,是通过显示设备显示一个个像素来呈现的。像素是在特定时间点能表达特定颜色的点,就像一片片马赛克。一幅图片由多个像素来呈现,就如[图 1 所示]。一幅图片的行数和列数的像素数量,通常就是我们所说的图片和视频的分辨率,它体现了人眼分辨图像或视频中点或线的能力。

    图1 图片中的像素

    数字相机把真实世界转换为图片时,会对真实的光信号进行离散化处理。每个像素都是一次采样,且像素之间存在间隔。若图像分辨率低,采样率就低,也就是像素间的间隔较大;而分辨率提高后,像素间的间隔就会变小,这样在显示图像时,就能对场景进行更精细的呈现。因此我们期望图像的分辨率能达到尽可能高的程度,这样就能获得更为清晰的图像。然而,由于采集设备的性能以及编码压缩、传输等方面存在限制,图像的分辨率有时会处于较低的状态。为了提升这些图像的质量,我们可以通过提高分辨率的方式来获得质量更高的图像。最为直接和简单的想法就是利用相邻的像素去填补空白,也就是近邻取样插值。但是这种算法会呈现出阶梯状的锯齿状,显然无法很好地提升图像的质量。双线性插值、双三次插值以及插值等这类算法能够取得比近邻取样插值更优的效果。像这样的一类传统算法,通常会被归类到图像缩放技术当中。一般来说,缩放的比例不会特别高。

    图2 近邻取样插值

    深度学习技术在发展,对低分辨率图像进行处理,能得到一张高分辨率图像,并且还能恢复出自然、清晰的纹理,这就是常听到的超分辨率技术,这种技术通常针对较高倍数的缩放,比如 4 倍、8 倍缩放等。经典的图像超分算法 SRCNN,首次把卷积神经网络运用到图像超分辨率技术中。和传统算法相比,SRCNN 在图像重建质量方面有了很大的提升。像传统方法那样,它其实也是借助低分辨率图像来填补空缺信息,以此提高分辨率和质量。在学习阶段,存在同一幅图的高分辨率版本和低分辨率版本。先输入低分辨率图,经过 CNN 网络的处理后,会输出高分辨率图像。接着,将输出的高分辨率图像与原有的高分辨率图进行对比,以此来更新迭代下一次的学习。最终得到的 CNN 网络,能够用来恢复低分辨率图像。如图 3 所示,先把低分辨率图输入到网络中。接着经过特征提取、非线性映射以及重建等步骤,就会输出高分辨率图像。SRCNN 比传统网络更优秀的原因在于,它能够对低分辨率图像的特征进行学习和提取,针对不同的纹理特征进行处理,并且根据特征的差异,从而能够更合理地生成高频信息。

    图3 SRCNN模型中的卷积结构

    视频和图像有相似之处,分辨率的提升对提升视频质量非常关键。图像超分和视频超分最大的差异在于,视频能够利用多个连续的图像或帧之间的相关信息,来提升目标图像或帧的分辨率。虽然能够把视频拆分成多幅图像,接着用图像超分算法进行处理,但是这样会导致帧与帧之间出现不连贯的失真现象。近年来出现了很多优秀的用于视频的超分算法。这些算法以图像超分算法为基础,通过增添相应的模块,去挖掘帧与帧之间的特征,以此来提升视频超分算法的性能。

    视频超分,低分辨率视频是由高分辨率视频经过一系列退化操作而得来的。超分算法是对该退化操作进行求逆,这样就能把低分辨率视频恢复成高分辨率视频。该退化操作可以表述为:

    式中符号分别指代低分辨率视频的第 i 帧,高分辨率视频的第 i 帧,以 i 帧为中心的 2N + 1 个高分辨率视频帧,还有退化操作。一般来说,退化操作为下采样、模糊以及运动形变等。在现实情况里,退化或许会更加复杂,像颜色空间转换、压缩等。超分算法的目标就是求解这个退化过程的逆操作。

    02 视频超分辨率算法的分类

    深度学习的视频超分算法通常会运用卷积神经网络(CNN)、生成对抗网络(GAN)或者循环神经网络(RNN)。其架构大致是把低分辨率当作输入,接着进行帧间的对齐操作,进行特征的提取,再进行特征的融合,最后重建并生成高分辨率视频,就如所示的图 4 那样。能够看出,和图像超分相比,最大的差异在于视频超分利用了帧间的信息。如何高效地使用这些信息,也是不同的算法的区别之处。

    图4 视频超分算法的基本框架

    视频超分能够借助相邻帧之间的信息,这使得超分算法的性能得到极大提升。从使用相邻帧间信息的方法角度,可对超分算法进行简单分类:一类是相邻帧进行对齐,另一类是相邻帧不进行对齐。在对齐算法中,又能分为使用运动估计和运动补偿(MEMC)以及使用可变卷积这两种情况。非对齐算法则可分成二维卷积、三维卷积、RCNN 和 Non-Local 这几种。具体分类可图5,

    图5 视频超分算法分类

    基于运动估计和运动补偿算法

    运动估计和补偿算法在视频超分领域具有极为重要的作用,诸多算法都将其作为基础。运动估计的目的是提取出帧与帧之间的运动信息,接着依据运动信息使不同的帧实现对齐。运动估计大多运用光流法,也就是通过对帧间的时域相关性以及变化进行计算,从而获取运动信息,就像图 6 所展示的那样。运动补偿是利用运动信息来对相邻的帧进行处理,以此与要处理的帧达成对齐。常用的方法有线性插值和空域变换网络(STN)。

    图6 光流算法

    图像超分算法 SRCNN 被扩展到了视频领域,其最大的改进之处在于增添了运动估计和运动补偿模块,并且输入的图像从一幅变成了多帧。对于运动信息的提取,采用了相应的算法。

    Video sub-pixel 引入了一个空域运动补偿变换模块(MCT),将运动补偿后的帧作为卷积网络的输入,接着进行特征提取和融合,之后经过一个亚像素卷积层做上采样从而得到高分辨率视频。MCT 模块利用 CNN 从粗到精地提取运动信息并进行运动补偿。粗估网络将 2 个连续帧当作输入,接着历经 5 层卷积以及 1 层亚像素卷积,从而获取到粗略的光流运动信息,随后开展运动补偿。粗估网络的输入是粗估网络所得到的光流信息以及运动补偿帧,通过卷积网络便能得到更为精细的运动信息和运动补偿帧。

    RBPN

    RBPN 算法受后向投影算法启发,设计了一个投影模块。该投影模块处在特征提取模块与重建模块之间。特征提取包含两个部分,其一为对目标帧的低分辨率实施特征提取,其二为对目标帧、相邻帧以及两帧的光流图的组合进行特征提取。投影模块由编码器和解码器共同构成。编码器包含单图超分模块,它处理目标图从而得到特征图;还包含多图超分模块,此模块处理目标帧、相邻帧以及两帧的光流图的组合,进而得到特征图;同时还有残差块,它处理前面两个模块,以得到残差。将残差图与单图超分的结果进行叠加,然后送入解码器,解码器由残差块和下采样卷积构成。解码器的输出进入下一个投影模块。所有投影模块的解码器的输出都被送入重建模块,从而得到超分帧。投影模块能够被重复使用,一直到遍历完所有的帧。

    可变卷积

    这类超分算法的共同点在于,都借助运动估计和运动补偿技术,把相邻图像与目标图像进行对齐。然而,它们都无法确保运动信息的准确性,尤其在有光线变化或较大运动的情况下。针对此问题,可变形卷积被用于替代运动估计和补偿,以实现图像的对齐。以下算法将对这种方法进行简要阐述。

    2017 年提出了可变卷积。传统的卷积层每一层的核是固定大小的,这与可变卷积不同。可变卷积在核中加入了偏移量,这样一来,输入特征通过卷积操作,就能更好地对几何模型进行变换。采用可变卷积的视频超分算法主要有 EDVR、DNLN、TDAN、VESR-Net。本文选取EDVR和VERSR-Net进行简要介绍。

    EDVR

    该算法赢得了冠军。它有两个关键模块,其一为金字塔、级联和可变形对齐模块(PCD),其作用是解决复杂运动和大运动;其二为时空注意融合模块(TSA),用于融合多个对齐的特征图。最后是重建模块。另外,当输入模糊图像时,可通过增加预处理模块来去除模糊。该框架还能用于其他类型的视频处理。

    VERSR-Net

    该算法在优酷视频增强和超分算法挑战赛中夺得了冠军。它是由特征编码器、特征融合器和重建模块构成的。其中,特征编码器包含一个卷积层以及多个 CARB。特征融合模式借鉴了 EDVR 算法中的 PCD 模块,用于进行特征帧的对齐。接着,把特征图进行分解,形成空域、时域以及不同颜色通道的特征,之后再将这些特征进行融合。重建模块首先经过 CARB 模块,接着进行特征解码,之后将特征与通过双三次插值得到的高分辨图进行叠加,从而得到最终结果。

    非对齐超分算法

    除了前面提到的对齐方法之外,存在多种非对齐算法。这些算法在重建时无需对帧进行对齐操作。它们可以细分为以下几种:二维卷积法;三维卷积法,其中包括动态上采样滤波(DUF);循环卷积法,即双向循环卷积网络(BRCN);非局部网络法。除了二维卷积法以外,其余的方法都运用了时空域联合信息。这类方法是通过神经网络来学习特征和运动信息的,所以就不需要进行帧对齐。对于这一点,在此不做深入的分析。

    03 各算法性能对比

    根据实验数据,EDVR、RBPN 是比较优秀的算法。EDVR 和 RBPN 已多次被验证,比早期超分算法更高效。EDVR 是挑战赛冠军,该挑战赛旨在处理大运动场景和各种真实视频场景,所以 EDVR 也是近来超分领域较流行的算法。近期的超分算法比早期算法更高效,这或许得益于硬件计算能力的提升,使得更深更复杂的网络变得更易实现。这些优秀的算法都有一个明显特点,即它们都有相应模块来处理高频分量和时间相关信息,比如 EDVC 里的跨层 PCD 对齐,以及 RBPN 里的后向投影和特征上下文。

    视频超分的性能有了显著提升。然而,深度神经网络的引入导致训练和预测的计算复杂度很高,存储开销也很大。随着移动设备的发展,高效轻量级网络的需求变得更加迫切了。在实时通信领域,对视频超分的要求更高。因为实时通信有更多模块会使用计算资源,所以实时通信中的超分,不仅需要极为简洁的设计,还需要 10 毫秒级的处理算法才能真正落地。同时,实时通信对帧的时延有较高要求,通常目标帧之后的帧不能作为输入,以减少时延,这也对网络结构的设计提出了更高的要求。

    人工智能和设备运算能力在持续进步,这使得视频质量恢复在 RTC 系统中的地位不断提升,而视频超分是视频质量恢复的核心组件。基于前文提到的技术,拍乐云自研了可适配主流移动设备的超分算法,并且会持续投入开发,以给用户提供更高品质的实时视频体验。

    参考文献

    J. Chen 等人提出了 VESR-Net,其目的是应用于 Youku 视频以及实现超分辨率等相关功能。

    X. Wang 等人提出了 EDVR,它是一种用于视频处理的技术。

    M. Haris 等人。具备时空感知能力的多视频。

    H. Liu 等人提出了基于深度学习的视频超分辨率技术。Dong C 等人利用深度学习进行图像超分辨率处理。该研究成果发表于 2016 年的 TPAMI 期刊上。
页: [1]
查看完整版本: 超分辨率技术揭秘:如何将模糊图片和视频变高清