惊不惊喜,用深度学习把设计图自动生成HTML代码!you1you

目前,自动化前端开发的最大阻碍是计算能力。但我们已经可以使用目前的深度学习算法,以及合成训练数据来探索人工智能自动构建前端的方法。在本文中,作者将教神经网络学习基于一张图片和一个设计模板来编写一个HTML和CSS网站。以下是该过程的简要概述:

1)向训练过的神经网络输入一个设计图

2)神经网络将图片转化为HTML标记语言

3)渲染输出

我们将分三步从易到难构建三个不同的模型,首先,我们构建最简单地版本来掌握移动部件。第二个版本HTML专注于自动化所有步骤,并简要解释神经网络层。在最后一个版本Bootstrap中,我们将创建一个模型来思考和探索LSTM层。

代码地址:

所有FloydHubnotebook都在floydhub目录中,本地notebook在local目录中。

本文中的模型构建基于Beltramelli的论文《pix2code:GeneratingCodefromaGraphicalUserInterfaceScreenshot》和JasonBrownlee的图像描述生成教程,并使用Python和Keras完成。

核心逻辑

我们的目标是构建一个神经网络,能够生成与截图对应的HTML/CSS标记语言。

训练神经网络时,你先提供几个截图和对应的HTML代码。网络通过逐个预测所有匹配的HTML标记语言来学习。预测下一个标记语言的标签时,网络接收到截图和之前所有正确的标记。

创建逐词预测的模型是现在最常用的方法,也是本教程使用的方法。

注意:每次预测时,神经网络接收的是同样的截图。也就是说如果网络需要预测20个单词,它就会得到20次同样的设计截图。现在,不用管神经网络的工作原理,只需要专注于神经网络的输入和输出。

我们先来看前面的标记(markup)。假如我们训练神经网络的目的是预测句子「Icancode」。当网络接收「I」时,预测「can」。下一次时,网络接收「Ican」,预测「code」。它接收所有之前单词,但只预测下一个单词。

神经网络根据数据创建特征。神经网络构建特征以连接输入数据和输出数据。它必须创建表征来理解每个截图的内容和它所需要预测的HTML语法,这些都是为预测下一个标记构建知识。把训练好的模型应用到真实世界中和模型训练过程差不多。

我们无需输入正确的HTML标记,网络会接收它目前生成的标记,然后预测下一个标记。预测从「起始标签」(starttag)开始,到「结束标签」(endtag)终止,或者达到最大限制时终止。

HelloWorld版

现在让我们构建HelloWorld版实现。我们将馈送一张带有「HelloWorld!」字样的截屏到神经网络中,并训练它生成对应的标记语言。

首先,神经网络将原型设计转换为一组像素值。且每一个像素点有RGB三个通道,每个通道的值都在0-255之间。

为了以神经网络能理解的方式表征这些标记,我使用了one-hot编码。因此句子「Icancode」可以映射为以下形式。

在上图中,我们的编码包含了开始和结束的标签。这些标签能为神经网络提供开始预测和结束预测的位置信息。以下是这些标签的各种组合以及对应one-hot编码的情况。

我们会使每个单词在每一轮训练中改变位置,因此这允许模型学习序列而不是记忆词的位置。在下图中有四个预测,每一行是一个预测。且左边代表RGB三色通道和之前的词,右边代表预测结果和红色的结束标签。

在HelloWorld版本中,我们使用三个符号「start」、「HelloWorld」和「end」。字符级的模型要求更小的词汇表和受限的神经网络,而单词级的符号在这里可能有更好的性能。

以下是执行预测的代码:

输出

我走过的坑:

在FloydHub上运行代码

FloydHub是一个深度学习训练平台,我自从开始学习深度学习时就对它有所了解,我也常用它训练和管理深度学习试验。我们能安装它并在10分钟内运行第一个模型,它是在云GPU上训练模型最好的选择。若果读者没用过FloydHub,可以花10分钟左右安装并了解。

复制Repo:

在FloydHub云GPU机器上运行Jupyternotebook:

所有的notebook都放在floydbub目录下。一旦我们开始运行模型,那么在floydhub/Helloworld/helloworld.ipynb下可以找到第一个Notebook。更多详情请查看本项目早期的flags。

HTML版本

概览

