QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

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

联想智慧服务荣获第17届“金耳唛杯”年度总冠军

科技大数据

优酷鸿蒙开发实践|多屏互动开发实践

阿里巴巴终端技术

ios android 鸿蒙 优酷 客户端

1024 写给程序员的一些建议

Andy阿辉

编程 程序员 程序人生 程序 java;

四万字32图,Kafka知识体系保姆级教程宝典

五分钟学大数据

大数据 kafka

终于有人把云原生存储讲明白了

青云技术社区

云计算 云原生 存储 Cloud Native

第二存储解决方案白皮书 | 专为非生产数据而设计的存储方案

QingStor分布式存储

云原生 分布式存储

Aeron是什么?

BUG侦探

Aeron

二本渣渣的金九银十辛酸面试之旅:5 面阿里(Java岗) 侥幸上岸

Java 编程 程序员 架构 面试

helm部署的es出现探针过不了的问题

ilinux

事件管理CRM系统是活动策划工作的必要工具

低代码小观

CRM 管理系统 事件管理 CRM系统 活动策划

CFI技术新探索,struct_san今日登场

腾讯安全云鼎实验室

云安全

【权限专栏】联盟链的“圆桌会议”

趣链科技

校招失败,在小公司熬了2年后我终于进了阿里,竭尽全力(Java岗)

Java 程序员 架构 面试 计算机

腾讯数字生态大会【TechoDay技术回响日】

腾讯云数据库

落实等级保护工作的意义简单说明-行云管家

行云管家

网络安全 等保 等级保护 安全等级保护

京东架构师珍藏版:redis深度笔记(全彩版)全篇精华,细节满满

收到请回复

redis 编程 面试 后端 计算机

Python代码阅读(第46篇):寻找符合条件的元素

Felix

Python 编程 Code Programing 阅读代码

高校人才集聚飞桨启航菁英计划!百度联合中国图象图形学学会助力AI人才培养

百度大脑

人工智能 百度 图像

每周学习感想

张靖

#架构实战营

4个实验,彻底搞懂TCP连接的断开

Java 架构 TCP 后端 网络编程

架构训练营模块1作业

Puciu

架构实战营

微信业务架构

stars

架构训练营

Kubernetes Operator 开发入门

侯生

Kubernetes operator #k8s

anyRTC从服务到产品全链路服务保障升级

anyRTC开发者

音视频 直播 实时通信 语音通话 视频通话

携手企业创新 共创美好未来——低代码助力企业数字化

明道云

科技热点周刊|微软发布 Web 版 VSCode、 删除 .NET 6 热重载引发不满、IBM 发布开源混合云介绍指南

青云技术社区

云计算 云原生 kubenetes CockroachDB

快手技术嘉年华 | 与你漫游技术星辰大海

快手中学

技术 校招 快手

MongoDB技术实践与应用案例征集活动

MongoDB中文社区

mongodb

字节跳动Web Infra发起 Modern.js 开源项目,打造现代 Web 工程体系

字节跳动终端技术

字节跳动 大前端 开源技术

用会声会影制作手链的展示视频

懒得勤快

【引航计划】优质内容合集名单公布

InfoQ写作社区官方

引航计划 热门活动

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