新海诚“你的名字”同款滤镜着实在各社群火爆一把,朋友圈中滤镜粉们纷纷穿越到二次元,普通图片经过滤镜的渲染粉饰重获“新生”。滤镜处理图片的技术现在已经司空见惯,但是迁移到视频上,实现高质量且风格百变的效果却鲜为人知。一方面因为大规模推广的厂商不多,另一方面也因为这背后牵扯的技术难度较大。在刚刚结束的SIGGRAPH Asia 2016上,腾讯AI Lab现场揭秘了实时视频风格转换是如何生成的。本文内含演讲PPT,纯正技术干货立即奉上
演讲主题:基于深度学习的图像和视频风格转化
演讲者:matt,腾讯AI Lab
演讲提纲:
1. 迭代图像风格转换
2. 前向图像风格转换
3. 迭代视频风格转换
4. 前向视频风格转换
5. 小结
在这之前,图片风格转换的问题,传统的方法:是基于手工提取特征来生成一张新的图片。而目前比较流行的使用深度学习的方法:是基于深度网络学习的特征来生成一张新的图片。
一、关于迭代的图像风格转换
今年的CVPR有一篇 oral文章 “Image Style Transfer Using Convolutional Neural Networks”,当时引起了学术界的广泛关注,讲的就是关于迭代的图像风格变换问题。
然后我们具体去做的时候,一般是这样的:
1. 先输入一张随机(噪声)图,经过VGG—19网络,可以提取出我们预先定义好的content和style特征。
2. 我们将content特征跟用户提供的输入图像(content image)去比对,将style特征跟另外一张预先设定好的风格图像(譬如某位大师的一幅油画)去比对,有了内容的差异和风格的差异后。
3. 我们一步步通过一个叫back propagation(反向传播)的过程,从网络的高层往回传, 一直传到我们输入的那张随机噪声图, 我们就可以去修改这张随机噪声图,使得它跟我们指定的content特征和style特征越来越像。
4. 所以它最后在content 特征上接近于用户输入的那张,在style特征上接近于另一张预先设定好的油画作品等。
如下图所示,先用一个VGG—19图形识别和卷积网络提取输入图片的content和style特征。(这些提取的特征主要用于后面重构后面随机输入得到的结果)
当然,实际执行图片风格转换的时候,还要考虑产生内容损失和风格损失。关于内容表示(CNN特征图像): 深度神经网络已经可以抽取高层次(抽象)的信息表征了。
下面是内容损失函数
关于风格表示
下面是风格损失函数
下图是流程的展示。
一开始输入的随机噪声图,经过中间的(VGG 19)网络,在不同的层次分别提取的内容和风格特征,跟用户输入原图的内容进行比较,跟预先设定的另一张图(比如大师的某张油画图)的风格进行比较,然后计算出损失函数Ltotal。
具体的风格变换算法中产生的总的损失=α*内容损失+ β*风格损失。
当然,实际执行图片风格转换的时候,还要考虑产生内容损失和风格损失。关于内容表示(CNN特征图像): 深度神经网络已经可以抽取高层次(抽象)的信息表征了。
但迭代图像风格变换自有它的缺陷之处:没有训练和自学习的过程;对每一张新的输入图都要重复它迭代更新的过程;速度慢。
请输入正文
二、关于前向图片风格转换
斯坦福大学的 Justin Johnson曾经提出一种使用前向网络完成图像风格变换的方法,发表于ECCV 2016。
在其实践时,采用的图片转换网络层具体见下:
1. 2个卷及网络层进行下采样;
2. 中间5个残差网络层;
3. 2个反卷积网络层进行上采样。
损失函数包下面三部分
最后的实践结果如下,质量非常不错。
总的来说,使用前向图片风格转换:不仅可以保证实时性;还可以使得(前向式)生成和迭代式在视觉上近似的结果。
三、关于迭代视频风格转换
将风格变换技术由图像向视频拓展最为直接的方式就是使用图像风格变换的技术逐帧完成视频的变换,但是这样很难保证视频帧间风格的一致性。为此 Ruder 等人提出了一种迭代式的做法 [Ruder, Manuel, Alexey Dosovitskiy, and Thomas Brox. "Artistic style transfer for videos." arXiv preprint arXiv:1604.08610 (2016)],通过两帧像素之间的对应关系信息来约束视频的风格变换。
不过,迭代式(Ruder et al.)的方法来处理视频的风格变换考虑了时间域的一致性,但是处理速度非常慢,处理一帧视频大约需要 3 分钟。
那不考虑时空一致性又是什么结果呢?以静态图片转换为例。
实验结果是这样的。
总的来说,迭代式(Ruder et. al)的方法来处理视频的风格变换:考虑了时间的一致性,但处理速度非常慢,处理一帧视频大约需要3分钟;另外其品质还高度依赖光流的精确性。
四、关于前向迭代视频风格转换
腾讯AI Lab的方法:
1. 通过大量视频数据进行训练;
2. 自动辨别学习效果,并自我优化;
3. 在训练过程中我们保持了输出结果的时间一致性。
最终,腾讯AI Lab
1. 设计了独特的深度神经网络;
2. 将风格变换的前向网络与视频时空一致性结合起来;
3. 高效地完成高质量的视频风格变换。
五、小结
1. 深度神经网络已经可以抽取高层次(抽象)的信息表征了。
2. 不同网络层的格拉姆矩阵可以用来表述风格(纹理,笔触等)。
3. 从图片进阶到视频(风格的转换),要注意时空的一致性。
4. 前向神经网络可以同时抓取风格和时空一致性。
题后
腾讯AI Lab展示最新的视频艺术滤镜成果,是通过训练一个深度前向神经网络学习了如何将视频的每一帧都转换成指定的艺术风格,同时还保持了视频帧与帧之间的一致性。相对于图像艺术滤镜,视频艺术滤镜的难点在于保持帧间一致性。直接对视频逐帧应用图像艺术滤镜会造成帧与帧之间的风格化结果略有不同,从而导致影响观众体验的闪烁效果。腾讯AI Lab的视频艺术滤镜除了学习如何将一帧视频艺术化,还学会了如何保持艺术化之后的帧间一致性,因此能够获得优于目前Prisma、Artisto等商业软件的结果。