如果我们将前面的架构扩展为以下右图展示的结构,那么它就能更高效地处理识别与转换过程。

该架构主要有两个部,即编码器与解码器。编码器是我们创建图像特征和前面标记特征(markupfeatures)的部分。特征是网络创建原型设计和标记语言之间联系的构建块。在编码器的末尾,我们将图像特征传递给前面标记的每一个单词。随后解码器将结合原型设计特征和标记特征以创建下一个标签的特征,这一个特征可以通过全连接层预测下一个标签。

设计原型的特征

因为我们需要为每个单词插入一个截屏,这将会成为训练神经网络的瓶颈。因此我们抽取生成标记语言所需要的信息来替代直接使用图像。这些抽取的信息将通过预训练的CNN编码到图像特征中,且我们将使用分类层之前的层级输出以抽取特征。

我们最终得到1536个8*8的特征图,虽然我们很难直观地理解它,但神经网络能够从这些特征中抽取元素的对象和位置。

标记特征

在HelloWorld版本中,我们使用one-hot编码以表征标记。而在该版本中,我们将使用词嵌入表征输入并使用one-hot编码表示输出。我们构建每个句子的方式保持不变,但我们映射每个符号的方式将会变化。one-hot编码将每一个词视为独立的单元,而词嵌入会将输入数据表征为一个实数列表,这些实数表示标记标签之间的关系。

上面词嵌入的维度为8,但一般词嵌入的维度会根据词汇表的大小在50到500间变动。以上每个单词的八个数值就类似于神经网络中的权重,它们倾向于刻画单词之间的联系(Mikolovaltel.,2013)。这就是我们开始部署标记特征(markupfeatures)的方式,而这些神经网络训练的特征会将输入数据和输出数据联系起来。

编码器

我们现在将词嵌入馈送到LSTM中,并期望能返回一系列的标记特征。这些标记特征随后会馈送到一个TimeDistributed密集层,该层级可以视为有多个输入和输出的全连接层。

和嵌入与LSTM层相平行的还有另外一个处理过程,其中图像特征首先会展开成一个向量,然后再馈送到一个全连接层而抽取出高级特征。这些图像特征随后会与标记特征相级联而作为编码器的输出。

如下图所示,现在我们将词嵌入投入到LSTM层中,所有的语句都会用零填充以获得相同的向量长度。

为了混合信号并寻找高级模式,我们运用了一个TimeDistributed密集层以抽取标记特征。TimeDistributed密集层和一般的全连接层非常相似,且它有多个输入与输出。

图像特征

对于另一个平行的过程,我们需要将图像的所有像素值展开成一个向量,因此信息不会被改变,它们只会用来识别。

如上,我们会通过全连接层混合信号并抽取更高级的概念。因为我们并不只是处理一个输入值,因此使用一般的全连接层就行了。

级联图像特征和标记特征

所有的语句都被填充以创建三个标记特征。因为我们已经预处理了图像特征,所以我们能为每一个标记特征添加图像特征。

如上,在复制图像特征到对应的标记特征后,我们得到了新的图像-标记特征(image-markupfeatures),这就是我们馈送到解码器的输入值。

解码器

现在,我们使用图像-标记特征来预测下一个标签。

在下面的案例中,我们使用三个图像-标签特征对来输出下一个标签特征。注意LSTM层不应该返回一个长度等于输入序列的向量,而只需要预测预测一个特征。在我们的案例中,这个特征将预测下一个标签,它包含了最后预测的信息。

最后的预测

密集层会像传统前馈网络那样工作,它将下一个标签特征中的512个值与最后的四个预测连接起来,即我们在词汇表所拥有的四个单词:start、hello、world和end。密集层最后采用的softmax函数会为四个类别产生一个概率分布,例如[0.1,0.1,0.1,0.7]将预测第四个词为下一个标签。

训练不同轮数所生成网站的地址:

Bootstrap版本

我们将使用这一版本为之前未见过的截图生成标记。我们还深入研究它如何构建截图和标记的先验知识。

我们稍微修改一下pix2code论文中的模型,使之预测网络组件的准确率达到97%。

端到端方法

