我的编程空间,编程开发者的网络收藏夹
学习永远不晚

UI2Code中如何利用antd.sketchapp 生成训练数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

UI2Code中如何利用antd.sketchapp 生成训练数据

这篇文章将为大家详细讲解有关UI2Code中如何利用antd.sketchapp 生成训练数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Ant Design 最近发布了 antd.sketchapp :

UI2Code中如何利用antd.sketchapp 生成训练数据

使用 skpm 构建工具,基于 React Sketch.app 及 Ant Design ,实现了 antd.sketchapp ,可以很方便的把 Ant Design 的前端代码转化为 sketch 文件。类似的基于 Material Design 我们也可以实现一个 MD.sketchapp 。antd.sketchapp 更大的意义在于其是一套设计系统更新的工具,可以快速对 Sketch 已存在的原子进行更新,这样基于 Ant Design 的前端组件,我们可以基于自己公司的特点进行修改,并不断进行迭代,这样保证了业务型设计师在具体时候的时候是最新的样式,同时前端也是最新的。

Code2UI 这件事实现起来还算简单,UI2Code 这件事就显得有点难度了,基础的工作有 MD 的 sketch 插件,设计师可以很方便的在 sketch 里生成 Material Design 的 UI 组件。

airbnb 对 UI2Code 也在尝试中:

Airbnb launched sketching interfaces.

https://airbnb.design/sketching-interfaces/

利用的是 CNN 图像分类的方法。

关于 UI2Code 相关的工作及尝试,有2个比较热门的项目:

Pix2code

https://github.com/tonybeltramelli/pix2code

Turning design mockups into code with deep learning

https://github.com/emilwallner/Screenshot-to-code-in-Keras

主要的深度学习模型采用了 CNN 跟 LSTM 。由于本文是基于 Ant Design 的,有很多约定好的规则,毕竟是设计语言,不像纯 HTML 或基于 Bootstrap 的 UI 框架,太过自由,因此我们可以简化下,基于 CNN 分类的做法尝试下 UI2Code 。CNN 的大体思路,通过传统算法,保存屏幕截图,及对应的按压时间。这样就可以形成 IMG 及对应的 Label 。通过 CNN 卷积神经网络训练,即可用于输入新的 IMG 预测按压时间。

CNN 需要大量的训练数据,我们可以尝试下利用 antd.sketchapp 大量生成 Code 及 UI 图像的成对数据。Code 抽象成合适的数据形式,例如 [ Header , Content , Footer ] , Header 表示为[ Button , Text , Button ] 的形式,结合起来是个二维矩阵的方式,像这样 [ [ 1 , 0 , 1 ] , [ 1 , 0 , 0 ] , [ 1 , 1 , 1 ] ]。这里需要做很多实验跟抽象的工作,如何用矩阵的方式描述代码。思想类似于以前介绍过的在生成建筑中用到的 Snippet Grammar (基于参数的描述性语言),严格来讲属于 domain-specific languages(简称 DSL , 领域特定语言)。

DSL

A specialized computer language designed for a specific task.

为了解决某一类任务而专门设计的计算机语言。

Martin Fowler 认为:

DSL 首先是一种帮助用户从一个系统中抽象出某些部分的工具。所以“当你意识到你需要一个组件,或者当你已经有了一个组件而你希望简化操作它的方式的时候”, DSL 是有用的。DSL 不仅提高了代码的易读性,让开发者可以和领域专家更好的交流”。

几个 DSL 的例子

1 正则表达式

通过一些约定好的符号和组合规则,书写正则表达式,通过正则表达式解释引擎来实现字符串的匹配功能。

2 JSON 动态生成 UI 界面

Jasonette

Create your own native iOS app with nothing but JSON.Then send it over the Internet.

通过配置 JSON 动态生成 IOS 的 UI 界面。

https://github.com/Jasonette/JASONETTE-iOS

天猫Tangram

Android&iOS 支持,一份数据,多端渲染一致。通过 json 数据描述可以组合出常用的页面结构,赋予页面内布局结构的动态化能力。

