Fork me on GitHub

阿里关于图像增强与画质评估前沿技术探索

以下文章来源于 https://zhuanlan.zhihu.com/p/676267911

导读 本文将分享达摩院开放视觉智能实验室在图像增强与画质评估前沿技术上的探索。

主要内容包括以下几个部分:

  1. 真实画质问题及当前进展

  2. 评估对画质管理的重要作用

  3. 多模态技术带来的新机遇

  4. 未来展望

  5. 问答环节

分享嘉宾|任沛然博士 阿里巴巴 高级算法专家

编辑整理|王超

内容校对|李瑶

出品社区|DataFun

01真实画质问题及当前进展

首先来梳理一下真实画质问题和当前的一些进展,主要从三方面来介绍:空域增强、时域增强以及色彩增强。



画质问题多种多样,大致可以分为局部像素细节损伤、色彩表现力欠佳以及与时序相关的连续性损伤。如上图中所示,空间域一个典型的问题,就是压缩传输中由于设置了比较低的码率带来的块效应,不同的压缩算法以及不同的压缩程度会带来各种各样的问题。时间域的一个典型问题就是抖动的问题。色彩方面,未经滤镜处理的真实图像往往色彩表现不是特别理想,能不能通过自动化的方法去增强,是一个典型的色彩域问题。

在传统的图像处理当中,损伤修复往往被认为是一个病态问题,但肯定可以通过大数据的先验来降低问题的难度。在实际情况中,图像和视频往往存在多种画质损伤,而不是单一的一种问题,因此会给修复和增强带来很多挑战,需要一些更精巧的设计和技术手段。

1. 空域增强

(1)超分



在空域增强里,或者说在清晰度相关的增强里面,超分是一个非常典型的任务。超分指的是输入一幅尺寸比较小的图像,输出它两倍、n 倍,或者是小数倍的更大的图像。毫无疑问,当前解决超分问题的主要思路是用深度学习,实际上主要用到的是监督的深度学习,也就是会用到 pairwise 的数据对来做训练。和语义识别类的视觉任务不同的是,超分训练的数据规模通常不需要很大,当然未来的演进也许会发生变化。典型的超分模型不需要太多的训练数据,但是这个数据必须要被精心地准备。真实的超分任务通常不是理想的,下采样的图像一般会伴随各种各样的问题,比如混合了各种噪声、压缩,甚至多次压缩以及人工编辑所带来的各种损伤,这个时候超分模型可以类比成一个修复模型。训练数据,必须要和所要解决的修复任务相吻合。

在超分模型方面,从 CNN 模型开始不断迭代,逐渐用了 GAN 这样的网络。再到后来,也用到了 transformer 的网络。经过逐渐的演进,已经比开始时用深度学习技术有了非常大的进步。



超分模型做训练的一个关键点,是要构造合适的训练数据,去模拟 pairwise 的数据对,又称为降质或者退化的数据对。真实情况是我们往往会拿到高清的图像,而低清的图像很难通过物理过程去采集到,必须要去模拟。

模拟的方法也是多种多样的,经过几年的迭代,逐渐形成了一个比较稳定的流程,比如 BSRGAN 或者 REAL-ESRGAN 的降质流程,把混合了多种降质因子的退化函数串联或者并联在一起,去完成一个随机的、复杂的、贴近于真实情况的降质场景。经过这样的降质之后,可以构造出接近于实际场景中退化问题的仿真数据的数据集去做训练。如果每一个模型都需要做特定的迭代,会存在普适性的问题,所以大家在不断寻找普适性和效果之间折中的技术点。

我们在这个方向也做了一些有意思的尝试,比如在去年投了一篇 ECCV,主要是想把退化情况未知的图像用在人脸,因为人脸属性的先验比较强,通过人脸的特性去发现这张图是什么样的退化情况,然后把退化应用到整个图像空间,恢复整个图像。总的来说,超分或者这种恢复清晰度修复类的任务都是需要用到 pairwise 的数据对去做训练的。

(2)去压缩



