前端设计图转代码,西安交大表示复杂界面也能一步步搞定

卷积神经网络在图像处理上无与伦比,它可以从图像抽取到非常精炼的高级语义特征,这些信息不论是做分类还是做定位都没问题。但如果我们利用这些特征生成用户界面代码呢?那么就需要同样强大的模型将这些高级特征解码为一条条代码。最近西安交通大学提出一种用户界面转代码的新算法,该算法根据代码的层级特性构建了一种基于注意力的强大解码器。

使用机器学习技术自动生成图形用户界面(GUI)代码是一个相对较新的研究领域。通常,按照设计编写 GUI 对前端开发者来说是一项耗时又繁琐的工作,因为这使得他们无法投入更多的时间来开发软件的实用功能和逻辑。因此,构建一个将 GUI 原型自动转化为对应编程代码的系统是非常有前景的。

近期人们使用机器学习技术自动生成人类可读格式的程序,它们使用梯度下降从输入-输出样本中导出源代码。然而,它们的性能被证明还不如基于离散搜索的传统技术,这一技术一直在编程语言社区得到广泛哦使用。另一个同类研究是 DeepCoder,该系统尝试利用统计预测来增强传统搜索技术,以生成计算机程序。然而,它对复杂编程语言建模的能力受限于其对特定领域语言(DSL)的依赖。

对于从视觉输入生成代码的任务,目前只有为数不多的几项研究,而其中,与本文研究最相似的是 pix2code。pix2code 采用反馈机制,其中解码过程可以通过两种不同级别的 LSTM 迭代进行:「编码」LSTM,对已经生成的代码序列进行编码以减轻「解码」LSTM 学习长序列关系的负担。「解码」LSTM,用于代码序列生成,然后将解码 token 序列返回给「解码」LSTM 以形成反馈循环。通过采用反馈机制,pix2code 能够生成比其它基于单流程的方法长得多的单词/token 序列。但是,它们的方法需要预先固定「编码」LSTM 可以生成的最大序列长度。也就是说,代码长度范围需要预先指定,这降低了该方法的可拓展性和泛化能力。该方法的另一个明显缺陷是,它没有把 GUI 及其代码的层次结构纳入考虑,这限制了其生成准确图形程序的性能。

为了解决这些问题,研究者们提出了一种用于自动生成图形编程的新方法。它不仅能很好地解决长期依赖性问题,同时还能通过将代码生成过程以层级的方式表示出来而捕捉到代码的层级结构。研究者们的新方法使用层级解码器来推理代码序列,并一个接一个模块地生成图形源代码。

下图 1 展示了 GUI 和对应代码的示例,同时也展示了将 GUI 划分为不同模块的方法。DSL 的详细代码生成过程如下所示:首先第一阶段的 LSTM 会用于解码模块级别的图像视觉信息,其中该 LSTM 的每一个隐藏状态都包含了这个模块的一般上下文信息。然后将第一阶段 LSTM 的隐藏状态和图像的卷积特征输入到注意力模型以选择最重要的局部卷积特征,这些局部卷积特征会进一步馈送到第二阶段的 LSTM,并作为上下文信息以为对应的模块生成代码。

图 1:给定一张 GUI 截屏图像后,研究者新模型所生成的代码示例。其中 (a) 为输入 GUI,它会以某些方式分割为 5 个模块。(b) 展示了模型根据 5 个模块所对应生成的 DSL 代码,最后 (c) 为根据前面所生成的 DSL 代码而重新渲染的 GUI。

研究者在 pix2code 所提供的基准数据集进行了测试,且实验结果表明他们的方法是非常高效的:他们的模型在所有三种子数据集(IOS、安卓和网页端)都比目前最优的方法要好。此外为了进一步说明他们提出的模型在处理复杂的 GUI 时有更强的优势,他们构建了一个新数据集,该数据集包含具有更多图形元素的 GUI 截图,且图形元素的样式和空间布局更加多样化。研究者表示在新的复杂数据集上,他们的方法会以更大的优势好于其它对比的方法。

论文:Automatic Graphics Program Generation using Attention-Based Hierarchical Decoder

论文地址:https://arxiv.org/pdf/1810.11536.pdf

摘要:近期深度学习的研究进展使得利用编码器-解码器框架自动地将图形用户界面(GUI)截图转换为代码变得可能。尽管常用的图像编码器(例如 CNN 网络)能提取足够的图像特征,将这些抽象图像特征解释为数百代码符号对基于 RNN 的代码生成器而言是很大的挑战。考虑到用于描述 GUI 的代码通常是分层的结构,我们提出了一种基于注意力的代码生成模型,它可以用更精细级别的细节描述 GUI 图像,同时也可以生成和 GUI 的图形元素的分层展开一致的分层结构化代码。我们的模型遵循编码器-解码器框架,所有的组件都能以端到端的方式联合训练。实验结果表明我们的方法在公开 GUI-代码数据集和我们提出的数据集上都超越了其它当前最佳方法。

本文提出的方法

