写点什么

前端要凉?微软开源 Sketch2Code,草图秒变代码

  • 2018-09-04
  • 本文字数:1160 字

    阅读完需:约 4 分钟

用户界面设计过程涉及大量创造性的迭代工作。这个过程通常从在白板或白纸上画草图开始,设计师和工程师分享他们的想法,尽力表达出潜在的客户场景或工作流程。当他们在某个设计上达成一致之后,通过照片的形式将草图拍下来,然后手动将草图翻译成 HTML 代码。翻译过程需要耗费很多时间和精力,通常会减慢设计过程。
如果可以将白板上手绘的设计立即反映在浏览器中,那会怎样?如果我们能够做到这一点,在设计头脑风暴结束时,我们就可以拥有一个已经由设计师、开发人员甚至客户验证过的现成原型,这将为网站和应用程序开发省不少时间。现在,微软已经借助 AI 做到了这一点,同时他们还将这个项目在 Github 上开源了。

Sketch2Code 是什么?

Sketch2Code 是一个基于 Web 的解决方案,使用 AI 将手绘的用户界面草图转换为可用的 HTML 代码。Sketch2Code 由微软和 Kabel、Spike Techniques 合作开发。读者可以在 GitHub 上找到与 Sketch2Code 相关的代码、解决方案开发过程和其他详细信息。

Sketch2Code 项目地址: https://github.com/Microsoft/ailab/tree/master/Sketch2Code

下图演示了利用 Sketch2Code 将手绘草图转换成代码的操作过程。在微软官方网站上可以做更多尝试: https://sketch2code.azurewebsites.net/

Sketch2Code 是如何工作的?

让我们来看看使用 Sketch2Code 将手绘草图转换成 HTML 代码的过程:

  • 用户将图片上传到网站上。
  • 自定义视觉模型预测在图像中出现的 HTML 元素,并将它们的位置标出来。
  • 手写文本识别服务读取预测元素中的文本。
  • 布局算法根据预测元素的边框空间信息生成网格结构。
  • HTML 生成引擎使用上述信息来生成 HTML 代码。

工作流程如下所示:

Sketch2Code 的架构设计

Sketch2Code 使用了以下组件:

  • 微软自定义视觉模型(Custom Vision):这个模型是基于不同的手绘稿的图象训练得出的,并标记了与常见 HTML 元素(如文本框、按钮、图像等)相关的信息。
  • 微软计算机视觉服务:用于识别设计元素中的文本。
  • Azure Blob Storage:保存与 HTML 生成过程的每个步骤相关的信息,包括原始图像、预测结果、布局和分组信息等。
  • Azure Function:它作为后端入口点,通过与其他服务发生交互来协调生成过程。
  • Azure Website:用户界面前端,用户可以在这里上载设计图,并查看生成的 HTML。

以上组件通过如下架构组合在一起:

是不是感觉跃跃欲试?

你可以在这里找到 Sketch2Code 的开源代码:

https://github.com/Microsoft/ailab/tree/master/Sketch2Code

也可以在这里对 Sketch2Code 的实际效果进行验证: https://sketch2code.azurewebsites.net/

查看英文原文:

https://blogs.technet.microsoft.com/machinelearning/2018/08/30/turn-whiteboard-ux-sketches-into-working-html-in-seconds-introducing-sketch2code/

http://www.alphr.com/microsoft/1009840/microsofts-ai-sketch2code-builds-websites

2018-09-04 06:064310
用户头像

发布了 731 篇内容, 共 473.6 次阅读, 收获喜欢 2008 次。

关注

评论 6 条评论

发布
用户头像
标题党
2021-04-20 08:53
回复
用户头像
这是升职加薪的附属产物吧?
2018-11-21 15:38
回复
用户头像
又是一败笔
2018-11-10 10:44
回复
用户头像
前端又不只是HTML
2018-11-08 18:33
回复
用户头像
生成的代码是否对二次开发和后期维护友好
2018-11-08 10:27
回复
如果能友好,当年frontpage早就一统天下了
2018-11-08 14:10
回复
没有更多了
发现更多内容

32个问题,学习Java虚拟机的运行时数据区

AI乔治

Java 架构 JVM JVM虚拟机原理

新基建下区块链基础设施建设

CECBC

区块链

系统从初期到支撑亿级流量,都经历了哪些架构的变迁?

冰河

分布式 微服务 系统架构 SOA 垂直架构

它可能是分布式系统中最重要的枢纽

架构师修行之路

分布式 微服务 注册

中国银行前行长李礼辉:区块链技术优势与产业前景

CECBC

区块链 数字货币

vim快捷键收藏版

良知犹存

vim

同学信誓旦旦地说,我司的系统从来不做性能调优!

沉默王二

Java 性能调优

为你总结了N个真实线上故障,从容应对面试官!

AI乔治

Java 架构 GC

自我管理系列-为啥要做生产问题分析报告呀

罗小龙

复盘 IT, 经验总结 职场搞笑 生产事故

杰哥获奖了!

JackTian

Linux 程序人生 运维工程师 运维人生

京东智联云4篇论文入选国际语音顶级大会Interspeech 2020

京东科技开发者

人工智能 大数据 语音识别

视频客服的应用和优点

anyRTC开发者

音视频 WebRTC 直播 RTC

可视化数据科学中的概率分布以帮你更好地理解各种分布

计算机与AI

学习 数据科学

今天你的idea崩了吗?分享6种“白嫖”正版idea的途径,真香定律

小Q

学习 架构 面试 开发 IntelliJ IDEA

Dubbo 微服务调用时序图

Acker飏

"全能"人才的概念真的对吗

supernova

创业 读书笔记 随笔杂谈

信息量爆炸!78天闭门深造1258页SpringCloud学习进阶笔记,再战蚂蚁金服

996小迁

Java 架构 面试 SpringCloud

谈谈贪官污吏

空山

记一次Jvm参数调优实战

AI乔治

Java 架构 JVM 编程思维 jvm调优

区块链助力跨省、零材料办理 成都武侯打造“中国政务服务第一链”

CECBC

区块链

一次艰难的内存泄露排查,BeanUtils的锅

AI乔治

Java 架构

分布式系统使用网关到底是好还是坏?

架构师修行之路

分布式 微服务 网关

JVM系列-第一节:JVM简介、运行时数据区、内存分代模型

诸葛小猿

Java JVM JVM简介 运行时数据区 内存分代模型

英特尔老矣,尚能“转”否?

脑极体

算法学习1-- 数组常见问题

菜鸟小sailor 🐕

算法和数据结构

甲方日常 39

句子

工作 随笔杂谈 日常

陈山枝:5G+车联网 推动中国特色车路协同发展

AES加密模式

Mars

AES

谷歌朝南,华为朝北

脑极体

如何在微信公众号图文中插入外链

Ceelog

微信公众号

LeetCode题解:47. 全排列 II,回溯,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

前端要凉?微软开源Sketch2Code,草图秒变代码_微软_微软ML博客团队_InfoQ精选文章