在去压缩方面,我们做了一些特别的处理。压缩会导致马赛克、毛刺、模糊等各种瑕疵,不同的压缩算法和压缩参数会导致不同的瑕疵情况,而且伴随压缩的损伤还会混合各种其它退化问题,甚至有时候会看到锐化、白边等等。这些问题必须要在训练数据中有很好的反应,才能够把它恢复出来。在工作中,我们 follow 了 real-basic VSR 的数据构造流程,调整了原有 paper 当中的数据生产方式,让它能够符合我们业务当中的压缩情况,得到了一个比 general 的超分或者去压缩模型效果更好的结果。

(3)人像增强



另外一个折中方法是,可以去收敛图像的域,如果把它收敛到特定的对象,比如人脸,它的先验就足够强,可以对各种各样的损伤做一个非常好的修复。这篇工作,是我们在两年前发表的 GPEN 人脸图像修复工作,使用了嵌入式的 GAN 去做先验,能够非常好的抓住人脸本身的特性,从而能够恢复各种各样非常夸张的人脸细节,或者说能够修复非常多样的退化。

2. 时域增强

(1)去场纹



时域的增强往往跟图像的连续性,视频在时间上的连续性有关系。比如场纹问题,在体育直播或者早期的电视节目中,我们常常用到所谓隔行扫描技术,这项技术可以大大减少视频信号的传输数据量。但是它容易让视频的画面出现场纹,场纹是一种交错扫描纹理,在运动的场景下会非常影响视觉感观。

目前工业界常用的去场纹算法大多只考虑理想的场纹状态,就是除了的隔行扫描没有其它的后处理,实际上在隔行扫描之后,我们往往会把视频做压缩,甚至做一些缩放以及其它修改,这会导致场纹发生很大的变形。经典算法如 yadif 这样的算法就非常难处理。我们在这里用到了一个 Unet 结构,能够很好地利用多帧的信息以及频率的特性去除场纹。



在比较复杂的情况,如上图,这些模糊和场纹结合在一起的时候,也能修复得比较干净。

(2)视频去抖



时域增强里面还有很多其它问题,比如视频抖动也是一个经典的问题。在早期的时候,视频去抖是 UGC 视频网站比较刚需的一个能力,因为当时的采集设备还不够好。即使是现在,大家手机都有稳向的功能,仍然还是有一些视频会存在抖动,需要做去抖,或者叫做视频稳像处理。根据我们的调研,目前 DUT 网络是去抖实用方面做得最好的,能够充分利用丰富的非成对数据,避免边缘瑕疵,减少不必要的去抖之后的裁剪。

我们在这个模型的基础上做了一些改进,能够处理各种不同的抖动问题。因为抖动问题可能是一个全局抖动,也可能是一个成像的波动,比如里面有一些空气抖动导致的局部波动,这些抖动是非常复杂的。另外,很多去抖网络有一个固定的输入分辨率,我们打破了这个分辨率,能够处理各种高清的画面。当然,去抖问题还没有完全的解决,我们在进行中的工作也包括对大运动场景稳定性的提升。

(3)视频插帧



时域增强领域的另一个典型问题就是视频插帧。很多视频在拍摄的时候,帧率可能是不够的,或者在特定的场景下发现原来够的帧率在放大或慢放的时候感觉特别卡,这时就需要对这个视频做一些插帧。传统的插帧技术存在一些问题,最近几年基于深度学习的插帧技术,能够在很多情况下得出非常漂亮的结果。

插帧技术的一个问题就是在运动场景下,比如画面当中有非常大的运动物体,在两帧之间有一个非常大的差异,或者说画面中存在重复性的纹理,我们在做一些不论是基于光流的还是基于非光流的生成的时候,都会容易把这些重复性的纹理给搞混。另外,当有一些遮挡的情况,比如台标字幕遮挡了一些运动区域,算法对每个像素精确的运动识别就会非常的困难。这些场景都阻碍了插帧技术的广泛应用。因为我们不能接受 80% 的画面很好,但是有些画面存在很明显的问题,这在应用的时候会有很大的阻碍。还有一些其它的问题,比如分辨率的受限,客观评价指标的问题,因为很多时候我们无法去 100% 复原 grand truth 的结果,只要让瑕疵不明显,就可以得到一个比较好的结果。相反,有的模型可能刷数据刷出的指标比较高,但容易出现比较明显的瑕疵,肉眼无法接受,也就难以在实际场景中应用。