从预训练模型中提取特征在图像描述生成模型中效果很好。但是几次实验后,我发现pix2code的端到端方法效果更好。在我们的模型中,我们用轻量级卷积神经网络替换预训练图像特征。我们不使用最大池化来增加信息密度,而是增加步幅。这可以保持前端元素的位置和颜色。

LSTM适合时序数据的输入,它是一种适合顺序信息的神经网络。模型展开图示如下,对于每个循环步,你需要保持同样的权重。

理解LSTM层级中的单元

每一层LSTM单元的总数决定了它记忆的能力,同样也对应于每一个输出特征的维度大小。LSTM层级中的每一个单元将学习如何追踪句法的不同方面。以下是一个LSTM单元追踪标签行信息的可视化,它是我们用来训练bootstrap模型的简单标记语言。

测试准确率

找到一种测量准确率的优秀方法非常棘手。比如一个词一个词地对比,如果你的预测中有一个词不对照,准确率可能就是0。如果你把百分百对照的单词移除一个,最终的准确率可能是99/100。

我使用的是BLEU分值,它在机器翻译和图像描述模型实践上都是最好的。它把句子分解成4个n-gram,从1-4个单词的序列。在下面的预测中,「cat」应该是「code」。

为了得到最终的分值,每个的分值需要乘以25%,(4/5)×0.25+(2/4)×0.25+(1/3)×0.25+(0/2)×0.25=0.2+0.125+0.083+0=0.408。然后用总和乘以句子长度的惩罚函数。因为在我们的示例中,长度是正确的,所以它就直接是我们的最终得分。

你可以增加n-gram的数量,4个n-gram的模型是最为对应人类翻译的。我建议你阅读下面的代码:

样本输出的链接:

下一步

前端开发是深度学习应用的理想空间。数据容易生成,并且当前深度学习算法可以映射绝大部分逻辑。一个最让人激动的领域是注意力机制在LSTM上的应用。这不仅会提升精确度,还可以使我们可视化CNN在生成标记时所聚焦的地方。注意力同样是标记、可定义模板、脚本和最终端之间通信的关键。注意力层要追踪变量,使网络可以在编程语言之间保持通信。

