旷视科技来源

旷视等提出GIF2Video:首个深度学习GIF质量提升方法

你还为 GIF 动图模糊不清而烦恼吗?

论文:GIF2Video: Color Dequantization and Temporal Interpolation of GIF images 

论文链接:https://arxiv.org/abs/1901.02840

背景

互联网之中,GIF 可谓无处不在,通过海量用户的制作与使用而不断涌现,流转不息。GIF 的广泛传播可归因于其文件较小,上手高度便捷。

但是,由于制作过程的颜色量化非常严重,相较于原视频,GIF 经常成像较差。把一段视频制作成一张 GIF 需要 3 步:帧采样(frame sampling)、颜色量化(color quantization)以及可选用的颜色抖动(color dithering)。

帧采样会导致 jerky motion 的问题,而颜色量化和抖动则会产生平坦区域(flat color regions)、伪边界(false contours)、颜色偏移(color shift)和点状分布(dotted pattern)等问题,如图 1 所示。 

图 1:颜色量化与抖动。

设计思想

本文工作的亮点是一种新的颜色反量化(color dequantization)方法,去除由颜色量化(一种有损压缩过程)带来的成像瑕疵。GIF 的颜色量化过程远比传统的色深压缩(bit depth reduction)更为激进,每张 GIF 通常只用到 256 色(甚至更少,如 32 色)的调色板,本文的任务即是 GIF 图像进行反量化处理,其挑战性要远胜于传统的色深增强。

当然,从量化图像中复原所有原始像素近乎不可能,因此本文目标是渲染一个接近原图像的合理版本,具体做法是收集训练数据并训练一个卷积神经网络,从而把量化图像映射到原版本。

但是,训练一个良好适用于不同 GIF 图像的卷积网络相当困难。为此,本文提出 2 项全新的技术以提升反量化网络的性能:

  1. 首先,本文把反量化视为一个优化问题,并借鉴 Lucas-Kanade 迭代思想,提出一种可迭代用于颜色反量化的新型网络架构——组合性颜色反量化网络(Compositional Color Dequantization Network/CCDNet),它可以很好地消除由严重量化导致的成像瑕疵。

  2. 其次,本文在设计重建损失和生成对抗损失函数时,兼顾像素颜色和图像梯度两个维度,事实证明这比仅在颜色值上定义损失函数更有效。

GIF2Video 效果演示视频。左上为 input GIF,右上为 ground truth GIF,左下为 output GIF,右下为 ground truth GIF 和 output GIF 之差,黑色越深,表示相差越小。

GIF 制作及其瑕疵 

如上所述,把视频制作成 GIF 共有 3 步: (1) 帧采样、(2) 颜色量化、(3) 颜色抖动。帧采样可以显著减少 GIF 文件大小,但也降低了视频内容的时序分辨率;颜色量化与抖动的详细过程与细节及其成像瑕疵请参见原论文,本节不再赘述。

方法

本文方法将 GIF 动图(由一序列 GIF 帧组成)转化为视频,质量比原始 GIF 高出一大截,它主要分为两步:颜色反量化和插帧(frame interpolation)。

颜色反量化方面,本文提出一个由 Lucas-Kanade 迭代算法启发的全新的组合性卷积神经网络。并且,用于训练网络的重建损失函数和生成对抗损失函数都是在像素颜色和图像梯度两个空间内计算并结合的。

执行颜色反量化之后,本文使用一个改进的视频插帧算法以增加输出视频的时序分辨率。

颜色反量化

表示颜色量化函数,其中 G 和 分别指代 GIF 帧和原始的输入帧,C 是量化使用的调色板。C 由 的颜色聚类产生,也可以根据 G 唯一地确定下来。

因此,颜色反量化的目标是在给定 G 的情况下恢复原始图像,即。但是量化函数 f_C 是一个多对一的映射,所以颜色的反量化是一个不适定(ill-posed)问题。

本文提出的方法将量化函数 f_C 本身嵌入到组合性网络中,从而为反量化函数的学习和推理提供了有价值的信息和指引。

组合性架构

已量化 GIF 图像 G 和调色板 C 既定之后,本文寻找接近于 ground truth 图像 的图像 I,同时满足颜色量化约束 。这可视为一个优化问题,最小化 和 I 以及 f_c (I) 和  之间的重建误差,即:

但是,由于量化函数 f_C 的导数几乎处处为 0,第二个损失项  无法直接作为合适的损失函数

为此,本文借鉴 Lucas-Kanade 算法迭代地优化第二个损失项。每次迭代都要计算对复原图像的更新以进一步最小化损失:

对 f_C 采用一阶泰勒展开,方程(2)可近似为: 

这是一个关于 的二次优化问题,所以存在一个计算最佳更新 的闭式解: 

方程(4)表示在一阶泰勒展开近似下,最佳更新 和两张 GIF 图像之间的差异成线性关系。为了适用非线性的情况,本文使用卷积神经网络来替换线性函数。具体而言,本文使用 U-Net 架构迭代估计最优更新 。方程(4)变为: 

其中 g 表示需要学习的深度卷积网络。遵循 Lucas-Kanade 算法的迭代思路,本文交替计算更新方向和更新反量化图像:

其中 。这引出了本文提出的组合性颜色反量化网络 CCDNet,其架构如图 2 所示。 

图 2: CCDNet 架构。

当前图像估计 I^t 既定的情况下,本文首先使用输入 GIF 图像 G 的同一调色板计算 I^t 的颜色量化图像 G_t。接着 U-Net 模块把 作为输入并输出。最新的图像估计是当前估计和的叠加。这一过程可在训练和测试之时迭代使用。

颜色反量化损失

令 G_i 表示 CCDNet 的输入 GIF 图像,I_i 表示相应的输出。本文提出使用方程(7)中的损失函数以测量 I_i 和 之间的差异。 

为使图像估计更为清晰,本文使用 L_1 范数计算重建损失函数

本文还使用条件生成式对抗网络(Conditional GAN)优化 CCDNet,促使网络输出的分布尽可能逼近真实图像的分布。这里的对抗性损失函数在颜色值和梯度值上同时定义,实验表明考虑梯度值的损失确实非常重要:

时序插值

SuperSlomo 是新近提出的一种神经网络,专为变长式多帧插值(variable-length multi-frame interpolation)而设计。本文使用 SuperSlomo 反转帧采样的过程,提升 GIF 的时序分辨率。

 图 4:GIF2Video pipeline。

图 4 描绘了整个 GIF2Video 流程图,这一算法有 3 个组件:

  • 网络 A 执行颜色反量化,输出对 ground truth 图像的估计 I_0 和 I_1;

  • 网络 B 估计两个输入帧之间的双向光流图

  • 网络 C 接收网络 A 和 B 的输出,并计算插值帧 I_t。

本文使用 CCDNet 作为网络 A,网络 B 和 C 则是 SuperSlomo 的两个 U-Net 模块。网络 B 直接使用 GIF 图像来估计双向光流,而不是使用网络 A 的输出,这使得网络 A 和 B 可并行运行。实验表明这一并行模型与串行模型性能相似。

数据集

本文的另一个贡献是针对这一任务采集了两个大型数据集:GIF-Faces 和 GIF-Moments。两个数据集都包含大量 GIF 动图及其相应的高质量视频。顾名思义,GIF-Faces 以人脸为主,GIF-Moments 则更通用和多元,基于互联网用户制作的真实 GIF 而打造。

图 5:GIF-Faces(上行)和 GIF-Moments(下行)数据集的样帧。

图 5 给出了两个数据集的一些样帧(无抖动)。上行的图像来自数据集 GIF-Faces,包含了人脸和部分上半身,背景场景多样;下行的图像来自数据集 GIF-Moments,内容更加多元,场景范围涵盖体育、电影、动画等。

实验

本文实验使用峰值信噪比(PSNR)和结构相似性指数(SSIM)作为评价指标。PSNR 基于估计图像与原始图像之间的均方根误差(RMSE)定义。SSIM 也被经常用于评价图像质量。

本文首先计算每一帧的 PSNR 和 SSIM,然后在每一视频内取均值,最后再在测试集的所有视频取均值。下面是一些实验结果的图示:

表 1:数据集 GIF-Faces 上的 GIF 颜色反量化的结果对比。

由表 1 可知,第 1-9 行是 CCDNet 不同设置下的结果;第 10-13 行是若干个现有方法的结果。性能通过 PSNR 和 SSIM 进行衡量(越高越好)。

表 2:GIF 帧时序插值的结果。

