一文回顾AI绘画的成长之路:从简笔画到真实人脸生成
【导语】近几年,AI绘画成为大家关注的热点话题,从最初的简笔画,到动漫风格的绘画,再到真实人脸的生成…… AI 画家的飞速成长,似乎标志着一个绘画界新星的冉冉升起。AI 到底是如何学会绘画的?在本文中,营长梳理了 AI 绘画的成长史,带大家一同走近这位新晋画家。
作为计算机视觉的热点探讨问题之一,AI绘画技术在近几年得到了飞速发展,相关模型和应用不断引起人们的热烈讨论。如此前营长为大家报道的:吸猫人群的福音:猫脸生成器,卖出 43.2 万美元的AI画作,变身神笔马良神器,使用重构网络拯救“老婆”画作,AI学会图像风格迁移大法、英伟达新型GAN,可使豹子秒变沙皮狗等等。
几年前,AI 还只会像小孩子一样画出一些简单的简笔画,而如今,AI 已经能够画出逼真的人脸,甚至让人类都难以分辨真假。那么,这位绘画界的新星到底是如何飞速成长起来的?AI 都学会了哪些绘画方法?今天,营长就带大家一同走近这个神秘的画家,探秘 AI 绘画的成长之路。
AI 绘画的出现
Google 上关于“AI painting”一词的检索热度变化(2004-2019)
AI 绘画实际上并不是近几年才出现的新词语。从 Google 趋势提供的搜索指数来看,2004 年至 2007 年期间,“AI painting”就已经成为检索热词;2008年之后,检索热度开始下降并进入平缓期;直到 2017 年 5 月, AI 绘画再一次成为大众的关注热点。
从广义上来讲,AI 绘画早在上个世纪就已经出现了。1973年,Harold Cohen 就已经开始尝试和电脑程序 “AARON” 携手进行绘画创作。与当下 AI 绘画不同之处在于,ARRON 使用机械手臂在画布上进行绘画,而非数字绘图。进入 20 世纪 80 年代,ARRON 学会了对三维空间物体的绘画表现方法;90 年代,它学会了使用多种颜色进行绘画。ARRON 已经绘制出了很多不同的作品,直到今天,它仍在进行创作。
图:ARRON 在 1992 年创作的一副绘画作品
参考链接:https://newatlas.com/creative-ai-algorithmic-art-painting-fool-aaron/36106/
从 python 语言逐渐流行开始,一个名为 “turtle” 的绘图库逐渐进入人们的视线。turtle 绘图库的概念最初来自 Wally Feurzig 和 Seymour Papert 于 1966 年所创造的 Logo 编程语言,通过编写程序,这个库也能够帮助我们进行一些图像的绘画。
我们现在所说的 AI 绘画,实际更多指代的是基于机器学习模型进行自动数字绘图的计算机程序。这类绘画方式的发展要稍晚一些。2012 年,吴恩达和 Jeff Dean 使用 Google Brain 的 1.6 万个 CPU 训练了一个大型神经网络,用于生成猫脸图片。在当时的训练中,他们使用了 1000 万个来自 Yotube 视频中的猫脸图片,模型训练用了整整三天。最终得到的模型,也只能生成一个非常模糊的猫脸。
与现在的模型相比,这个模型的训练几乎毫无效率可言。但对于计算机视觉领域而言,这次尝试开启了一个新的研究方向,也就是我们目前所讨论的 AI 绘画。
AI 学习绘画的挑战
对于机器学习模型而言,让 AI 学会绘画的过程就是一个模型的构建和参数训练过程。在模型训练中,每一副图画都使用一个大小为 mxn 的像素点矩阵表示,对于彩色图画,每个像素点都由 RGB(red、green、blue)三个颜色通道组成。要让计算机学会绘画,就相当于训练一个可以逐个产生像素的机器学习模型。
这听起来或许很简单,但实际上,这一过程并没有我们想象得那么容易。在一篇论文《Learning to Paint with Model-based Deep Reinforcement Learning》中,提到了训练 AI 学习绘画的三个挑战,包括:
- 模型需要训练的参数集合非常庞大。绘画中的每一笔都涉及位置、形状、颜色等多个方面的参数确定,对于机器学习模型来说,这将产生一个非常庞大的参数集合;
- 笔画之间关系的确定,会导致更加复杂的计算。一副纹理丰富自然的画作往往由很多笔画完成。如何对笔画进行组合、确定笔画间的覆盖关系,将是一个很重要的问题;
- 难以将 AI 接入一个现有的绘画软件。画作的渲染等操作将导致非常高昂的数据获取代价。
另外,如果希望 AI 除了模仿已有画作的内容和风格以外,还能够自创风格,模型训练的难度会进一步加大。一个原因在于,“创造”是一个非常抽象的概念,使用模型来表达比较困难;另外,训练数据的内容和风格终究是有限的。在上文提到的 ARRON 经过40余年的学习,仍没能够跳脱出其最初使用的色彩艳丽的抽象派风格,而这正是 Harold Cohen 本人的绘画风格。
《Learning to Paint with Model-based Deep Reinforcement Learning》
论文地址:https://arxiv.org/abs/1903.04411
AI 绘画的初步发展:学习图片生成方式,尝试简笔画
在吴恩达的猫脸生成模型之后,学界对 AI 绘画进行了很多探索。最初的图像生成模型为Ian J. Goodfellow 在 2014 年提出的对抗生成网络(Generative Adverserial Network, GAN),这一模型也成为了很多 AI 绘图模型的基础。 GAN 包括两个部分:生成器(generator)和判别器(discriminator),其中生成器用于图片的生成,判别器来判断图片为真或假。这种方法对图像生成领域做出了极大贡献。
《Generative Adverserial Nets》
论文地址:http://www.cs.cmu.edu/~jeanoh/16-785/papers/goodfellow-nips2014-gans.pdf
但是使用 GAN 生成的图片存在两个比较明显的问题。一是缺少控制能力。如果向 GAN 中输入一个随机噪声,就会产生一副随机图像,而对于 AI 绘画而言,图像的产生过程应当是可控的。二是分辨率和质量较低。使用基础的 GAN 网络生成的很多图像的分辨率较低。
针对于低分辨率的问题,2016 年 9 月,Christian Ledig 等人提出了 SRGAN 模型,该模型首次使用 GAN 网络的架构生成了高分辨率的真实图片。通过将 GAN 的损失函数替换为感知损失和对抗损失,模型取得了较好的生成效果。
《Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network》
论文地址:https://arxiv.org/abs/1609.04802
2016 年 12 月,Ian Goodfellow 在 NIPS 上介绍了一个使用 GAN 能够产生动物图片的模型。这些图片的风格看起来比较逼真,但是由于图片结构生成的不连续问题,有时会产生一些不合常理的内容,如:长了三只眼睛的猫,或者有好几个头的狗。
NIPS 2016 Tutoral
论文地址:https://arxiv.org/abs/1701.00160
图:Ian Goodfellow 使用 GAN 模型生成的图片,看起来有点惊悚
上述研究在学界引起了广泛讨论,但大众真正开始了解 AI 绘画,要推迟到 2017 年 4 月 Google 提出 Sketch-RNN 模型的时候。Sketch-RNN 基于 Seq2Seq 模型构建,并使用了变分推理方法,模型的训练使用了一个包含几百个种类的上千张手绘简笔画图片。通过训练,模型能够绘制一些简笔画。Google 在论文《A Neural Representation of Sketch Drawings》中对这一模型进行了详细介绍,并在之后开源了相关代码。
Sketch-RNN 模型得到了人们的广泛关注,一些开发者还基于该模型开发了一些有趣的应用。其中一个在线应用叫做 “Draw Together with a Neural Network” ,人们可以用鼠标随意画一个图形,并选择一个希望生成的图形类别,该网站便能以多种方式自动帮你补充完整个图形。例如,选择绘画类别为 “flower”,效果如下面的动图所示:
图: “Draw Together with a Neural Network” 的一个使用示例
《A Neural Representation of Sketch Drawings》
论文地址:https://arxiv.org/abs/1704.03477
“Draw Together with a Neural Network”
项目地址:https://magenta.tensorflow.org/sketch-rnn-demo
此后,研究人员对简笔画的绘制也在不断探究。2018 年的 BMVC (The British Machine Vision Conference,英国计算机视觉会议)上,Tao Zhou 等人提交了一篇名为《Learning to Doodle with Deep Q-Networks and Demonstrated Strokes》的论文,该论文基于强化学习(Reinforcement Learning, RL)中的 Q-Learning 方法构建了一个机器学习模型,模型对于涂鸦类和水彩类绘画都能产生较好的输出。
《Learning to Doodle with Deep Q-Networks and Demonstrated Strokes》
论文地址:https://arxiv.org/abs/1810.05977
AI 绘画的进一步发展:学习更加复杂的绘画方法
在 Sketch-RNN 模型之后,大量的 AI 绘画模型不断涌现。
2017 年 7 月, Facebook 在《CAN: Creative Adversarial Networks, Generating "Art" by Learning About Styles and Deviating from Style Norms》中提出了创造性对抗网络(Creative Adversarial Networks, CAN)模型,尝试使 AI 绘制风格和图片类型更加多样的图画。
与传统的 GAN 结构一样, CAN 也包含生成器和鉴别器两个部分。不同之处在于, CAN 在 GAN 的损失函数的基础上加入了绘画的时间信息,因此在进行学习后,可以让模型产生与某一时间阶段风格不同的画作。在人工评测中,人们认为 CAN 模型的绘画和人类艺术家绘画的创意性不相上下。尽管创意性是一个比较主观的评价指标,这仍是 AI 学习绘画的重要一步。
图:基于 CAN 模型生成的绘画
《CAN: Creative Adversarial Networks, Generating "Art" by Learning About Styles and Deviating from Style Norms》
论文地址:https://arxiv.org/abs/1706.07068
2018 年 4 月, DeepMind 提出了一个名为 “SPIRAL” 的智能体,该智能体使用的模型基于强化对抗学习(Reinforced Adversarial Learning, RAL)方法构建,并能够与计算机绘图程序协作进行绘画。该模型的基本架构类似于强化学习,但这一模型使用了一个判别器来决定基于模型输出的奖励,当判别器越难判断输出图片的绘制者是人还是计算机,基于模型的奖励越高。不同于以往的图片生成模型,论文中的模型可以使用未标注的图片集进行训练,极大降低了获取数据的成本,并提升了模型对图片细节的学习效果。
《Synthesizing Programs for Images using Reinforced Adversarial Learning》
论文地址:https://arxiv.org/abs/1804.01118
2019 年 3 月,旷视科技训练了一个名为“LearningToPaint” 的绘画 AI ,其使用的基准算法为深度确定策略梯度算法(DDPG)。该算法基于策略梯度算法和值函数构建,并使用了演员-评论家(actor-critic)框架。为加快模型训练速度,他们将这一方法接入到了强化学习模型中,用以辅助模型训练。相较于之前的模型,该方法能够适用于更加广泛的数据集,只需修改模型绘画时的最大笔画数即可。
《Learning to Paint with Model-based Deep Reinforcement Learning》
论文地址:https://arxiv.org/abs/1903.04411
尽管 AI 绘画已经得到了很多成长,在未来的研究中,如何使模型更具创造性、如何提高图片质量效果、如何发掘更多有趣有价值的应用,还是留待讨论的问题。
总结
在上文中,我们简要回顾了 AI 绘画的发展史,简单总结如下:
- AI 绘画概念的提出:广义上的 AI 绘画并不是一个新的名词,早在上个世纪80年代就已经出现了相关讨论,在21世纪初还曾是一个热点关注问题。从狭义上来讲, AI 绘画指的是基于机器学习模型进行自动数字绘图的绘画方式。自2012年吴恩达和 Jeff Dean 的猫脸生成模型开始, AI 绘画得到了迅速发展。
- AI 绘画存在的挑战:包括参数量庞大、计算复杂、和现有绘图工具协作困难、难以生成具有创造性的图片。
- AI 绘画的发展历程:在发展最初,主要使用2014年提出的生成对抗网络模型(GAN)进行图片生成。在此之后,很多研究对 AI 绘画模型都进行了探索,比较具有代表性的模型和应用包括 Google 提出的 Sketch-RNN 模型, Facebook 提出的 CAN 模型, DeepMind 搭建的 SPIRAL 智能体等。
最近几年, AI 绘画的成长速度是惊人的。未来,这位新晋画家还会为我们带来怎样的惊喜?让我们拭目以待。