分类:创新设计

Noise in Design | 设计中的噪音

作者: Trousers pocket

原作者:Paul Soulos

风格转换(Style transfer)是一种机器学习技术,它可以利用一张图像中的美学风格(Aesthetic Style)与另一张图像的内容(Content),生成新的图像。风格转换可以创造出迷人的图像,不过在我看来,它最有魅力的部分是实现转换的算法(Algorithm)。在风格化图像的背后,往往潜藏着设计过程类推(Analogy),以及设计师使用噪音制作信号(Signals)的方法。

风格和内容是风格转换的输入源,风格化内容是输出源

风格转换使用三种图像,一种代表内容,一种代表美学风格,第三种内部图像最终成为风格化输出的结果(Stylized Output)。上图将法国印象派画家亨利·德·图卢兹-罗特列克绘制的《Divan Japonais》用作风格源(Style Source),使用我的个人照作为内容。这些图像定义了引导算法的约束(Constraints),而第三种图像则从白噪音(White Noise)转化为最终的作品。

白噪音是风格转换的初始状态

为了转换内部的图像,我使用了一种名为成本函数(Cost Function)的数学函数。成本函数可以捕获两部分的内容:(1)一张图片的全局内容(2)暗示其它图片风格的局部空间信息。如果成本函数拥有非常高的成本,内部图像捕获的效果则次于两张图像的内容和风格。通过迭代,内部图像改变并降低成本价值(Cost Value)。因为没有涵盖所提供图像的内容和风格,白噪音最初的成本非常高,但最终作品的成本价值很低,因为它很好地捕获了两个源图像的风格和内容。

随着成本价值的降低,风格转换的早期阶段演变为噪音最终图像 风格转换的前身是纹理合成(Texture Synthesis)。该技术从一张图像中萃取风格,并使用这一风格生成纹理。它和风格转换类似,但和风格转换相比,纹理合成中不含内容图像,所以你可以把它当做是风格转化(除了初始白噪音也是内容源外),从以下图像中就可看出这一点。

使用初始白噪音作为内容源,进而萃取风格

初始白噪音给纹理提供了结构。当我们使用不同的白噪音进行纹理合成时,可以利用不同的结构生成相近的纹理。比较《Divan Japonais》中两个相似的纹理,注意观察两张图片的右上角部位:

《Divan Japonais 》中生成的两个相似的纹理

两张图像拥有相似的质地(Qualities),因为为了捕获《Divan Japonais 》的风格,它们受到相同成本函数的约束,但是初始白噪音改变了图案的结构。以上两种纹理展示了Infinite Tapestry的两个部分。虽然排列纹理的结构有多种方式,但这两张图像却只有两种可能。

考虑初始白噪音:每个像素有两个值,白色或黑色。对于像素5x5这样非常小的图像,可能就有33,554,432种黑白组合。当图像变大(参考上两张图1920 x1280像素),可能的初始图像(Possible Starting Images)的数量也很快趋向无穷大。我们可以把这些无限的可能性看作是初始空间;这个空间包含着可能存在的每个初始图像。我们也可以将所有可能的最终图像看作是相应的解空间(Solution Space);这个空间包含着每一个最小化成本函数的生成纹理。

风格转换是从初始空间(噪音)中的某个点,移动到解空间(风格化图像)中的某个点的函数。初始空间和解空间是设计的组成部分,而设计过程(使用约束、迭代和进化[Evolution])为管理无限可能性(Infinite Possibilities)提供了有用的框架。

设计师的职责是将问题的理想处理方法与解决方案分离。所以第一步要做的是定义约束,指导设计过程。“要解决什么问题?”“我们可以用哪些材料?”——这些就是塑造初始空间和解空间的约束。同理,以上讨论的成本函数也是指导算法的约束。

尽管约束定义了初始空间和解空间,但迭代的作用是从初始空间移动到解空间。设计师挑选多个初始点,然后通过迭代自己的想法创作原型,直到产品形成。在迭代的过程中,设计师会自问,原型是否满足项目的约束。与设计过程相关的成本函数,并不总在数学层面上被定义。设计师建立的美学和功能价值,被用于比较和判断原型。至于风格转换,迭代是降低成本、将白噪音转化为风格化图像的算法。机器学习算法的每一步过程,都会将当前状态与成本函数中定义的期望约束进行比较,并试图减少其中的差异。

上图所展示的便是迭代的过程,它从初始空间里的单点(Single Point)移动至解空间里的单点。 进化(Evolution)是设计过程的最后部分。当原型被创造、判断和比较后,它们提示设计师想出办法来进化/发展约束。设计过程再次开始,而新的原型通过迭代创建,此时迭代的重点应是导致约束进一步进化的新约束(Fresh Constraints)。用这样的方式,设计师能够通过进化约束找到解空间,从而将可能性降低到可控范围。让我们再次回归风格转换,看一看我们是如何添加进化并找到解空间的。

小型循环生命模拟游戏

生成纹理是单一的解决方法(solution),所以我们希望能够找到所有可能纹理的子空间。与随机生成的新纹理相比,我们想要用先前的约束和解决方法,了解未来的约束和解决方法。白噪音控制输出结构(Structure of the Output)。当我们改变白噪音时,我们也改变了生成纹理的布局。使用结构化的方式进化白噪音后,我们可以开始寻找解空间。元胞自动机(Cellular Automaton)是模拟基础数字环境变化的程序。它将简单的规则编码到模拟器,生成复杂的行为。上图所展示的就是元胞自动机的样本:《生命游戏(Conway’s Game of Life)》。其中,像素(Pixels)代表细胞生物,每个像素按照以下规则生存和死亡:

• 任一活细胞如果周边的活细胞如果不足两个,它就会死亡,原因可用人口不足来解释。

• 任一活细胞如果周边有两个或三个活细胞,它将延续至下一代。

• 任一活细胞如果周边的活细胞超过三个,它也会死亡,原因可用人口过多解释。

• 任一死亡的细胞如果周边有超过三个活细胞,它将复活成为活细胞,原因可用繁殖来解释。

大型生命模拟游戏

我们希望通过进化约束找到解空间。在纹理合成的过程中,白噪音充当内容源,而且我们可以使用《生命游戏》的环境,推动内容约束(Content Constraint)的变化。模拟器的进化推动约束的进化。而模拟器的状态定义了内容约束,迭代产生纹理,进化为下一步骤提供了新的内容约束。用这样的方法,我们可以通过解空间寻找并探索这个Infinite Tapestry。

《Living Tapestry》取自亨利·德·图卢兹-罗特列克的画作《Divan Japonais》

《Living Tapestry》取自挪威印象派画家爱德华·孟克(Edvard Munch,1963-1944年)的画作《呐喊》

《Living Tapestry》取自美国艺术家罗伊·利希滕斯坦(Roy Lichtenstein,1923-1997年)的画作《Bicentennial Print》

《生命游戏》以一种有机而又新奇的方式,让这些Living Tapestry动了起来。我们可以使用多种方式扩展Tapestry的图案。而不同种类、不同规则的元胞自动机生成不同类型的运动状态,我们还可以在其中混合和插入风格。另外,图像使用了谷歌人工智能Magenta提供的预设风格,当这些风格用作Living Tapestry时,不同的风格可以产生不同的效果。 ….

更多细节可移步原文:

http://paulsoulos.com/editorial/2017/07/18/noise-in-design.html