我们基于光流技术,做了插帧算法的更新,复用目前最好的基于光流的模型,引用 transformer 去扩大感受野,去模拟真实困难的插帧场景,比较好地解决了大运动、重复纹理和台标字幕遮挡等问题。

3. 色彩增强

色彩是图像和视频表现的一个重要方面,很多时候看一个图好不好看,就是看色彩。

(1)调色



调色是色彩增强的一个重要领域。手机中的滤镜往往依赖专业经验,很多时候我们更希望有自动的调色。目前的调色技术,从一开始基于 CNN 的方法逐像素的映射,到后来 3D-LUT 的方法只需要确定映射函数,就可以迁移到一个更好的色彩域。之前的模型倾向于黑盒,而现在更倾向于白盒,希望给人更好的交互,告诉你要调饱和度、亮度还是色温等等。

(2)上色



色彩相关的另外一个有意思的问题就是上色问题。它的输入是单通道的图像,输出是两个彩色通道,是一个典型的病态问题,因此,对上色效果的评价指标是需要很小心地去设计的。一般来说,我们希望色彩符合真实的语义,因此 FID 指标是比较合适的。另外也希望色彩尽量的丰富,饱和度足够充分,所以有一个 Colorfulness 的 Score。随着 AI 模型的发展,研究者们也逐渐开始迭代自己的网络,一开始也是 CNN,用一个类似于分类的技术去完成主像素的上色。比如人的皮肤,那就上人的皮肤的颜色。这种方式是比较原始的。



后来随着技术的改善,逐渐转变为用 Transformer based 技术,上色对语义的吻合性和色彩丰富度逐渐提高。目前上色结果比较好的方法,一个是 ColorFormer,另一个是 DDColor。与以往的上色模型相比,在语义的一致性和上色的色彩丰富度上有了非常大的提升。

以上就是从空间、时间和色彩三个方面,对真实画质问题以及当前进展的梳理。

02评估对画质管理的重要作用

在实际应用中,对增强处理效果的评估也是非常重要的。但之前没有一个很好的可信评价依据,像基于 pairwise 数据的 PSNR 或是 SSIM 等指标,都只是一个参考。而且很多时候,我们是拿不到一个真实可信的 reference 参考图像的。

1. MOS 回归



对一个图像的画质评估有一个叫 MOS 回归评分的技术。MOS 回归并不需要一个对比,输入一张图像,就会给一个评分,这个评分意味着人有多大概率会喜欢这个图像。比如上图中松鼠的例子,左边的图像存在一些色彩问题,而右边图像的细节比较好,所以右边的评分会比左边的高。下边的例子中,左边的图像存在比较严重的噪声,所以它相比于右边没有噪声的图像,其 MOS 分会较低。

在这一领域,CenseoQoE 是一个比较有代表性的技术,我们基于这一技术做了一些改进。比如把输入图像的短边固定下来,因为我们关注的是图像的底层质量,并不是特别关注比如到底是松鼠好看还是兔子好看,我们关注的是它的画质、清晰度、色彩的丰富度、饱和度、有没有瑕疵这方面的问题,所以我们需要保持它的输入分辨率。

另外可能它原本的训练数据,并没有为我们所关注的底层质量去做收集,我们根据自己的理解,在实际业务中有一些新数据的整理,去保证我们训练的模型与实际问题更贴近。我们评估在典型数据集上面的客观指标,它的排序精确度会更高一些。

2. 分项评估



MOS 分实际上是一个非常粗略的评估,我们还需要用到分项的评估技术。上图中展示了三个清晰度相关的例子,比如下面的点状噪声,右边的模糊,还有右下角的压缩,它们是混合地去影响图像或视频画质的。



要把多种多样的画质问题在一个模型里面解决,已有一些相关工作,比如 25 distortion 的 filter 去模拟各种各样的降质,用了很多的数据去做训练,得到了不错的结果。



我们在这个技术的基础上做了一些改进。之前的工作中,针对每一种降质用的是独立的训练数据,要么是模糊,要么是有噪声,要么是有压缩。实际上的问题不会是单一的,而往往是混合的,既有噪声、模糊又有压缩。因此必须要考虑生成的数据和实际问题的吻合度。