http://pingguohe.net/2017/12/07/Tangram-2.html

3 web 前端中的 CSS

这个写过 CSS 的都有直观的感受,我们只能根据规则,书写描述性的 CSS 语言,来达到控制页面样式的目的。

4 面对设计问题

把 UI 界面的长宽,色彩,文字布局,内外边距等设计元数据,以一种约定的、简洁的语言规则(即 DSL )作为程序的输入,由程序自动分析处理,从而生成真正的 UI 界面的可用代码。Sketch 软件生成的文件,其实就是 JSON 格式的,也算是设计领域的 DSL 的一种。

所以训练数据集,需要设计一套 DSL ,利用 Sketch.app 生成大量配对的数据,并把 DSL 转化为 CNN 训练时使用的 Label 数据。

关于UI2Code中如何利用antd.sketchapp 生成训练数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

UI2Code中如何利用antd.sketchapp 生成训练数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

UI2Code中如何利用antd.sketchapp 生成训练数据

这篇文章将为大家详细讲解有关UI2Code中如何利用antd.sketchapp 生成训练数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Ant Design 最近发布了 antd.ske
2023-06-19

怎么在python中利用Yolact训练数据集

怎么在python中利用Yolact训练数据集?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1:提前准备好自己的数据集使用labelme来制作分割数据集,但是得到的是一个个
2023-06-14

怎么用GAN训练自己数据生成新的图片

本文小编为大家详细介绍“怎么用GAN训练自己数据生成新的图片”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用GAN训练自己数据生成新的图片”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、读取数据问题# M
2023-07-05

利用JAVA如何根据概率生成随机数

这期内容当中小编将会给大家带来有关利用JAVA如何根据概率生成随机数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体方法如下:import java.util.ArrayList;import java
2023-05-31

json数据如何利用JSONObject进行生成并解析

json数据如何利用JSONObject进行生成并解析?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. json数据类型类型描述Number数字型String字符串型Bo
2023-05-31

如何利用Python实现自动生成数据日报

这篇文章主要讲解了“如何利用Python实现自动生成数据日报”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用Python实现自动生成数据日报”吧!需求详解朋友的需求是这样的,他们平时的
2023-07-02

如何利用MySQL数据库技能在职业生涯中取得更大成功?

如何利用MySQL数据库技能在职业生涯中取得更大成功?导语:MySQL是一种常用的开源关系型数据库管理系统,被广泛应用于企业级应用和个人项目中。在职业生涯中,熟练掌握MySQL数据库技能不仅有助于提高工作效率,还能够为个人带来更多的机会和发
2023-10-22

MySQL中如何自动生成测试数据

MySQL中可以通过以下几种方法来自动生成测试数据:使用INSERT INTO语句插入数据:可以编写INSERT INTO语句来手动插入测试数据。例如:INSERT INTO table_name (column1, column2) VA
MySQL中如何自动生成测试数据
2024-04-30

Qt数据库如何实现通用数据生成器

这篇文章将为大家详细讲解有关Qt数据库如何实现通用数据生成器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言有两种应用场景需要用到数据生成器,一种是需要测试数据库性能,比如在100万条和1000万条
2023-06-29

如何在Java中利用iTextPDF生成一个PDF文件

这篇文章主要介绍了如何在Java中利用iTextPDF生成一个PDF文件,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!Java可以用来干什么Java主要应用于:1. web开发;2. Android开发
2023-06-06

IDEA中如何根据数据库自动生成实体类

这篇文章主要介绍“IDEA中如何根据数据库自动生成实体类”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“IDEA中如何根据数据库自动生成实体类”文章能帮助大家解决问题。1. IDEA连接数据库点击右侧
2023-07-05

PHP7中的生成器:如何高效地处理大量数据和生成结果?

PHP7中的生成器:如何高效地处理大量数据和生成结果?摘要:PHP是一种流行的服务器端编程语言,用于开发Web应用程序和处理数据。在处理大量数据和生成结果时,效率是一个重要的因素。PHP7引入了生成器的概念,通过生成器可以高效地处理大量数据
2023-10-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录