5秒将网站草图转成HTML代码,怎么做到的?

当前一个典型的设计工作流可能如下所示:

产品经理进行用户调查后,列出一系列的要求。

设计师根据需求,探索低保真原型,最终创建高保真产品模型。

工程师用代码实现设计,最终将产品传达给用户。

这种冗长的开发流程很多时候会成为制约企业的瓶颈问题,因此一些公司比如Airbnb,已经开始用机器学习让开发流程更加高效。

Airbnb内部将设计草图转变为代码的AI工具演示图

但是这些公司应用的方法到底如何,外界不得而知。因此我决定研究一种开源版的网页自动开发技术,让广大开发者和设计师都能从中受益。

理想状况下,我的模型能够根据网站设计的简单手绘图,立刻生成可以运行的HTML网站:

模型能将设计草图立刻转换为HTML代码

实际上,上面的例子就是我的模型根据测试照片实际生成的一个网站。

从图片描述中汲取灵感

我要解决的问题,从大的方向上可以归类为一种叫做“程序综合”的任务,也就是自动生成能够运行的源代码。虽然大部分程序综合处理的是自然语言指令或执行追踪中生成的代码,但我的模型还能在开始时利用源图像(手绘的示意图)。

机器学习领域有个充分研究的方向叫做图像描述,这种方法会学习将图像和文本相匹配的模型,专为源图像中的内容生成文本描述。

图像描述模型生成源图像的文本描述

获取正确的数据集

如果是用图像描述这种方法,我理想中的训练数据集应当是几千张手绘的网站设计图及其对应的HTML代码。意料之中,这种正好符合要求的数据集根本找不到,因此我只能自己创建任务需要的数据集。

pix2code数据集

就我的项目的开始阶段而言,这是个很好的数据集,有几个很有趣的亮点:

数据集中每个生成的网站都包含几个简单的引导元素的组合,比如按钮、文本框、div等。虽然这意味着我的模型会局限于生成这几个元素,但这种方法也能很容易的泛化,生成更大规模的元素。

每个样本的源代码包含了来自论文作者为相应任务创建的DSL(特定域语言)中的token。每个token对应一段HTML和CSS脚本,然后会用一个编译器将DSL转换为运行的HTML代码。

让图像具有设计草图的效果

将多姿多彩的网站图像变为手绘版设计草图

为了修正数据集,更好的适应我的任务,我需要让网站图像看起来是用手画出来的一样。我用了一些工具,比如OpenCV和Python库PIL,修改了每张图像的信息,比如灰度转换、轮廓检测等。

最终,我决定直接修改初始网站的CSS样式表,进行了一系列的操作:

改变网页上各元素的边界值,将按钮和div的四角变为曲线。

调整边界的厚度以模仿手绘示意图,并添加阴影。

将字体改为看上去像手绘的字体。

最后一步,增强图像的效果,比如为图像添加斜线、移位和旋转等效果,模仿真实手绘中变化多端的风格。

使用图像描述模型架构

现在,需要的数据已经备好,终于可以将数据输入到模型中了!

我采用了应用于图像描述部分的模型架构,主要包含3个主要部分:

一个使用了卷积神经网络的计算机视觉模型,用以从源图像中提取图像特征。

一个包含GRU的语言模型,能够编码源代码token的序列。

一个编码器模型(也是个GRU),它会将前面两个部分的输出用作输入,预测序列中的下一个token。

用token序列作为输入来训练模型

为了能训练模型,我将源代码拆分为token的序列。模型的每个输入就是一个token序列,并配有和序列对应的源图像,其标签为文件中的下一个token。模型使用交叉熵代价函数作为其损失函数,它会将模型预测的下一个token和实际的下一个token进行比较。

在推理阶段,当模型从零开始生成代码时,过程会有所不同。图像仍然是通过CNN神经网络处理,但只用起始序列进行文本处理。模型对序列中下一个token的预测,在每一步都会添加至当前输入序列,并作为一个新的输入序列输入到模型中。这个过程会反复进行,直到模型预测出一个token或者用尽了每个文件中的token数量。

用BLEU得分评估模型

我决定用BLEU得分评估模型。BLEU得分是应用在机器翻译任务中的常见指标,用来衡量输入相同的情况下,机器生成文本和人类生成文本的接近程度,

基本上,BLEU会比较生成文本和引用文本这两者的N-Gram序列,以改进的形式表示模型的精确度。这对本项目来说非常合适,因为它会将生成的HTML中的实际元素以及它们之间的关系考虑进来。

更棒的是,我能通过检查生成的网站查看BLEU得分。

可视化BLEU得分

