腾讯云音视频画质增强研究团队专注于多媒体技术领域的前沿前沿技术探索、研发、应用和落地。今天的新知系列课,我们邀请到了来自该研究团队的技术导师 —— 陈铭良,为大家介绍他们团队在媒体画质增强工作上的一些方法积累和能力优势。目前他们在画质增强的工作上积极跟进前沿的深度学习算法,并针对性的提出了一些适合于落地的解决方案。通过数据驱动的自动建模和基于AI的媒体处理,部分方法的效果已经超过了当前学术上的state-of-the-art,领先于竞品。
接下来的几周,每周四晚上7:30,我们都会在腾讯云音视频视频号、开源中国、InfoQ、51CTO、云 社区等多个平台进行课程直播,大家千万不要错过哦~
腾讯云音视频的腾讯明眸·极速高清产品致力于以更低码率提供更高清的流媒体服务,给用户带来全新的高清视野。采用的智能动态编码技术通过智能场景识别、动态编码匹配、画质修复增强相结合来不断提升我们的服务质量。
目前,研究团队的画质增强研究工作主要是应用到编码优化前的前置处理的这个阶段,提供一些画质修复和增强的能力。通过传统算法和深度学习模型,来有效消除片源中的噪点和压缩效应,增强细节去除模糊,提升色彩质量,并解决由于分辨率和帧率低面卡顿不清晰等问题。
这里所展示的是我们当前的模型方法能提供的画质增强能力,有拍摄过程引入和压缩导致的噪声点和伪影的去除、增强由于模糊和下采样丢失的细节、去除压缩中的块状效应、以及提升由于亮度、对比度和饱和度不足导致的黯淡色彩等等。这些问题,通过极速高清提供的服务都能够帮助进行修复和增强。
通常来说,采用深度学习算法来进行画质增强,需要成对的训练数据,即一张低质视频帧和一张高清质量视频帧,设计的神经网络模型通过对低质视频帧进行处理,能够生成一张新的高质视频帧,但是这需要我们设计损失函数来提供监督信号约束网络的训练,使得最后生成的视频帧和高清质量视频帧能够尽可能接近或者以某种方式判断为一致。
这里涉及到两个很难的问题,
- 第一,要如何获取一对低质和高清视频帧,这种数据成对的方式理论上有无数种组合的方式,而且要如何来定义高清视频帧;
- 第二,如何设计出一个模型能够有处理所有退化的能力,需要增加多少约束项来训练模型使得它能够朝着你设想的目标前进。
下面,我们会针对这两个问题来展开讨论画质增强研究团队目前的一些解决思路。用一个大模型来同时处理所有情况是很难保证效果的,因此我们将问题根据实际不同的应用场景划分成了三部分,画质估计和修复、清晰度增强和色彩增强,每一部分的数据也会针对性的进行调整获取。
- 画质估计和恢复 -
画质估计和修复的工作,主要是针对一些本身带有噪声和被压缩的视频帧进行修复和增强。若不经过这部分的处理,直接做譬如清晰度和纹理增强、色彩增强的操作,有机会放大噪声和伪影。反过来,若不管视频本身质量,一律统一进行去噪声和压缩的处理,也会导致细节丢失的问题。
这里具体看下这张人脸图,以压缩恢复为例,它经过不同程度的压缩后呈现出不同的画质,若采用目前学术上最好的无估计方法进行统一的去压缩的处理,会发现它们恢复不了压缩很严重质量很差的图,而对于轻微压缩质量较好的图它的脸部和眼睛周边处理又太过平滑。因此,我们提出CRESNET,是一种有估计的压缩恢复方法,来针对压缩受损情况进行估计,提取质量估计网络中间层特征融合到恢复网络中进行指引,提升不同压缩程度的恢复效果,目前超过了State-of-the-art的方法,而且很适合实际落地应用。
具体来讲,对于一张无损图X,可以通过某种压缩方法C通过压缩系数Q进行压缩得到这张压缩图Y。在恢复过程中,若能够指定压缩系数Q,用模型F来进行恢复,是可以得到较好的修复图,但是实际应用中,我们是不知道压缩系数Q的,所以模型通常复原效果会不理想,导致恢复不好或过度平滑的问题。
针对这个问题,最近也有两种方法提出了一些解决思路。AGARNet会先用估计网络FQ 进行压缩系数Q的估计,得到估计质量系数QE,再结合该系数用统一的一个大模型F对压缩图进行复原。另一个方法Exitor Not 将复原操作分成多个阶段进行,每个阶段得到的复原图都会进行一次质量评估,若质量不满足,则进入下一个阶段继续复原。
我们提出的方法CRESNET则结合了上述两个方法的优势,并很好的进行了融合,
用模型F同时进行画质质量估计并进行多个阶段的复原,使得整个网络可以端到端进行训练。在应用上,画质估计系数可以用来决定网络在哪个阶段退出结束。
本方案的整个网络结构如上图所示,CEBlock是压缩质量估计网络,我们通过对视频帧进行不同程度的压缩,可以得到一个质量因子进行监督。CARBlock 是多阶段图像复原网络,可以看到,它会结合CEBlock的中间层特征进行动态网络权重的调整。
这个网络有两个优势:
- 不同的质量的视频帧可以选择不同的阶段退出,节约计算资源;
- 估计网络的特征融合在恢复网络中,可以同时保证估计和恢复的效果。
一开始,CE Block和CAR Block会先经过一个共享浅层特征提取网络Fsf,减少双任务网络整体的计算量。 然后,估计网络部分进一步通过卷积和pooling操作得到可调节的特征向量。一方面,这个RegulationVector会在恢复网络中进行调节,另一方面,它经过全连接操作后得到质量估计系数QE。
如上图所示,恢复阶段的网络是一个密集链接的Unet结构,这里以第二阶段退出的网络结构示意,可以看出,灰色部分的计算在到达第二阶段之前已经完成了计算。在每个阶段,图像复原都是学习一个复原残差R,在第几个阶段退出由质量估计系数直接来决定。
如上图CICR Cell的结构,之前得到的RegulationVector通过类似channel attention的方式,对每个CICR Cell完成了动态调节恢复网络的特征层权重。
整个网络分为两部分的监督,估计网络部分期望估计的压缩质量系数和真实压缩系数相同,复原网络部分期望复原图像和无损图一致。
训练时,先单独预训练估计网络。上图显示,我们模型的估计质量和真实质量呈现了一个较好的线性关系。然后对复原网络部分进行多阶段的训练,每个阶段的权重和其真实退出阶段的压缩系数相关,越接近的权重越大。
最后,整个网络由两部分进行联合训练,但是估计损失的权重较小。如上图所示,质量差的图片帧经过多阶段的复原质量能不断提升,反之,质量较好的图片帧经过前面两个阶段已经可以得到较好的效果。
实验证明,我们提出的CRESNET在单次压缩的效果上超过了state-of-the-art方法,该方法的优势扩展到多次压缩的恢复效果上提升更加明显,说明其有效的对压缩图片进行了质量评估和恢复。
如上方的示例,对于第一张质量较低的图片,需要完成五个阶段的恢复,
第二张质量较高的图片则在早期阶段就能恢复好,提前退出,就可以减少计算量。
再如下方的示例,我们在第一张经过多次压缩的图片上恢复效果比QGCN稳定,
在第二张只是轻微压缩的图片上则能更好的保持细节。
- 清晰度增强 -
接下来,我们会讨论如何针对质量相对较好的源进行清晰度增强。
在这个任务里,我们虽然会重点考虑如何增强细节和纹理,达到去模糊和更加清晰的目的,但是一定要同时兼顾到即使是较好的源也可能会有轻微的噪声,这些噪声若完全不理会,还是会被一起增强。这就需要我们找到一种更合理的数据处理方式,它能同时兼顾到各种数据分布,因此我们产生的退化数据应该通过随机引入噪声、压缩毛刺、视觉模糊和上下采不清晰等操作,来提高整体模型的泛化能力。另外,由于人眼对人脸和字体区域变化的敏感性,可以针对性的融合高级语义信息来对这些部分进行优化。
在超分的工作里,BSRGAN提出利用随机退化数据的生成方式来生成训练数据,提高超分在真实场景里的效果。我们的工作也会借鉴这种思路,根据实际数据的分布情况来生成相似的退化数据。通过相对合理的随机退化数据的方式,来提高模型的综合增强能力。
如上图所示,我们在清晰度增强模型上,选择了常用的生成式网络结构,通过多个增强模块和残差连接来提高输入帧的清晰度。其中每个增强模块我们都引入了dual-attention的结构。在最新的去噪和超分模型里双注意力机制都被充分证明了其有效性,通过训练使得CNN将权重集中到那些需要重点关注的像素点上。另外,考虑到大分辨率视频上运行速度要尽可能快,整体模型可以用Unet结构来替换,来增加搜索空间和提高运行速度。
在网络监督的设计上,我们同时考虑了像素级损失,梯度损失和感知损失,以及相对gan损失,期望通过综合多种损失函数来平衡清晰度增强的效果。
通常来说,像素级别的损失侧重于噪声抑制,增强的细节相对模糊;边缘和感知损失侧重于保持边缘和加强细节,有去模糊的能力,也有几率放大噪声和伪影;RaGan损失侧重于让最终生成的图片帧更真实,尤其使用PatchGan更能捕捉到生成细节的真实性。
另外,对于画面中人眼比较敏感的人脸和字体区域,可以针对性进行一些优化。
目前,我们也在研究和探索通过高级语义信息来保护和增强特定细节。比如Wang Xintao等在他们的超分任务中提出采用语义分割的先验知识来提高生成纹理的真实性,如右边水的纹理变得更加清晰了。
还有一些专门针对人脸恢复的任务,DFDNET,先通过聚类获得各种人脸五官的先验特征,再融入增强网络里提高人脸细节。如上图这组人脸,先通过我们的网络增强后还比较模糊,增加人脸五官特征后变得更清晰了。还有一些文字检测和分割的算法,也是很强的先验知识,这些高层语义理解的信息融入图像增强的任务后,通常都能获得比较好的提升。
- 视频色彩增强 -
针对一些色彩黯淡的视频进行增强,我们提出的方法主要是通过亮度、对比度和饱和度三个维度来分别进行色彩增强。
按照之前的增强思路,我们也可以选择端到端的成对数据训练方式,比如经典的方法有HDRNet,他通过学习色彩线性变换的系数来进行色彩增强。为了加快整个网络的推理速度,它先在小分辨率的图片上同时提取全局和局部的色彩特征,特征融合后推理出变换系数,该变换系数通过原尺寸上的guidancemap 采用bilateralgrid sliceing的方式来得到原图每个像素的变换系数。这种方式在能够做到局部调色的同时速度也很快,但总体来说,变换系数是黑盒操作,解释性差,会出现帧内和帧间跳变的不稳定问题。
色彩增强技术的另一种思路是通过白盒方法生成作用于图像全局调整的参数,
解释性更强,符合人为PS的操作更稳定可控,适合处理视频以及进行应用落地。
白盒方法目前有两个比较好的思路:Distort-and-Recover和 Exposure。Distort-and-Recover算法将对图片调整色彩的过程分解为包括亮度、对比度、饱和度调整的动作序列,最终目的是生成一组对色彩增强的操作序列使得调整后的图像色彩与专家调色后的色彩接近。而Exposure不仅预测操作序列,还预测操作时系数的大小。两种方法都采用了强化学习进行训练,非常难收敛,而且实际使用时模型stop的位置不稳定,视频色彩会跳变。
我们的色彩增强模型是要直接用参数回归来简化强化学习的思路,使得训练更容易收敛,而且这样的成对数据集也更容易获取,如上图所示,只需要对高质量色彩图分别进行亮度、对比度和饱和度的随机退化。训练时,色彩退化图可以下采到小尺寸提升运算速度。我们通过结合全局色彩特征和语义特征,固定操作顺序,做全连接回归来依次预测图像操作亮度、对比度、饱和度的增强参数,这样整体效果会更加稳定可控。
为了测试回归模型预测的有效性,我们对新一批高质色彩图进行随机退化操作,
然后用我们的网络进行预测,最后预测出来的参数和随机退化操作的真值进行比对。
如上面的散点图所示,我们预测出来的参数在不同真值上的分布都是围绕在真值附近的,均值离真值很近,且方差在可接受的范围内。
如上面的效果图,左边这组输入低光照图片,我们预测进行亮度增强;右边这组输入高饱和度的图片,我们预测进行饱和度弱化。两组预测系数的方差大概在0.2左右,但是调整出来的整体色彩效果都是更合理的,由于整个网络在训练时参考了大量专家色彩,稳定性也比较高。
在视频应用上,为了保证稳定运行,不发生色彩跳变,需要先做场景切分,使得每个场景采用同一组预测参数,切分时采用全局色彩特征保持一致性。另外,我们也会对历史视频段直方图建模,遇到相似场景采用同样增强参数,进一步提高稳定性。而且根据不同应用场景,预测参数的上下限阈值可以针对性进行调整,比如大幅调整还是轻微调整更适合。总体来说,整个模型在视频上推理速度很快,CPU上也能达到实时的应用。
- 视频插帧 -
随着大尺寸(4k及以上)屏幕的普及,常见的720P/1080P和25/30fps帧率的视频已不能满足人的主观体验。这就需要我们对视频进行超分和插帧的工作。由于超分的整体思路和前面画质增强的比较相似,这里主要对插帧展开来讲。
插帧,就是通过对原始视频帧间补充新的视频帧,给用户提供更加流畅丝滑的视觉效果。目前这个问题有两个主要的行业痛点,稳定性差会出现闪烁和卡顿,模型较慢暂时很难落地到直播场景。从技术来说,需要克服的技术难点包括由于运动产生的形变、运动估计的不准确、非匀速直线的复杂运动以及遮挡问题。
针对这些问题,视频云提出了两个插帧方案:
- 第一个方案olfi效果远高于业界竞品适合点播场景使用;
- 第二个方案rtfi能较好的在速度和效果上达到平衡,适用于直播场景。
olfi网络是一个多尺度的RAFT 3个Unet的精准插帧网络,结构如图所示。我们首先采用多尺度多次迭代的RAFT光流估计网络提取初始光流,充分利用运动先验信息;接着,通过一个Unet光流修正网络更新初始光流,通过扩大感受野来提升运动大场景的光流准确率;然后,考虑到可能的遮挡问题,双向分别通过光流warp出中间帧,再通过一个Unet合成权重网络生成双向中间帧的权重图,最后再次通过Unet合成插帧网络最终生成插帧图。
我们一共考虑了三种类型的损失函数进行网络监督。中间帧Opticalflow loss通过预计算光流作为伪参考真值,估计中间帧到两边的光流,从而提高网络训练的稳定性;Warpingloss 将前后两帧分别通过光流估计wrap到对方帧来确保前后推理的一致性,从而提升光流估计对真实场景的准确性,以及双向估计减少遮挡问题的影响;最终通过中间帧生成的Reconstructionloss来监督插帧图像的还原准确度。
rtfi网络是一个通过改进rife网络做快速插帧,适合于直播场景的结构。首先,我们直接采用快速的多尺度光流估计网络IFNet取代迭代式网络自适应不同幅度的运动估计;然后双向分别通过光流wrap出中间帧;接着通过简单快速的fusionnet生成双向中间帧的融合权重和残差;最后再将所有信息融合通过一个Unet来合成最终的插帧图。
在小尺寸的视频上(如UCF101多为320*240的视频),我们的两个插帧网络指标略低于最好的方法,但是随着视频尺寸增大(HDdataset,1080P),我们的模型方案能更好适应不同的运动复杂度和视频尺寸,明显超越了state-of-the-art,普适性更好。
- 视频时空域超分 -
我们也在探索结合空间域和时间域两个维度,同时做超分和插帧。通过互相融合两个网络的深度特征,进一步来提高时空域的超分效果。
这些图展示了超分和插帧的相关任务:
- 图a是单独的超分示例;
- 图b是单独的插帧示例;
- 图C是先做了插帧,再分别做超分;
- 图d是先做了超分,再进行插帧;
- 图e是循环迭代来做视频和插帧的STARnet;
- 最后图f是我们和清华合作提出的Mbnet,同时做视频超分和插帧,并共享信息。
整个网络分成五个部分,一开始,NETSR对输入帧进行超分,得到高分辨图,
接着NetFlow估计低分辨下的运动光流;然后,NETRefine 融合输入帧的高分辨率特征,优化低分辨上的光流,生成高分辨上的光流图;第四步,NETFI 同时融合低分辨和高分辨图特征,通过高分辨光流生成高分辨率插帧图;最后再通过一次NETSR,融合生成的插帧图,优化最终的输出高分辨率图,完成整个时空域超分的计算。
这是时空域同时做4倍超分和2倍插帧的效果对比,我们的MBnet在不同的数据集上都超过了state-of-the-art方法,单独看超分和插帧的效果,在整个参数量不大的情况下,PSNR也是领先于其它方法。
- 媒体画质增强优化方向和未来展望 -
首先,现在的方法基本都是使用深度模型进行增强,视频上处理速度慢,资源消耗高,一方面我们需要优化模型及其推理速度,另一方面,模型压缩技术和各平台计算能力的不断增强也会促使更多模型可以落地应用。其次,由于不同任务的成对训练数据对的处理是有无限组合的,如何更好的探索和模拟真实数据的分布一直是数据驱动下深度学习模型效果提升的关键。对于非成对数据的模型训练也是一个值得挖掘的方向。
然后,鉴于当前需要针对不同任务来设计不同模型来进行修复和增强的情况,在未来的工作上我们也会进行模型融合和单模型多任务的探索,来不断提高模型的泛化能力。
最后,更前沿的研究工作会考虑到人眼视觉的一个主观感受,如JND的引入,以及通过语义信息的理解来提升视频处理的效果。
腾讯云音视频在音视频领域已有超过21年的技术积累,持续支持国内90%的音视频客户实现云上创新,独家具备 RT-ONE™ 全球网络,在此基础上,构建了业界最完整的 PaaS 产品家族,并通过腾讯云视立方 RT-Cube™ 提供All in One 的终端SDK,助力客户一键获取众多腾讯云音视频能力。腾讯云音视频为全真互联时代,提供坚实的数字化助力。