人工智能如何用于设计 UI 界面?

人工智能 神经网络 监督学习
2021-11-13 12:21:01

我对人工智能很陌生。我在某处读到 AI 可用于创建 GUI UI/UX 设计。这让我着迷了很长时间。但是,由于我在这里很新,我不知道它是怎么发生的。

创建 UI 设计的通常步骤是:

  • 创建网格。
  • 绘制按钮/文本/框/边框/样式。
  • 选择配色方案。
  • 遵循 CRAP 原则(对比、重复、对齐、接近)

我想知道人工智能算法如何帮助解决这个问题。我知道一点神经网络,我能想到的最接近的是以下两种方法(监督学习)。

  1. 手动绘制网格并手动训练软件以学习正确的样式,直到它能够提供现代结果并设计自己的设计语言。

  2. 从互联网上列出几个网站(例如),让软件学习和探索源代码和 CSS 样式表,并手动学习和编程神经元,直到它能够制作自己独特的样式。

2个回答

布局问题适用于基于规则的方法,用于在 Rogue 或自定义主页布局中生成关卡,您可以编码一些约束并搜索剩余空间。颜色问题也适用于基于规则的方法,颜色是 3 维空间(如果包括不透明度,则为 4)。可以通过在距起点适当距离处获取颜色来创建调色板。

由于对该域进行了很好的分析,因此存在已知的启发式和可编码规则。通过使用这些来生成设计,您可能会获得更大的成功和更快的速度。

只是为了给出一个想法,这些天被视为基于规则的方法没有得到太多讨论,以下是有效的 Prolog,使用 查询phrase(webpage, Design).,这将快速生成类似的设计:[brand, header_nav, searchbox, sidebar_nav, form_content, sidebar_list]. 这只是一个超级快速的演示,您可能需要树而不是列表,并且您还需要从中派生 HTML 和 CSS,这在 Prolog 中很简单。

webpage --> body.
webpage --> header, body.
webpage --> header, body, footer.

header --> [brand], header_content.
header_content --> [header_nav].
header_content --> [header_nav], [searchbox].

body --> content.
body --> sidebar(_), content.
body --> { dif(A, B) }, sidebar(A), content, sidebar(B).
body --> content, sidebar(_).

content --> [form_content].
content --> [article_content].
content --> [list_content].

sidebar(list) --> [sidebar_list].
sidebar(nav) --> [sidebar_nav].
sidebar(ads) --> [sidebar_ads].

footer --> [notification].

如果您看到用例,在较高级别上它似乎会生成一些视觉输出 - 设计,但在较低级别上看到时,此设计是一些代码的输出。

我们可以做到的一种方法是训练一个学习生成代码的神经网络,该代码可以被视为某种形式的有组织的文本。所以现在可以看作是一个文本生成问题,你可以找到很多文献。

pix2code是一个使用这个想法甚至扩展它的实现。在本文中,作者将其提升到了另一个层次,他们还使用了可视化部分——GUI,并构建了一个将代码和 GUI 作为输入并学习生成代码的架构。因此,当给出一个简单的 GUI 时,它最终将能够生成代码。

还有一些实现,即使给出了粗略的草图,即使网络也可以生成代码。