最高BLEU得分1.0表示模型能根据源图像生成正确的网页元素,且各元素均在正确的位置。BLEU得分很低则表示模型没有正确生成元素,或将元素放在了错误的位置。最终用评估数据集对模型进行评估时,显示模型得到了0.76的BLEU得分。也就是说我搭建的模型,能正确的将76%的设计草图短短几秒钟内转换为HTML代码。

额外福利——自定义网站风格

我后来意识到还有一个额外的福利。由于模型只生成了网页的框架(文件的token),那么我可以在编译过程中添加一个自定义CSS层,这样模型就能即刻让生成的网站拥有多种不同的风格。

一张设计草图同时生成多种风格

让网站风格和模型生成过程相分离,能让使用模型时具备几个很大的优势:

想将我的模型整合到自家公司产品的前端工程师,在使用模型时只需改变单个CSS文件以符合公司的设计风格即可。

内置可伸缩性能。根据一张源图像,模型输出就能编译为5个、10个甚至50个不同的预定义风格,因此用户可以在浏览器上预览网站多个风格版本的效果。

结语及未来展望

通过使用图像描述领域的研究方法,我搭建了一个深度学习模型,能够将手绘的网站设计图在几秒钟内转换为可以运行的HTML网站。

当然模型也存在一些局限,未来我可能从以下几个方面优化:

由于只用了16个元素训练模型,因此模型尚不能预测它没有见过的token。未来我会用更多元素,比如图像、下拉菜单和表格等训练模型生成更多的网站样本,先从引导元素开始。

现实中的网站都有很多变化。未来我会创建更能灵活应对这些变化的训练数据集,彻底弄懂实际中真实的网站,捕捉它们的HTML/CSS代码以及网站内容的截图。

手绘图同样变化多端,CSS修改技巧也无法完全捕捉到。用生成式对抗网络创建看起来真实感很强的网站图像,可以让手绘草图数据具有更多的变化。

原创:景略集致#/post/5b456f23e51d45191a0d291b

填写下面表单即可预约申请免费试听!怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

怎样快速学会Web渗透?Web渗透是指对网站或Web应用进行安全评估,以发现和利用安全漏洞。但请注意,在进行Web渗透测试时,必须确保你有合法的权限,否则可能会违法。

Web前端开发培训学习,如果您想参加Web前端开发培训学习,可以考虑以下几个步骤:

Web前端工程师需要掌握哪些知识?前端工程师主要负责网站或Web应用的用户界面设计和实现。要成为一名合格的前端工程师,需要掌握以下几个方面的知识:

