写点什么

前端要凉?微软开源 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:063969
用户头像

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

关注

评论 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
回复
没有更多了
发现更多内容

2023-05-08:我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符, 并返回唯一字符的个数。 例如:s = “LEETCODE“ ,则其中 “L“, “T

福大大架构师每日一题

Go 算法 rust 福大大

Prometheus实战-从0构建高可用监控平台(五)

小毛驴的烂笔头

Linux Prometheus

Django笔记二十五之数据库函数之日期函数

Hunter熊

Python django extract trunc

【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南

洛神灬殇

spring 缓存服务 三周年征文 CacheManager 缓存系统

iOS MachineLearning 系列(13)—— 语音与音频相关的AI能力

珲少

开源工具系列7:Kube-bench

HummerCloud

Kubernetes 云原生安全

10年IT老兵亲述SpringCloud开发从入门到实战文档

程序知音

Java 微服务 java架构 Java进阶 spring-cloud

Fabarta 与青岛市城阳区政府达成战略合作,共同推动区域数据要素市场建设

Fabarta

数据挖掘 数据要素 数据资产管理 图智能 数据要素流通

项目管理系统Redmine怎么样

爱吃小舅的鱼

项目管理 项目管理软件

锐捷网络,无边光景一时新

脑极体

网络

Alibaba技术官熬夜肝出的,Kafka“限量笔记”牛掰!

程序知音

Java kafka java架构 Java进阶 后端技术

数字化管理时代来临,瓴羊Quick BI、帆软Fine BI领跑国产BI市场

对不起该用户已成仙‖

Django认证系统

测吧(北京)科技有限公司

测试

mac软件卸载不干净怎么办?

真大的脸盆

Mac Mac 软件 软件卸载工具 卸载软件

JAVA快速开发框架 一键生成表单模板代码

力软低代码开发平台

接口测试

测吧(北京)科技有限公司

测试

对比编程语言的四种错误处理方法,哪种才是最优方案?

Python猫

编程

JMeter实时性能监控平台实战

测吧(北京)科技有限公司

测试

什么是点对点传输?什么是点对多传输

镭速

如何有效的向 AI 提问 ?

繁依Fanyi

人工智能

毕业设计-100w秒杀设计

Sam

架构实战营

阿里云 EMAS & 魔笔:4月产品动态

移动研发平台EMAS

阿里云 DevOps 消息推送 低代码平台 兼容性测试

今日分享丨inBuilder低代码平台有关前端的“道、法、术、器”

inBuilder低代码平台

前端 低代码平台

Prometheus实战-从0构建高可用监控平台(四)

小毛驴的烂笔头

Linux Prometheus

数据标注——数字世界的基石

来自四九城儿

Prometheus实战-从0构建高可用监控平台(三)

小毛驴的烂笔头

Linux Prometheus

全新 – Amazon EC2 R6a 实例由第三代 AMD EPYC 处理器提供支持,适用于内存密集型工作负载

亚马逊云科技 (Amazon Web Services)

Amazon EC2

安卓机上 4G 内存跑 alpaca,欢迎试用轻量级 LLM 模型推理框架 InferLLM

MegEngineBot

开源 大模型 MegEngine LLM

【干货集】PCBA板边器件布局重要性

华秋PCB

工具 电路 PCB 布局 PCB设计

软件测试 | 编程语言中的Interface

测吧(北京)科技有限公司

测试

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