THE END
1.推荐自动生成UI设计的AI软件,只用30秒即可!用户只需通过简单的手绘图、文字描述或者图片,就能够自动生成相应的网页以及应用的HTML 和 CSS代码。这款工具通过其用户友好的界面和强大的 AI 功能,显著提升了前端开发的效率与代码的准确性,让设计师和开发者能够将更多的精力投入到创意和设计的深化上。https://js.design/special/article/auto-generated-page-ui-design.html
2.ai生成封面图封面图片在线智能生成创客贴ai,在线智能封面图片生成神器,视频封面/公众号封面/小红书封面等等皆可自动设计,输入关键词描述,ai智能制作封面图片。https://www.chuangkit.com/adlp2/277.html
3.一键生成设计素材网站图片免费下载一键生成包装设计图纸 一键生成包装设计图片 ai可以一键生成房子设计图吗 一键生成房屋设计图ai工具 ai一键生成店铺设计图 ai一键生成玉雕设计图app ai全教学一键生成设计图 ai一键生成产品设计图 ai一键生成房屋设计图 免费ai一键生成设计图 ai一键生成设计图 ai一键生成logo门头设计 ai免费logo设计一键生成 ai设计logohttps://www.zcool.com.cn/tag/ZMjU0OTg5Ng==.html
4.AIGC绘画设计——6个可以直接使用的AI绘画工具,可生成海报Midjourney是基于diffusion的AI图画艺术生成器。生成图片不局限于二次元人物,能够生成照片级精细的图.效果是所长用过的最惊艳AI图片生成器,也是最知名的,之所以放在这里是因为,如果不放它,这个AI生成图片的介绍将逊色很多。史上最强文本生成图像模型 2、Microsoft Designer https://blog.csdn.net/m0_64365896/article/details/144416858
5.高清美女写真一键生成,揭秘AI绘图工具的魅力与攻略!那么,有什么方法可以简单生成如此精美的图像呢?如果你也是个追求美感的小伙伴,或许你会对AI绘图工具产生浓厚的兴趣。今天,我就来和大家聊聊如何使用这些AI工具,轻松生成高清美女照片,让你的社交账号瞬间耀眼起来。通过这篇文章,你将了解到市场上几款热门的AI生成美女写真工具的特点与使用方法。https://m.sohu.com/a/837533654_122118477
6.自动生成设计图博客文章:自动生成设计图 自动生成设计图是一种方便快捷的工具,可以帮助设计师节省大量时间,并提高工作效率。随着设计行业的不断发展,越来越多的设计师开始使用自动生成设计图工具来辅助自己的工作。本文将介绍自动生成设计图的基本概念、优势、使用方法以及注意事项。 https://tool.a5.cn/article/show/77389.html
7.一种从cad设计图纸自动生成装修预算报价的方法和系统的制作方法[0001]本发明涉及室内装修设计领域,具体涉及一种从CAD设计图纸自动生成装修预算报价的方法和系统。【背景技术】[0002]随着房地产业的发展,室内装修成为了现在热门的行业之一。进行室内装修之前,一般要根据CAD图纸进行装修报价。在现有技术中,设计师拿到CAD图纸后,必须人工湖将图纸中的内容识别并总结判断出来,并自行根据https://www.xjishu.com/zhuanli/55/CN104899403.html
8.1张图自动生成10000套方案,这个软件堪比鹿班!优设网问得好!今天要给大家介绍的这款AI插件,就能够让你瞬间化身为「设计界核武器」。OK键一敲,立刻出图20000000张设计稿件分分钟塞爆甲方爸爸电脑硬盘的 HP smartstream D4D。 一句话概况其功能就是:设计1套源文件,自动生成千万设计稿!让喜欢修改的甲方淹死在稿件的海洋里! https://www.uisdc.com/automatically-generate-10000-sets-of-plans
9.Sketch怎么切图标注?在线标注,自动生成教程!在线标注,自动生成教程! UI设计师使用Sketch软件完成设计视觉稿后,在将它交付给开发人员进行开发前,需要对视觉稿进行Sketch标注,以便开发能够更好的还原设计视觉稿上的元素间距、字号、图标大小等尺寸。然而在实际工作时,设计师常常面对的是大量的设计图的元素标注,所以这将是一件特别细致又繁琐的工作。https://pixso.cn/designskills/how-to-cut-sketch/
10.Dreamweaver(拖拽图形设计自动生成代码)Dreamweaver(拖拽图形设计自动生成代码),中文名称 "梦想编织者",最初为美国MACROMEDIA公司开发,2005年被Adobe公司收购。DW是集网页制作和管理网站于一身的所见即所得网页代码编辑器。利用对 HTML、CSS、JavaScript等内容的支持,设计师和程序员可以在几乎任何地方快速制作和进行网站建设 Dreamweaver 2018-05-04 上传 大小https://www.iteye.com/resource/shengjieerlang-10391914
11.AI景观设计线稿平面图自动生成园林设计AI景观设计线稿平面图可以自动生成园林设计图了,AI已经成为内容创作者的灵感来源和效率工具,而在景观设计行业,我们也看到AI助力下,在设计稿的生成中,提升了数倍效率,正是如此,也迎来了更多企业的关注,想融入自己公司的项目场景之中。 神采PromeAI在不断更新和变化中,这一次的更新我们将更靠近商业化应用,用AI参与景https://828ai.com/articles/9.html
12.海迅家具设计生产软件教程零代码企业数字化知识站智能设计功能还包括自动生成图纸的功能。用户只需点击“生成图纸”按钮,系统就会自动生成符合标准的设计图纸,包括平面图、立面图和剖面图等。生成的图纸可以直接用于生产,减少了手工绘制图纸的时间和误差。 三、自动排版与材料优化 自动排版和材料优化是海迅家具设计生产软件的另一个重要功能。这两个功能能够帮助用户最大https://www.jiandaoyun.com/blog/article/452664/
13.2023设计神器及资源推荐:AI自动生成图工具插件等,别错过1、Midjourney 自动绘图 网址:https://midjourney.gitbook.io/docs/ 这是一个输入文字,生成效果十分惊艳,在官网主页可以看到其他人的生成结果,不少图片简直是建模级别的精细程度。 无论是人物、场景、动物亦或是各种艺术风格都拿捏到位。 甚至还有的图真实程度媲美“照片” http://cn.eagle.cool/blog/post/ai-design-tools-and-resources
14.实测AI建筑设计软件的自动生成效果图能力人工智能经过实测,发现建筑设计效果图软件使用AI自动生成效果图的质量非常高!这大大提高了建筑设计师的工作效率! 该句话可以重写为:本句仅用于展示触站AI软件的生成效果,版权和解释权归触站AI所有 素描模式: ai软件的出现在建筑设计领域产生了巨大的影响,它们能够迅速生成建筑设计效果图从而提高设计效率。同时,它们也能够帮助https://www.php.cn/faq/588331.html
15.Sketch设计稿自动生成设计标注切图,灵活调用图标库素材库腾讯CoDesign腾讯旗下产品设计研发一站式协作平台,支持在线导入预览 Sketch 设计稿、自动生成设计标注切图,灵活调用图标库、素材库,支持多种插件上传,让产品设计更轻松高效。 所在地: 深圳 收录时间: 2023-02-07 打开网站手机查看 研发项目管理# Adobe插件# CoDesign# sketch插件# 交互设计# 产品设计协作# 原型图#https://www.e4w.cn/sites/2488.html
16.设计师必看:PS一分钟自动生成完美包装效果图教程photoshop教程设计师苦逼的人生是无处不在的,辛辛苦苦做好一款包装设计,还得花大半天去做个效果图,更有甚者,客户完全产品还没有出来,已经开始做推广,直接拿效果图去做市场!所以今天小编为大家带来了PS一分钟自动生成完美包装效果图教程,作者是tuker,感谢他的分享! https://www.jb51.net/photoshop/367505.html
17.国产三维管道设计之光ZWPD3.0系列软件功能介绍对比传统式P&ID,它可以更方便更便捷的制作加工工艺流程图,并能自动生成工艺专业设计所必须的工程图纸、表格,比如管道表、管路特点表,闸阀表等。在此基础上,P&ID图型里的特性能够关联到数据库系统,为三维建模带来了数据信息基本。 中望CAD平台 AutoCAD平台 浩辰CAD平台http://www.zwpim.com/pid.html
18.带你研究solidworks配置功能的工序图自动生成方法介绍了一种利用SolidWorks组态功能自动生成工艺图的方法。该方法采用面向制造的设计,通过建立配置与过程的对应关系,生成过程图。与传统方法相比,该方法能有效利用设计过程中的三维信息,具有较大的通用性,为解决CAPP中工艺图的自动生成提供了一种新的途径。工艺图是工艺设计结果的图形表达,它反映了工件的整体轮廓、工艺的https://www.0512sw.cn/article-item-80.html
19.图牛助理电商工具箱PS插件(提高电商设计效率的必备工具)癞蛤蟆随着电商行业的不断发展,电商设计也逐渐成为了一个重要的领域。而作为电商设计师,如何提高设计效率,让设计更加高效、精准,成为了一个亟待解决的问题。而图牛助理电商工具箱PS插件就是为此而生的设计工具,它https://new.91laihama.com/taobaozx/71228.html
20.笔格设计笔格设计(原比格设计)是一款高效的AI图片设计工具,能够根据用户输入的描述词或上传的图片,自动生成具有特定风格和尺寸的图片。主要功能包括文生图、图生图、艺术背景生成、AI文案创作、智能图片消除、图片清晰度提升以及海报设计等。https://ai-bot.cn/sites/14748.html
21.案例分享电商设计师视角下的AI解读与应用AIGC 作为一种新兴的技术,可以作为辅助提升设计的效率,也可以为设计师的创作提供更多的可能性。作为电商类产品的B端设计师,如何看待 AIGC 对于生产端: 自动化设计:自动生成设计方案,减少设计师劳动力成本。设计师可以将更多时间和精力集中于审查和优化设计。 https://www.onxue.com/7747.html
22.“文生图”再升级!学习个性化参照,无限生成多样图片,轻松设计玩具除了文本引导的提示编辑,学习到的提示分布还可以通过缩放方差来控制生成的多样性。如下图所示,当缩放系数 γ 变大时,生成的图像更具随机性,而缩放系数等于 0 时则生成图片的多样性和随机性显著下降。 不同的提示分布还可以通过按权重相加来得到生成具有混合概念的图片的效果,如下图所示,按不同比例混合中国山水画和https://www.ithome.com/0/745/614.htm