我们的方法将一个 GUI 截图作为输入,生成编程语言来描述它,并被设计为能利用 GUI 和图形程序的分层特征。图 2 展示了我们的基于注意力的分层代码生成模型。我们首先使用从 CNN 得到的中间滤波器响应来构建图像的高级抽象视觉表征,由ν表示,然后将其输入到两个层级的分层 LSTM:一个 block LSTM 和一个 token LSTM。block LSTM 接收图像的视觉特征,然后确定用多少代码块来生成最终的程序。block LSTM 的隐藏状态 h^block_t 在每个时间步 t 被馈送到一个注意力模型作为引导向量来选择视觉特征图中最重要的子区域。给定选取的视觉特征作为语境,token LSTM 生成对应代码块的代码。

图 2:我们提出的用于自动生成图形程序的模型概览。输入 GUI 截图首先被馈送到 CNN 获取高级视觉特征。所有的视觉特征被投影为 R^D,经过池化得到紧凑的图像表征,然后被馈送到 block LSTM 作为输入。block LSTM 确定生成基于 p_t 的代码块数量,并生成引导向量 h^block_t,再被馈送到注意力模型来选择特定 CNN 特征,以输入第 t 个 token LSTM 来生成第 t 个代码块的代码。

使用分层 LSTM 使得以端到端的方式训练整个模型成为可能。训练数据由 (x,y) 对构成,其中 x 代表输入 GUI 截图,y 代表 GUI 的对应代码。和 pix2code 中的方法不同,其中使用了一个固定尺寸的滑动窗口来获取代码片段,再在不同的训练迭代中馈送到「编码器」LSTM 中,我们的方法仅需要馈送一次完整的代码到模型中。

实验

我们在两个数据集上实现了该论文提出的自动图编程生成模型,每个数据集都由 GUI 截图与对应的源代码组成。

第一个是由 pix2code 论文给出的公开数据集 PixCo;

第二个是我们自己的数据集:PixCo-e 数据集。

我们首先重新把输入图像的大小改为 256×256,然后对像素值进行归一化。在编码部分,为了进行更好地压缩,我们采用 pix2code 论文中同样基于 CNN 的编码架构,它包含 3 个宽度分别为 32、64、128 的卷积层,和两个全连接层。在解码部分,模块 LSTM 和 tokenLSTM 的输入维度都设定为 512,sigmoid 被用作非线性激活函数。此外,因为我们的 token 词汇很小,我们直接使用带有 one-hot 编码向量的 token 级别的语言模型。

在训练流程中,我们使用 Adam 算法进行模型更新,mini-batch 大小为 128。我们把模型的学习率设定为 0.001,dropout 率设定为 0.5。使用单个英伟达 TITAN X GPU,整个训练流程在 PixCo 数据集上大约花费 3 小时,在 PixCo-e 数据集上大约花费 6 小时。

图 3:我们的模型在 PixCo 数据集上的定性结果。黑色代表我们的模型生成的 DSL 代码,蓝色的是真实值 DSL 代码,GUI 截图如图中所示。a、b、c 分别代表 iOS、安卓和 Web 平台。

图 4:随着时间推移变化的注意力。随着模型生成每个模块,其注意力有所改变,从而反映出图像的相关部分。亮色区域表示注意力所在,暗色区域注意较少。橘色代码是当前步骤生成的模块。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

短视频/直播电商部门岗位职责及绩效考核指标管理实施办法|短视频运营岗位职责,直播电商部门管理,直播电商部门绩效考核,短视,频/,直播,电商,部门,岗位职责,绩效,考核,指标,管理,实施办法
短视频/直播电商部门岗位职责及绩效考核指标管理实施办法
在线药店设计书(范文)|在线药店设计书,在线药店设计,在线药店,在线,药店,设计书,范文
在线药店设计书(范文)
x升电子有限公司商务网站项目设计书|商务网站项目设计书,商务网站项目,商务网站,瑞升电子有限公司,x升,电子,有限公司,项目,设计书
x升电子有限公司商务网站项目设计书
必通网上考试书店项目设计书(范文)|必通网上考试书店项目设计书,网上考试书店项目设计书,网上考试书店项目设计,网上考试书店项目,必通,网上,考试,书店,项目,设计书,范文
必通网上考试书店项目设计书(范文)
(有详细评估的范文)E-WORK网络实习平台及线下实习教育|网络实习平台,线下实习教育,E-WORK网络实习平台,详细,评估,范文,work,网络,实习,平台,线下,教育
(有详细评估的范文)E-WORK网络实习平台及线下实习教育
(范文)网上内衣店项目设计书|内衣店项目设计书,网上内衣店项目设计书,内衣店项目设计,范文,网上,内衣,项目,设计书
(范文)网上内衣店项目设计书
**鞋业公司  开拓电子商务和校园市场  营销策划方案|鞋业营销策划,鞋业营销策划方案,**,鞋业,公司,开拓,电子商务,校园,市场,营销策划,方案
**鞋业公司 开拓电子商务和校园市场 营销策划方案
视频伪原创处理:短视频搬运处理方法步骤及图文视频深度创作处理|视频搬运方法,视频搬运技巧,视频伪原创,图文视频技巧,搬运,视频,处理,步骤,图文,原创,短视频搬运,短视,方法,深度,创作
视频伪原创处理:短视频搬运处理方法步骤及图文视频深度创作处理