我们把多种降质混合在一起做一个打分。这个打分就会有点 tricky,比如 1 度的压缩和 1 度的模糊,加在一起算是 1.5 度的模糊,还是仍然是 1 度的模糊呢。所以我们在训练的时候,没有采用直接的打分机制,而是更多的采用排序对比训练数据对来做这件事情。经过模型的处理之后,可以回归到像噪声、压缩、模糊程度的得分,当然也有其它一些得分。然后逐镜头分析,就可以得到图像或视频的一个完整的多维度的评分结果。



对于色彩来说也是一样的,我们对它的对比度、亮度、色彩丰富度等基础信息给出一个统计。同时我们也会给到用户,这张图或者这个镜头,需不需要做色彩增强,有多大的需求强度做色彩增强,另外镜头或者图像有没有存在一些明显的色彩问题,比如说色偏、色带或者过曝等等。得到这些信息之后,我们就可以做进一步的处理。另外我们也可以对图像本身的质量有一个更清楚的认知。比如上图中右侧展示的报告,对比两个镜头的报告,右边的镜头是有色偏的,而且镜头比较暗,左边的镜头亮度和饱和度就比较到位。



有了对画质各维度的分析评估之后,我们就可以对图像做一些自动化的处理。不需要依赖人为判断,而是由 AI 模型说了算。比如分析了清晰度三个要素的水平,发现主要的问题是模糊和压缩的问题,那么我们就先对它做一个去压缩,然后再做超分,就可以得到一个比较好的结果,也不浪费处理资源。

3. 生成模型评估



在画质评估方面,还有一个很重要的问题,就是对生成模型的评估。像超分、去压缩、人像生成等,所有这些都可以认为是一种生成模型。生成的细节到底好不好,其实是非常难评价的。我们目前能够做到的,是用半参考或者无参考的技术,做到对模糊和细节丰富度给出一些评价,但是要想确切地告诉人们生成的结果对不对,有没有问题,这还是有待研究的。

03多模态技术带来的新机遇

1. 基于扩散模型的图像超分

关于画质增强和画质评估的研究方向有很多,多模态是其中一个重要方向。



近期各种扩散模型的应用非常流行,其中在图像超分领域我们也看到了一些非常惊艳的效果。像 LDM(Latent Diffusion Model)的V2版本,不仅用到了扩散模型技术,也用到了跨模态技术。



如上图所示的例子,它在加上文字之后,能够把输入图像的细节做得非常逼真。

扩散模型用在超分方面,还是有很多的问题,这也是我们正在研究的工作。首先肯定是效率问题,其计算量比基于 GAN 的技术要有不止一个数量级的提升,这是很大的一个成本。另外,它虽然生成能力很强,但是制造瑕疵的本事也很大,比如像上图中文字的例子,它猜出来的东西正确与否,我们无法确定。LDM-V2 模型做超分任务,需要一个文本的输入,这件事情也是有点反人类的,所以我们也在想办法把文本输入的必要性去除掉。

2. 基于文本-图像大模型的画质评估

实际上,跨模态技术以及 AI 大模型能够在画画、图像增强方面发挥作用的地方非常多。



在画质评估领域,我们观察到 AAAI-2023 把 clip 模型应用到了 IQA 里面。



利用 clip 的强先验,能够给出一个比较靠谱的 MOS 评分。



同时,因为用了 clip 的大模型,所以它能够给出一些抽象概念的评分,比如是暖的还是冷的,这些评分对于图像的质量分析也是有所帮助的,因为不同领域的图像往往需要区别对待。图像文本大模型是不是真的能够帮助底层视觉、细粒度的画质评分,是有待研究的,也是我们在思考和尝试解决的问题,但是现在还没有一个定论。对模糊、清晰度这样一些问题,大模型能否得到 low level 的细节是存在疑问的,可能在模型学习中,把这些模型细节给丢掉了,而只是去看整体的构图、整体的语义搭配合理性等。

04未来展望

