上周我们发布的“AI修图黑科技,Geek也能艺术范”一文引发了众多读者的围观,不少Geek都对背后的技术细节充满了浓厚的兴趣。那么,今天就让我们为大家详细解读一下风格迁移相关技术的研究新成果。
如今,风格迁移(style transfer)迅速成为人工智能(AI)研究领域的热门话题之一。一些艺术画风格的图片处理工具,如:Prisma、Icon8、DeepArt、Ostagram等风靡全球,它们使用人工智能算法将普通的生活照片变身为大师级艺术风格照。实际上,风格迁移是一种对图片风格进行转换的技术,运用这种技术,我们可以很容易地让普通照片拥有强烈的艺术感和艺术效果(如下图)。广义上来说,它包括颜色、纹理、艺术表现形式之间的风格转换。
虽然相关应用和处理工具近几年才受人追捧,但其实这种技术在视觉领域已经被研究了很长一段时间了。过去的技术只能简单地处理一些颜色、纹理的合成,对于特别抽象的艺术风格,必须要有针对性,需一种一种风格进行区别地处理。然而最近随着深度学习的发展,已经有一些利用神经网络来处理风格迁移的方法了。这些方法更具普适性、能自如地处理很难的风格转化。目前这些风格迁移的方法主要可以分为两类:
1. 基于优化(optimization)的方法,如Gatys[4],Li[6],这些方法能够产生非常不错的风格迁移效果,但需要数分钟的优化迭代才能产生最终的结果。
2. 前馈神经网络(feed-forward network)的方法,如Johnson[5],Ulyanov[7]。这些方法针对不同的风格图片训练了不同的前馈神经网络 ( feed-forward network)。随之原来耗时的优化过程被一次网络的前传(forward)所替代,基本可以实现实时的风格迁移。但这些方法有两个非常重要的缺陷:一是对于不同的风格图片,都需要训练一个单独的网络模型, 不仅耗时而且需要大量的存储空间;二是这些训练好的神经网络像一个黑盒子(black-box ) 一样,无从得知它真正有效的工作原理。
就在最近,微软亚洲研究院视觉计算组的研究员和实习生们陆续地发表了三篇关于艺术风格化的论文。让我们一起来探究其中的新技术和新成果!
1. StyleBank: 语义内容和艺术风格化可分离学习的神经网络
针对多风格迁移的问题,微软亚洲研究院的研究员们提出了一种新的风格迁移算法,并发表在了CVPR 2017。该算法对图像的风格提供了一种显式的表达“风格基元” ( StyleBank ),并与传统的纹理合成技术中的纹理基元(texton ) 联系起来,通过对不同风格的图片使用不同的“风格基元”,再用简单的自解码器模型 ( auto-encoder ) 便可以实现不同风格的迁移。而且在训练的过程中,显式地对图像的内容和风格进行分离 ( decouple ) ,让图像自解码器与风格基元之间的学习相互独立,由此给风格迁移的实际用途带来了诸多好处:可以做到快速训练 (将一种艺术风格效果的训练时间从4-5小时减少到10分钟以内),快速调整想要的效果图,从而实现多种风格间的融合;还可以做到对图片的某一部分进行风格提取,再融合到目标图片上。
这个想法源于经典的纹理合成算法。纹理合成可以等效为纹理基元和位置脉冲函数(Delta function)之间的卷积。与之类似,我们也希望能够将基于神经网络的风格迁移等效为图片特征响应与特定风格基元的卷积, 只不过这个卷积是定义在高维的特征空间而不是原始的图像空间,不同的风格会对应不同的风格基元。
虽然不同的风格被表示为不同的风格基元,但却共享相同的自编码器。在训练过程中,我们可以把上面的网络分成两个独立的分支(如下图): 自编码器分支(Auto-encoder branch,实线)和风格化分支(Stylizing branch,虚线), 通过切换学习,从而对图像的内容和风格的进行分离。
风格基元(StyleBank)的神经网络结构图
为了更好的理解风格基元的工作原理,我们对训练学到的风格基元进行了可视化, 实际上它表达了风格图片中不同的纹理单元,而这与经典的纹理合成一脉相承。
风格基元(StyleBank)的优势:
与以往的前馈神经网络方法相比,可分离的表达和学习有诸多优势,如下表所示。
多风格协同训练 :与以往单风格模型相比(需要4小时训练一种风格),风格基元支持一个网络多风格协同训练,以50个风格为例,平均每个风格训练耗时16分钟,而试验中曾尝试过175个风格一起协同训练同一个网络。这样额外带来的好处就是可以大幅降低模型的大小,比如一个风格只需要0.56MB,而以往的模型如Johnson[5]则需要6.4MB。
快速增量训练: 对于新的风格图片或者超参配置,以前的单风格模型方法需要耗时几个小时重新训练一个模型。而在我们的方法中,由于对图片的内容和风格进行了分离,风格基元(StyleBank)与自编码器(Auto-encoder)的学习相互独立,因此,我们可以固定已经训练好的自编码器和已经训练好的风格的“风格基元”层,只训练与新的风格相关的风格基元层,而这个过程一般只需要8~10分钟。
左图展示增量学习和重新学习的效果差别,中间和右图分别展示了增量学习不同风格权重以及基于不同风格层设定的Loss的效果
快速风格切换:在实际应用场景(如APP滤镜)中,对于同一张图片,用户经常需要在不同风格(滤镜)间进行切换。对于我们的方法, 由于不同风格共享相同的自解码器,所以只需要对输入图片进行一次编码,这在不做其他优化的情况下,就节省了将近一半的计算量。
多风格线性融合:通过对不同风格的风格基元(StyleBank)进行组合,可以轻松实现不同风格的融合和过渡切换。
区域性风格融合:同样对不同的图片区域运用不同的风格基元,还可以对不同的图片区域渲染不同的风格效果。
2. Video Style Transfer: 实时在线处理时空一致的视频风格转换
在直播、短视频越来越流行的当下,对视频进行在线的风格转换也有着巨大的商业应用。但是如果不考虑视频的时序性,直接逐帧进行风格转换,那么转换后的视频通常都会有抖动和不连续的问题,而这是由单张图片风格转换本身的不稳定性所造成的。
为了解决该问题,微软亚洲研究院的研究员们提出了第一个端到端 ( end-to-end ) 的在线视频风格迁移模型 ( Coherent Online Video Style Transfer )。该模型通过考虑和传播短时(short-term)的时序信息来保证风格化视频的连续性和稳定性。此外,该模型已被证明可以应用到现有的单风格和多风格迁移网络上,并取得了相对于优化方法接近500倍的加速。
对于相邻帧的连续性,一个简单而自然的想法就是:对于可追踪的区域(如下图第一行红框所示),我们用前一帧对应区域的特征以保证连续性,而对于遮挡区域,即不可追踪(如下图第一行绿框所示),则用当前帧的特征。实际上,这可以分为传播(propagation)和合成(composition)两个子任务。与在原始图像空间相比,特征空间对噪声等有更好的鲁棒性,因此我们选择在特征空间完成这两个子任务。
具体来说,我们需要先估计两帧之间特征的相对运动,即特征运动场(Wt),来传播前一帧的特征(Ft-1)到当前帧(Ft’), 这里运用了已有的deep feature flow算法 [8]。然后我们还需要检测两帧之间遮挡区域,即M,来帮助有效的特征合成。最后得到既连续又没有重影的风格化结果(Ot)。
另外,我们通过在时序上对短时的连续性(short-term consistency)进行传播,从而来保证长时间的连续性(long-term consistency)。这一过程可以用如下原理框图进行表示,其中, 为t时刻合成后的特征。
具体的两帧之间特征传播合成的网络结构Net1为:
我们在不同特征空间以及图像空间都进行了测试,当传播和合成发生在靠近网络的输入层时,得到的结果会有很强的闪烁效果,不连续。当发生靠近网络的输出层时,则得到的结果会有重影效果,不清晰。我们发现只有在最深层的特征空间(网络的最中间层)能够在结果的稳定性和清晰度上取得比较好的平衡。
另一个有意思的事情是,已经训练好的特征相对运动和遮挡区域的子网络是否可以直接运用到一个新的风格中去?对此我们称为可迁移性。而它对不同的前馈神经网络风格化方法(例如Johnson[5]和StyleBank[1]),表现却不尽相同。
下表给出了,前馈神经网络风格化网络通过风格A训练得到,而特征相对运动和遮挡区域的子网络通过风格B训练得到,(注:multiple表示多种风格一起用来训练但不包括A),最后我们衡量风格化的结果是否具有连续性(estab)。通过分别对比第一二行,或第三四行,我们可以看到, 风格基元(StyleBank)网络[1]具有比Johnson[5]更稳定连续的结果,连续性不因B的不同而改变。这也说明风格基元这种可分离学习的网络具有更好的可迁移性。
3. Deep Image Analogy: 基于语义级别的跨风格图像匹配与合成
不同于目前用神经网络处理艺术风格的方法,这篇论文研究的是更为精确和精致的视觉特征转化。图像的视觉特征包含图像中的颜色、纹理、亮度、线条等等。不同图像之间视觉特征的转换往往带来新奇、有趣的体验,比如实现两种风格之间的相互转换(见下图第一行),真实照片和艺术画之间的相互转换(见下图第二行),两张不同照片之间色彩纹理的相互转换(见下图第三行)。
针对图像视觉特征的迁移问题,微软亚洲研究院的研究员们提出了一种新的算法(Deep Image Analogy [1])。该算法结合图像对偶技术(Image Analogy)和深度神经网络(DNN),为内容上相关但视觉风格迥异的两张图像之间建立起像素级的对应关系,从而实现精确地视觉特征迁移。该算法支持照片的艺术风格化,古今中外不同艺术风格的互换,素描或者CG图的真实化,照片的颜色转换等等应用。该文章出现在arXiv的第一天,就因其出色的结果,在reddit的machine learning版块引发广泛地热议,并成为该版历史上No.1点赞最高的话题, 代码和演示程序已经可供下载 :https://github.com/msracver/Deep-Image-Analogy。
基于迭代优化(optimization)的方法(如Gatys[4],Li[6])和前馈神经网络 (feed-forward network)的方法(如Johnson[5], 以及StyleBank[1]),都是基于拟合目标图像整体的特征,而忽视了图像间像素的对应关系。这就导致最后的迁移结果在整体上吻合目标风格但局部会有错误,例如下图中脸部结构被参考图像中的背景纹理所破坏。而我们的方法因寻求建立源图像和参考图像之间的对应关系,所以可以精确地迁移对应区域的视觉特征。
本论文的初始想法如下图所示。给定原图像A和目标图像,由于它们在视觉风格上的差异性,所以直接建立二者之间的像素对应非常困难。因此,我们引入了图像对偶的概念。假设存在图像和,且存在这样的对偶关系:。那么,该对偶关系隐含两条假设,1)和,同理和是完全对齐的;2)和属于同一视觉风格而和属于另一视觉风格。
有了这两个假设, 的跨风格映射关系则可以转化为一个相同位置的映射和一个统一风格内的映射,如下图所示。相似的我们可以通过,转换的映射。利用和建立起桥梁后,和之间的映射问题就变得可解,然而和却未知。鉴于此,我们又利用在图像识别任务上训练的卷积神经网络,逐步恢复出和,在恢复的同时也逐步优化和之间的映射。
神经网络可以恢复和的原因在于它具有分离(decouple)图像的内容和视觉细节的能力。例如在VGG网络中,输入图像被逐步过滤(filter),使得越上层的特征越代表图像的内容(语义结构等),而越下层的特征则越代表视觉细节(纹理颜色等)。因此我们可以使得通过融合的内容结构与对应位置的的视觉细节重构;同理可以重构。
Deep Image Analogy的工作框架图
输入图像和首先送入VGG网络得到每一层的特征图。在最高层,我们假设未知的A’的特征等于A的特征,未知的B的特征等于B’的特征。这种假设基于VGG的特性:最高层的特征只包含语义信息而与视觉特征相关性小。
有了,,,四张特征图,我们再通过Patchmatch算法建立起该层和这两个方向的对应关系:和。通过上层采样可作为下层的初始值,同时指导采样中的值和融合得到未知图A’在层的特征估计。同理可得到另一未知图在层的特征估计。有了和,层的对应关系和就可得到更新。在每一层重复此算法,输入图像和的对应关系便逐步细化,到底层,我们便得到了和之间每一个像素的对应关系。利用此关系拷贝对方对应位置的视觉特征,便可实现精确地风格转化。
虽然图像匹配算法在视觉和图形学里是非常经典的问题,但目前很多非常流行的匹配算法,例如SIFT flow、 Patchmatch、 Deepflow等,都是基于颜色、梯度、纹理等低级特征 (low-level feature),没有办法建立起风格(包括颜色、纹理、线条等)迥异的两张图像之间的对应关系,如下图所示。鉴于此,微软亚洲研究院的研究员们利用图像对偶技术(Image Analogy)的框架和深度神经网络(DNN)提取的高层特征(high-level feature), 则能完全建立图像间的语义对应(semantic matching)。
Deep Image Analogy的丰富应用:
图像的艺术风格化:该技术的应用将可以使用户输入的图片自动地转化为给定的艺术风格,让艺术大师为你定制作画。
注:每一组中右边图像为输入照片,上方两张为参考艺术画,下方两张为我们生成的结果。
艺术品的真实化:该技术还可以将各种绘画,素描或者CG图转为真实的照片。
艺术风格互换:则可以实现不同艺术风格间的互换。
照片颜色转换:还可以实现不同照片之间区域颜色的互换。
然而,这个方法也还是有一些失败的例子,最典型的问题就是原图一些元素在参考图中找不到真正语义的对应。比如下图,参考图中并未找到头发,所以生成结果就会变得比较诡异。
还有另一种情况就是,现在的风格转换还不能处理几何形变上的转换,如下图。
如今,人工智能正在逐渐展现出自己的“创造力”,而这将给我们的生活带来无限的新奇和乐趣。虽然短时间内人工智能还不可能像人类那样真正具有创造力,但是却可以一步步辅助人类更好地创造更多的艺术作品。而科研人员们对深度学习的探索也还远远不够,我们还需要更为深入的研究,让深度学习的工作可以被解释,这也将是我们下一阶段需要继续努力的方向。
三篇关于艺术风格化的论文 [1]、[2]、[3]由来自微软研究院的研究员:袁路、廖菁、华刚、Sing Bing Kang和中国科技大学的实习生陈冬冬以及上海交通大学的实习生姚远共同发表。
参考文献
[1] Dongdong Chen, Lu Yuan, Jing Liao, Nenghai Yu, and Gang Hua. “StyleBank: An Explicit Representation for Neural Image Style Transfer”, CVPR 2017
[2] Dongdong Chen, Jing Liao, Lu Yuan, Nenghai Yu, and Gang Hua. “Coherent Online Video Style Transfer”, arXiv: 1703.09211
[3] Jing Liao, Yuan Yao, Lu Yuan, Gang Hua, and Sing Bing Kang. “Visual Attribute Transfer through Deep Image Analogy”, SIGGRAPH 2017
[4] Leon A. Gatys, Alexander S. Ecker, and Matthias Bethge. “A Neural Algorithm of Artistic Style”, CVPR 2016
[5] Justin Johnson, Alexandre Alahi, and Li Fei-Fei. “Perceptual losses for real-time style transfer and super-resolution”, ECCV 2016
[6] Chuan Li, and Michael Wand. “Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis”, CVPR 2016
[7] Ulyanov, Dmitry, Vadim Lebedev, Andrea Vedaldi, and Victor Lempitsky. “Texture Networks: Feed-forward Synthesis of Textures and Stylized Images” arXiv: 1603.03417
[8] Xizhou Zhu, Yuwen Xiong, Jifeng Dai, Lu Yuan, Yichen Wei. “Deep Feature Flow for Video Recognition”, CVPR 2017