风格迁移的发展历程可大致分为三个阶段:
1、 传统的图像风格迁移(Traditional style transfer)
在计算机视觉领域,风格迁移被视为纹理合成的扩展问题,当时甚至连名字都没有,更多的叫法是纹理迁移(texture tansfer),因为风格其实也可以看作一种纹理。假如在合成纹理图的时候刻意的保留一些语义信息(即输入图的内容信息),那就得到了风格迁移的结果。这一方法没有流行起来的原因是当时纹理迁移的是基于像素的底层图像特征,并没有过多的考虑语义信息,因此图像的迁移结果并不理想。
其实,可以将图像迁移看作图像纹理提取和图像重建两个步骤,2015年前,仅在图像纹理合成上有些许成就,但在图像重建领域考虑的并不周全。但是随着深度学习的飞速发展,基于神经网络的图像迁移方法有了巨大的进步,以下的介绍都是基于神经网络的图像迁移方法。
2、 基于神经网络的风格转换(Neural style transfer)
在上一小节说道,可以通过纹理建模方法(Visual Texture Modelling),主要研究如何表示一种纹理,是纹理合成技术的核心。纹理建模方法的相关研究解决了图像风格化迁移的第一个大问题:如何对风格图中的风格特征进行建模和提取。
然而,如何将风格和内容混合然后还原成一个相应的风格化结果呢?其中可以设计一个前向网络,用数据驱动的方式,喂给很多训练数据去提前训练它,训练的目标就是给定一个输入,这个训练好的网络只需要一次前向就能输出一张重建结果图像。这就是基于神经网络的风格转换方法。
风格迁移原理主要包含三个部分:图像内容获取,图像风格提取以及内容和风格融合。
3、 基于对抗生成网络的风格迁移(Style transfer based on GAN)
严格来说,基于GAN的风格迁移其实是属于基于神经网络的风格迁移范围之内的,因为GAN网络本质上就是神经网络,只是由于其巧妙的loss函数设计方法,使得GAN网络的效果在图像生成领域一马当先,其研究也极为火热,近些年已有开山立派之态。
GAN网络由生成器和判别器两个网络组成,生成器负责对输入图片进行重建;其重建结果与真实数据集一同送入判别网络进行判断,判别网络负责分辨生成器的输出结果到底是来自真实数据集的真实图片还是来自其本身的生成图片。这时,巧妙的事情就发生了,生成器会努力使自己生成的图片骗过判别器,方法自然是生成的图片越真实越容易欺骗判别器;判别器则会努力分辨输入到底是真实的还是生成的,其反馈来指导生成器生成更真实的图片,从而形成一种动态博弈,结果是输出的图片在内容和风格上都类似于真实数据集。