历史上的今天:04月20日

SEO优化怎么做如何提高效果(怎样快速定位客户)

SEO优化怎么做如何提高效果(怎样快速定位客户)在做SEO的过程中,我们总是会沉浸在“盲目进行时”很长一段时间里,总是停不下来脚本去思考,我们近期的SEO优化工作,是否是徒劳,而仍然日复一日的坚持!因此,我们认为SEO人员在特定周期内,开启网站优化工作的时候,我们应该多加思考。那么,SEO人员,如何做好网站SEO优化工作?根据以往SEO优化的经验,将通过如下内容阐述:1、竞争分析竞争对手是自己最好

微淼商学院筑梦队在线学习团队带队经验分享

微淼商学院筑梦队在线学习团队带队经验分享—————87 班筑梦队队长张小花应牛老师的邀请,让我分享一下带队经验,我借此机会,回顾这八周以来的学习和成长历程,希望对大家有所帮助。在一开始参与组长竞选时,我没考虑太多,只想通过组长的担子,来倒逼自己认真学完这个课程,但当我当上组长后,看到群里的同学们,学霸级水平、职场精英,尤其在起队名时,贡献的多个创意都让我觉得,可能就我水平最低,这让我觉得压力很大,

松耦合型在线学习团队带队经验分享

松耦合型在线学习团队带队经验分享应王可老师的邀请,让我分享一下带队的经验。但也正好借此机会回顾一下这段时间的经历。希望能对大家有所帮助。在参与组长竞选的过程上,更多的还是抱着重在参加的态度,老师在决定组长人选前,单独与我进行了沟通。看到老师的慎重选择,以及班里有各路学霸和精英, 这让我感到组长的担子挺重的。怎样通过组队的方式让大家能够坚持学习下来?会遇到什么样的问题?而且大家素未谋面,时间和节奏也

SEO优化怎么做(分享9大策略和技巧)

SEO优化怎么做(分享9大策略和技巧)在互联网时代,这是网站推广的公司至关重要。网站优化是网站建设的重要环节。第一个网站的构建,它揉详细,合理的优化策略是非常重要的。那么,什么是优化如何有效的网站?今天将共享优化策略九。1.关键字策略识别主题(核心关键词)的网站是至关重要的。当关键字是确定的,整个网站将不得不解决这个核心关键词。2.域名政策包括在域名关键字,连字符“-”突出关键字是一种很常见的域名

社区营销组长手册

社区营销组长手册班级架构图:组长手册:指导思想:利他是最好的利己!我们为什么要设立组长呢?因为一个班级有90多人,在实际教学过程中,老师无法顾及到每位同学的学习进度和效果,为了保证更好的学习效果,所以需要组长来协助,及时跟进跟进每位小组成员的学习进度,了解小组内每位同学在学习过程中是否遇到了困难和问题,组长可以解决的,及时解决;解决不了的,和老师反馈,寻求帮助。组长的意义在哪里呢?我们希望组长能做

热门专题

安徽开放大学|安徽开放大学报名,安徽开放大学报考,安徽开放大学,什么是安徽开放大学,安徽开放大学学历,安徽开放大学学费,安徽开放大学报名条件,安徽开放大学报名时间,安徽开放大学学历,安徽开放大学专业
安徽开放大学
卓越综合高中|卓越综合高中
卓越综合高中
外贸网站建设|外贸网站建设,英文网站制作,英文网站设计,美国主机空间,外贸建站平台,多语言网站制作
外贸网站建设
国家开放大学|国家开放大学报名,国家开放大学报考,国家开放大学,什么是国家开放大学,国家开放大学学历,国家开放大学学费,国家开放大学报名条件,国家开放大学报名时间,国家开放大学学历,国家开放大学专业
国家开放大学
APP开发|app开发_app开发公司_app软件开发_专业app开发_云南app开发公司_app定制_原生app开发定制
APP开发
天麻的功效与作用吃法|天麻的功效与作用,天麻的功效与作用吃法,天麻炖什么治头痛最好,天麻的功效与作用禁忌,天麻多少钱一斤,天麻的功效与作用吃法及禁忌,天麻怎么吃效果最好,天麻粉的功效与作用,天麻怎么吃
天麻的功效与作用吃法
一年制中专|中专学历,中专是什么学历,中专是什么,中专有什么专业,中专升大专,一年制中专
一年制中专
综合高中|云南综合高中,昆明综合高中,综合高中能考本一吗,综合高中和普通高中的区别,综合高中是什么意思,综合高中能参加全国统一高考吗,综合高中可以考哪些大学,综合高中的学籍是什么
综合高中

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部