由表 2 可知,随着时序下采样因子从 1 增至 8,已制作 GIF 的成像质量迅速下降。在 GIF-Faces 数据集上,GIF2Video 可提升复原视频的 PSNR 高达 3 dB。这等价于颜色值减少 30% 的均方根误差。 

图 8: 数据集 GIF-Faces 中 GIF 颜色反量化的定性结果。

训练 Pix2Pix 和 CCDNet 而不借助于图像的基于梯度的损失是无法很好地消除量化瑕疵的,比如平坦区域和伪边界。借助对抗性损失训练 CCDNet 可带来更加逼真、颜色更加丰富的图像(见图 8 皮肤和嘴唇的颜色)。在数字设备上观看效果更佳。

结论

本文提出了 GIF2Video,首个基于深度学习提升自然场景下 GIF 成像质量的方法,其主要任务有两个:颜色反量化和帧插值。针对第一个任务,本文给出一个组合性网络架构 CCDNet,并通过综合损失函数训练它,颜色反量化被嵌入于 CCDNet 以指导网络学习和推理。对于第二个任务,本文采用 SuperSlomo 进行变长多帧插值以提升输入 GIF 的时序分辨率。

实验结果表明 GIF2Video 可以通过显著减少量化瑕疵而大幅提升输入 GIF 的成像质量。本文希望该方法可以激发更多灵感,发觉更多方法优化从 GIF 重建视频的任务,比如把图像序列看作一个 3D volume 或者应用循环神经网络提升帧内一致性。

参考文献 

[1] Graphicsinterchangeformat,version89a.https://www.w3.org/Graphics/GIF/spec- gif89a.txt. 

[10] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Gen- erative adversarial nets. In Z. Ghahramani, M. Welling, C. Cortes, N. D. Lawrence, and K. Q. Weinberger, editors, NIPS. 2014. 

[18] P.Isola,J.-Y.Zhu,T.Zhou,andA.A.Efros.Image-to-image translation with conditional adversarial networks. In Proc. CVPR, 2017. 

[19] H. Jiang, D. Sun, V. Jampani, M.-H. Yang, E. Learned- Miller, and J. Kautz. Super slomo: High quality estimation of multiple intermediate frames for video interpolation. 2018. 

[27] B.LucasandT.Kanade.Aniterativeimageregistrationtech- nique with an application to stereo vision. In Proceedings of Imaging Understanding Workshop, 1981. 

[39] C. Wang, H. Huang, X. Han, and J. Wang. Video inpaint- ing by jointly learning temporal structure and spatial details. arXiv preprint arXiv:1806.08482, 2018. 

工程GIF2Video旷视科技
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

范数技术

范数(norm),是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,是一个函数,其为向量空间内的所有向量赋予非零的正长度或大小。半范数反而可以为非零的向量赋予零长度。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

条件生成式对抗网络技术

生成对抗网络是一个训练产生式模型的框架。原始的GAN能够训练一个非条件的产生式模型,它对产生数据的模式没有加以控制。给原始的GAN模型中加入条件约束,使得引导数据产生的过程成为可能,这样的GAN网络称为条件生成式对抗网络。其中,添加的条件可以是类别标签,或者是其他模态的数据等。下图所示为条件生成对抗网络的基本结构,从中可以看出,该模型的关键是在生成器和判别器中分别加入条件作为输入。一个简单的应用例子是以数字类别标签作为条件,训练产生式模型使之能够根据给定的标签产生特定的数字。条件生成式对抗网络能够应用于跨模态问题,例如图像自动标注。

导数技术

导数(Derivative)是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x_0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x_0) 或 df(x_0)/dx。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

均方根误差技术

平方平均数(Quadratic mean),简称方均根(Root Mean Square,缩写为 RMS),是2次方的广义平均数的表达式,也可叫做2次幂平均数。常用于计算误差

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

插值技术

数学的数值分析领域中,内插或称插值(英语:interpolation)是一种通过已知的、离散的数据点,在范围内推求新数据点的过程或方法。求解科学和工程的问题时,通常有许多数据点借由采样、实验等方法获得,这些数据可能代表了有限个数值函数,其中自变量的值。而根据这些数据,我们往往希望得到一个连续的函数(也就是曲线);或者更密集的离散方程与已知数据互相吻合,这个过程叫做拟合。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

暂无评论
暂无评论~