THE END
1.以下是关于前端开发的一些详细介绍:技术选型:根据项目需求和团队技术栈,选择合适的前端技术、框架和工具,如确定使用的 HTML 版本、CSS 预处理器、JavaScript 框架,以及是否需要引入其他第三方库或工具等. 页面设计与构建:根据设计稿,使用 HTML 和 CSS 进行页面的结构搭建和样式设计,将设计师提供的视觉稿转化为可在浏览器中显示的网页,注重页面的布局合https://blog.51cto.com/u_17198504/12864732
2.前端利器!让AI根据手绘原型生成HTML教程+代码前端利器!让AI根据手绘原型生成HTML | 教程+代码 王小新 编译自 Insight Data Blog 量子位 出品 | 公众号 QbitAI 写个网页能有多麻烦?在大多数公司里,这项工作分为三步: 1.产品经理完成用户调研任务后,列出一系列技术要求; 2.设计师根据这些要求来设计低保真原型,逐渐修改得到高保真原型和UI设计图;https://blog.csdn.net/yH0VLDe8VG8ep9VGe/article/details/79861137
3.深度学习成了前端开发神器:根据UI设计图自动生成代码UI设计和前端工程师之间,可能还需要一个神经网络。 近日,位于哥本哈根的一家创业公司Uizard Technologies开发出了一个名为“pix2code”的系统。运用深度学习,这个系统能够根据输入的图形用户界面(GUI)截图直接输出对应的代码,从而省去前端手动编写代码的过程。 https://cloud.tencent.com/developer/article/1076947
4.人工智能AI可以将UI设计图自动生成跨平台代码,前端工程师福利前端工程师有了这个利器,可以更愉快的编程了~ 哥本哈根的一家初创公司 UIzard Technologies 训练了一个神经网络,能够把图形用户界面的截图转译成代码行,成功为开发者们分担了部分产品的设计流程。 到目前为止,他们能够从一个单一的输入图像中,生成针对三种不同平台(iOS,Android和基于Web的技术)的代码,其精度超过77%,https://www.zhuanzhi.ai/document/80b5bfb6f2065c8970eeddea7998bb3f
5.只要一张图片前端页面设计轻松实现广州网站建设Screenshot-to-code 是一个创新的工具,它利用人工智能技术简化了网页开发和设计过程。无论你是经验丰富的开发者还是编程新手,都可以从中受益。通过将截图转换为代码,你可以更快地实现设计想法,提高工作效率。 上传一张图即可生成前端代码 项目地址: https://github.com/abi/screenshot-to-code https://www.uweb.net.cn/zhishiku/jishuyanjiu/18424.html
6.前端设计图转代码,西安交大表示复杂界面也能一步步搞定但如果我们利用这些特征生成用户界面代码呢?那么就需要同样强大的模型将这些高级特征解码为一条条代码。最近西安交通大学提出一种用户界面转代码的新算法,该算法根据代码的层级特性构建了一种基于注意力的强大解码器。 使用机器学习技术自动生成图形用户界面(GUI)代码是一个相对较新的研究领域。通常,按照设计编写 GUI 对https://zhuanlan.zhihu.com/p/48580981
7.设计稿自动转前端代码怎么操作?快来尝试这个工具!即时设计支持设计稿自动转前端代码操作,只需要在官网下载一个「CODE.FUN」插件就能实现,只需在即时设计官网下载并安装该插件,然后上传设计稿,即可一键生成源代码并下载。CODE.FUN 支持多种设计稿格式,如Sketch、Figma、Photoshop和即时设计。即时设计的这个插件具有智能布局方案、组件识别和标签语义化等功能,能够精准还原https://js.design/special/article/design-to-front-end-code.html
8.分享41个与网页设计样式相关的在线代码生成工具前端达人分享41 个与网页设计样式相关的在线代码生成工具 1、三角形背景图案生成器 演示地址:https://codepen.io/msurguy/pen/wvGgzN 2、CSS 三角形生成器 地址:https://codepen.io/yukulele/pen/AgzXdJ 3、SVG梯度波发生器 地址:https://codepen.io/supah/pen/prVVOxhttps://www.shangyexinzhi.com/article/4632341.html
9.京东科技设计稿转代码平台介绍通过前面的介绍可以发现,D2C的目的是将设计稿自动转换成前端代码,所以D2C基本可以覆盖所有需要将UI转换为前端代码的场景。另外由于设计稿中包含了几乎所有UI层面的资源,如图片、切图等信息,D2C平台在前端工程上也可以自动化一些操作,比如自动切图、自动将图片上传到CDN等。 https://blog.itpub.net/70027824/viewspace-3005059/
10.Design。强大的代码生成器让前端和后台代码一键生成,不需要写JEECG宗旨是:简单功能由Online Coding配置实现既零代码开发(在线配置表单、在线配置报表、在线图表设计、在线设计流程、在线设计表单),复杂功能由代码生成器生成进行手工Merge,既保证了智能又兼顾了灵活; 业务流程采用工作流来实现、扩展出任务接口,供开发编写业务逻辑,表单提供多种解决方案: 表单设计器、online配置表单、https://github.com/yydm/jeecg-boot
11.基于三维GIS技术的公路交通数字孪生系统臻图信息独立CGA建模方案可比喻为一个“曲线积分”过程,用CGA语言几何、纹理函数描述横断面构造,该横断面构造即为“被积函数”,沿中心线路径积分即可完成快速建模。同时,桥、道、隧具有完全不同的横断面,且无法由代码形参输入改变,因此函数为一分段函数。 本文首先按下图一分别设计CGA对象,再通过抽象模型与参考地形的高程差https://www.ztmapinfo.com/blog/index.php/article/20.html
12.近两万字的干货!可能是最全面的网页设计基础知识全攻略首先让我们来看一下网站设计的工作流程吧,除了之前介绍过的用户研究、撰写产品需求文档、市场文档、做竞品调研等工作之外,与设计师密切相关的网站项目流程可以分为原型图阶段、视觉稿阶段、设计规范阶段、切图阶段、前端代码阶段、项目走查阶段六个阶段。每个阶段都需要设计师参与和了解,千万不要只在意视觉稿这个阶段,有https://www.uisdc.com/web-design-basics-raiders
13.低代码前端怎么生成零代码企业数字化知识站自定义调整:根据需求调整组件的属性和样式。 预览和测试:实时预览界面效果,并进行必要的测试。 生成代码:平台自动生成对应的前端代码。 发布应用:将生成的应用发布到指定的服务器或平台。 总结: 低代码前端生成通过可视化拖拽界面设计、结合预设组件和模板、自动化代码生成工具,使得前端开发更加高效和便捷。选择合适的低https://www.jiandaoyun.com/blog/article/1017777/
14.前端搞搭建如何为搭建物料智能生成代码大家好,先自我介绍下,我是来自阿里淘系技术部的妙净,2010 年毕业加入淘宝前端,曾负责过淘宝前端无线基础库、淘宝无线性能优化体系、淘宝营销搭建体系,现负责淘宝导购和天猫品牌营销前端团队,负责前端智能生成代码平台 imgcook,今天给大家介绍下 imgcook。 先看一下视频,看看 imgcook 能干什么,目前主要能通过设计稿生成视https://maimai.cn/article/detail?fid=1453240724&efid=x3bGlHe5sFivY6azEZy5sA
15.研发提效:通过设计稿自动生成前端代码先分享京东前端同学分享的通过UI设计稿自动生成前端代码的演讲。因为是纯理解分享,所以如果有理解错误的地方,请大家指正哈。 做过前端的同学可能知道,写页面并没有太大的技术含量,就是比较费时间。而做这个项目的目的就是为提高前端同学的研发效率,少写代码甚至不写代码。 https://www.jianshu.com/p/a860ec010fa3
16.imgcook阿里推出的免费设计稿智能生成前端代码由设计稿一键智能生成代码的大厨 | An intelligent tool turning designs to codehttp://www.imgcook.com/
17.DecoDeco是京东推出的一款设计稿一键生成多端代码智能工具,它能够将设计稿一键生成多端代码,包括Taro、React、Vue、HTML等。Deco这个名字是Design和Code两个词的合并,代表着从设计到代码的转换。https://pidoutv.com/sites/11058.html
18.蓝湖蓝湖是一款产品文档和设计图的共享平台,帮助互联网团队更好地管理文档和设计图。蓝湖可以在线展示Axure,自动生成设计图标注,与团队共享设计图,展示页面之间的跳转关系。蓝湖支持从Sketch、Ps一键共享、在线讨论,而且蓝湖只需简单几步就能将设计图变成一个可以点击的演http://www.lanhuapp.com/
19.基于算法的漏洞检测Step2:生成代码数据流 根据代码数据流进行变量追踪是很多白盒检测工具的原理,我们也需要代码的执行流程进行分析,以数据流为单位进行漏洞检测。而不是直接将源代码作为直接切分成字符串,这样会破坏代码的语义,也就失去了漏洞检测的依据。 下图展示了对PHP源代码使用图谱分析生成数据流的流程图,源代码会首先根据上述算法生https://xz.aliyun.com/t/9539
20.Figma转换为代码FigmaChinaFigma转换为代码的实现原理可以分为以下步骤:解析设计文件:首先,需要解析Figma设计文件以提取设计元素和布局信息。 转换为DSL:将设计元素转换为领域特定语言(DSL),作为中间表示,便于进一步的代码转换。 生成代码:最后,将DSL转换为前端或客户端代码。2.1 生成流程图 #https://figmachina.com/articles/1705089645309.html
21.代码生成器使用指南GinVue1.1 自行设计业务基础结构体模型 ? 点击左侧菜单中的 系统工具 → 代码生成器 填写好 Struct名称 tableName Struct简称 Struct中文名称 文件名称 空格 选择好 自动创建api 自动移动文件 按钮 点击新增Field 按钮,为数据表、struct结构体创建字段, 具体请看字段界面说明。 https://www.gin-vue-admin.com/guide/generator/server.html
22.CodeFunCodeFun 是 UI 设计稿智能生成源代码工具,使用 CodeFun,10 分钟完成 8 小时工作量。插件上传设计稿便可立即获取源代码,智能生成让程序员买单的代码,如手写般的代码。https://code.fun/
23.iconfont原创设计 海量素材 高效协作 图标自定义下载 支持AI/SVG/PNG/代码格式下载 支持按路径在线编辑icon颜色 项目协同高效合作 创建项目后上传icon,成员下载使用图标 前端同学可将图标添加至代码 设计师交流分享 我们提供一个原创图标共享、交流平台 尊重原创、尊重每个设计师https://www.iconfont.cn/
24.fpga岗位职责1、负责公司产品前端页面的开发; 2、负责相关HTML5游戏的开发工作; 3、维护现有HTML5程序,处理用户反馈的问题; 4、根据美工设计图开发前端代码,解决浏览器及终端平台的各种兼容性问题; 职位要求: 1、计算机相关专业,大专以上学历,有1年以上的相关工作经验; https://www.yjbys.com/hr/gangwei/3644844.html