细心的同学会发现 Intellij IDEA 每次发版本的时候都会有不同的启动界面背景,都很比较抽象的艺术图像。
2020.3的启动界面背景❝JetBrains 的其它产品也有自己独特的设计。
但是这背后是怎么实现的、有什么寓意却很少有人知道。今天让胖哥来带你解开这个答案。
编码的艺术
编码是一门艺术。说到这里你会很容易想到这肯定是利用编程实现的。是的,这里的图像生成器技术用了到机器学习中的神经网络技术。这些生成的图像本质上是前馈神经网络映射函数描绘的!基于传递给网络的确切数据,加上一些预设的生成算法(遗传算法),让这些图片看上去很“顺眼”。目前 JetBrains 提供了可视生成器,你可以根据自己的喜好来生成桌面背景。
神经网络图片生成体验
只需访问Desktop Art 页面或直接转到code2art.jetbrains.com,就可以自己设计上述风格的桌面。打开后在在下拉列表中选择IntelliJ IDEA或MPS 之类的产品后,只需单击Prescribed按钮,它将以该产品的所有动画效果创建初始屏幕。
选择Mixer,稍等片刻我们可以看到 9 张不同的图像,每个图像都是由神经网络分别生成的。你可以在其中混合随意的想法,调整色彩,选取目标,并根据你自己的设定创作出反映内在自我的艺术色彩。
如果这 9 张图像都不符合您的口味,你可以点击Regenerate获取 9 张新的新图像,这些图像在某种程度上都与以前的图像有所不同。如果您已经喜欢某些现有图像,你可以点击选中它们,然后按Crossbreed按钮将选中的图像混合生成一些新图像,重复多次,直到找到理想的图像。通过其它一些选项,你可以导出静态图片、动图甚至 MP4 视频。
小试牛刀技术细节
从技术上讲,该图片生成器的服务器端分为几个部分:
- 使用TensorFlow构建的基于神经网络的图像生成引擎。
- 视频渲染引擎,可从图像生成视频。
- 场景存储服务。
- 任务队列,用于在服务器组件之间分配 CPU 和 GPU 密集型计算任务。
- 混合器 Mixer–通过遗传算法演化生成图像的工具。
- 在Mixer 模式和图像生成引擎之上还建立了另一个神经网络,该神经网络可以汇总用户的偏好来预测哪些图像更可能是美丽的,这也是神经网络能够越来越了解人类喜好的根本。
有兴趣的可以深入了解一下,代码是开源的。
有时候不得不感叹一下一些伟大的产品的设计思维都是具有创造性和艺术性的,什么时候我们中国的程序员能有这种外部环境,没有 KPI,没有 996,什么时候我们才能做出伟大的产品。