关于未来的工作,首先是在图像增强和画质评估上更好地借力生成大模型和多模态技术。其次,提升对生成模型的评估能力,进一步合并多维度的画质评分能力,去提升评估效率。第三,是对画质评估和画质增强做进一步的整合,逐渐做到一键分析加处理,来应对复杂多样的智能修复问题。最后是探索图像增强模型的小型化问题。现在很多模型对移动端并不是很友好,所以模型的小型化和低功耗也是一个长期的任务。


05问答环节

Q1:图像增强和视频增强有什么区别?

A2:图像增强和视频增强有非常大的关联,很多时候我们对视频的增强和分析就是用了图像单帧的结果。但视频里面有些特殊的问题,比如时序的问题,文中讲到的场纹、抖动、插帧等问题。另外,当有时序信息的时候,利用时序的技术处理噪声、超分等问题可以有更多的手段,因为它综合了更多帧的信息,一般会得到更好的结果。但它的成本一般也会更高,是否 cost effective,需要具体来看。大多情况能用图像处理的时候还是尽量用图像来处理。

Q2:基于 pairwise 训练的 VQA 模型回归分数是在有标注的数据集上 finetune 的吗?二阶段还是一阶段联合训练的?

A2:比如清晰度这样的问题,VQA 有好多个维度,有的维度,比如想知道有没有一些特定类型的瑕疵,比如坏帧、场纹,或者坏帧导致的马赛克、绿屏等问题,就是一个 binary 的结果,所以这就是一个分类问题。还有一些像压缩场强度、模糊强度、噪声强度,这些是一个浮点数,或者说一个等级分回归的问题,当我们只看单一维度问题的时候,比如就想知道这个图像的模糊程度,那是可以做一个回归训练。图像和模糊程度值是一个唯一的分数值。但当我们把多种的退化问题混合在一起的时候,这个评分就很复杂,因为不能说压缩对模糊没有影响,有一分的高斯模糊和一分的压缩,可能会增大它的模糊结果,很难去评估它到底是扩大了零点二还是零点五。所以我们会倾向于用排序的方法来做训练,而不是一个直接的分数映射。

Q3:如何看待端侧落地?

A3:目前我认为端测落地还是比较重的,我们现在也在支持一些端测的业务,基本上很多时候得为端测任务去开发算法。性能、效果以及适用范围上也会做一些取舍,否则很难达到效率要求。

Q4:直接用图像增强处理视频,会不会出现闪烁的情况?

A4:这个需要看任务,像上色之类的任务,以及用大模型去做图像逐帧处理时,还是要仔细考虑帧间抖动的问题。但很多使用 CNN 网络和 GAN 模型去做超分时,基本上不太考虑这个问题。

Q5:图像视频超分会把人的头发发质变得更油腻,老师您这块儿有遇到过吗?

A5:是的,不仅是超分,在清晰度的修复过程中,一般我们会去除噪声,就容易把一些细节给抹除掉,抹除掉的头发就会看起来结块儿,也就是所谓显得油腻,这些都是超分或者修复网络常见的一些问题。文中提到的去压缩的模型,对细节的保持就比较好,这对训练网络时数据的准备,还有一些细节的处理,是需要特别注意的。

Q6:Clip QA 相比 FID 等指标主要区别在哪里?是增加了抽象语义的评估吗?

A6:我认为抽象语义的评估只是一个副产品,主要产品是能够做 MOS 评分。这是一个有意思的地方,也就是说大模型可以跟评估任务结合在一起来看,而且因为有大模型的很强的、海量的数据先验之后,能够一次性处理很多种画质评估的任务,这个是我们所期望的,但是这还没做出来,所以现在还不确定是不是真的有那么强。

Q7:主观的画质评估一般从哪几个指标维度去评估,指标评估的标准有文献可参考吗?

A7:VMAF 是一个有参的评估,可以借鉴。还有文中提到的 CenseoQEo 的那篇文章,里面也用到了很多的分项评估,也是人类根据经验去设置的一些中间指标,然后用这些中间指标拟合一个主观的画质评估,但也可以不拟合,可以直接去 end to end 输出一个主观的评分。

Q8:色彩增强,需要大量的 pairwise 数据对,人力成本比较高,请问有其它新颖的造数据方式吗?

A8:色彩增强这块数据确实非常有限,如果再造数据的话,成本非常高,我们现在做这方面研究的过程中就碰到了这个问题,所以我们也在想,有没有办法可以不造数据,或者说通过好的数据去造坏的数据,就跟超分问题一样,拿到高清的数据去造低质的数据,这样来形成数据,我们正在做这方面的研究。

Q9:没有直接对 MOS 的回归吗?都是子维度的分类吗?

A9:对 MOS 评分的直接回归是有的,文中讲到的 MOS 评分,不是必须要依赖于子维度评分的,可以直接给出一些 end to end 的结果。因为那个数据是有 end to end 的数据集在那里的,而且我们自己也可以梳理到这样的数据集。

Q10:HDR 技术在图像增强中的应用和未来发展如何?

A10:在色彩增强部分有一个问题在文中没有提到,但其实我们也有这个技术,就是 HDR 和 SDR 之间的互相转换。HDR 到 SDR 相对来说稍微容易一些,但是实际上也没有那么容易,它要适配各种 SDR 的设备。因为 SDR 设备的显示特性跟 SDR 有很大的不同,具体如何调试是有点玄学的。SDR 到 HDR 也是一个病态问题,是更难的一个问题,这个技术目前也没有一个普遍的解法,只能生成相对 SDR 亮度、对比度更高、看起来色彩丰富、更明艳 HDR 的结果,但这个结果跟原生 HDR 技术的效果还是有一定差距的。所以 HDR 的技术,或者说 SDR 到 HDR 增强在图像增强这块还可以继续往前推进。不过目前,我感觉这个需求并没有那么大,因为现在好像很多设备都是在用 HDR 的拍摄。在输入 HDR 的时候、处理的时候也可以用 HDR,我们所有的清晰度增强和色彩增强模型都可以在 HDR 域上面重新再做一遍。

Q11:图像增强走大模型路线是否可行?

A11:我觉得是相当可行的,至少目前没有被证伪,我们也在往这个方向努力。图增强还好,视频增强其实是更难的一个问题,因为这些大模型生成模型的稳定性是一个很大的问题,用在时域上连续性会不太好。但图像增强是非常 promising 的。

Q12:视频增强可否考虑多帧输入的算法,是否有相关的研究?

A12:有很多技术都是用多帧的,文中讲时域增强的时候,每一个都是多帧输入。在超分去噪、去压缩处理的时候也可以用多帧算法。我们也有相应的探索,有些时候我们就想用多帧的技术去提高它的处理效果,但是这个处理效果的增益有代价的,这个代价如果能被承担的时候,就可以这么做,但是很多时候,我们觉得用图像增强就够了。

Q13:图像去噪会带来细节损失,这方面有改善的方法吗?

A13:这个是肯定会带来损失的,在文中讲到去压缩问题的时候,其实压缩也是一种噪声,我们做了很多细节的 finetune,在数据的准备上面,我们会让数据跟我们的应用非常贴近,这样会把细节恢复的更好。另外,AI 大模型技术带来的细节增益会非常大,不管是超分还是去噪,它可能会给你带来一些惊喜。

Q14:对于视频色彩亮度的增强,会出现闪烁,有什么方法可以缓解吗?

A14:这块如果直接用 CNN 的模型,是容易出现闪烁问题的,因为某个地方颜色可能有些跳变,可以用尽量多的 harmonizer 和尽量多的函数拟合,就像 3D-LUT 这样,相当于是一种函数拟合,会把闪烁的问题弱化掉,还有一些后处理的办法也可以改善这个问题。

Q15:子维度评分后对应模型比 end to end 更好吗,为什么?

A15:这个没有什么理论依据,但是业界很多工作都是这样做的。比如 VMAF 也是用子维度的评分,再去拟合一个最终的 MOS 分。我们也觉得为了得到最终的一个 MOS 分,得到一些中间的结果,至少是没有坏处的。也许有足够多的 MOS 分数据的时候,也可以得到一个很好的结果,但是 MOS 分的数据有一个问题,它是一个主观的评分,也就不会那么准,除非有非常大规模的标注数据。相对来说,中间结果的评分有的时候是很准的,可以让你的训练更容易收敛到一个比较好的结果。

以上就是本次分享的内容,谢谢大家。




本文地址:https://www.6aiq.com/article/1704445251383
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出