LayoutTransformer: Layout Generation and Completion with Self-attention

news2024/11/18 9:38:11

LayoutTransformer: Layout Generation and Completion with Self-attention (Paper reading)

Kamal Gupta, University of Maryland, US, Cited:41, Code, Paper

1. 前言

我们解决了在各种领域中(如图像、移动应用、文档和3D对象)进行场景布局生成的问题。大多数复杂场景,无论是自然场景还是人工设计的场景,都可以用简单组合的图形基元的有意义排列来表示。生成新的布局或扩展现有布局需要理解这些基元之间的关系。为此,我们提出了LayoutTransformer,这是一个新颖的框架,利用自注意力来学习布局元素之间的上下文关系,并在给定领域中生成新的布局。我们的框架可以从空集或初始种子基元集生成新的布局,并且可以轻松扩展以支持每个布局中的任意数量的基元。此外,我们的分析表明,模型能够自动捕捉基元的语义属性。我们提出了在布局基元的表示以及训练方法上的简单改进,以在非常多样化的数据领域(如自然图像中的物体边界框(COCO边界框)、文档(PubLayNet)、移动应用(RICO数据集)以及3D形状(PartNet))中展现出有竞争力的性能。

2. 整体思想

类似于NLP,只是把文本变成了布局,根据上一个词(布局)预测下一个词(布局)。

3.方法

在本节中,我们介绍了我们在布局生成问题上的注意力网络。我们首先讨论了不同领域的基元布局的表示方法。接下来,我们讨论了LayoutTransformer框架,并展示了如何利用Transformer来建模布局的概率分布。Masked Multi-headed Self-Attention 使我们能够学习布局基元之间的非局部语义关系,并且还为我们提供了处理可变长度布局的灵活性。

给定一个布局的数据集,一个布局实例可以被定义为一个包含n个节点的图G,其中每个节点i ∈ {1, . . . , n} 是一个图形基元。我们假设图是完全连接的,并让注意力网络学习节点之间的关系。节点可以与结构或语义信息相关联。对于每个节点,我们将与之相关联的信息投影到一个由特征向量si表示的d维空间中。需要注意的是,这些信息本身可以是离散的(例如部分类别),连续的(例如颜色)或多维向量(例如部分的有符号距离函数)在某个流形上。具体而言,在我们的ShapeNet实验中,我们使用一个多层感知机(MLP)将部分嵌入投影到d维空间,而在二维布局实验中,我们使用一个学习得到的d维类别嵌入,相当于使用一个带有零偏置的MLP将独热编码的类别向量投影到潜空间中。

使用离散变量表示几何形状: 我们对每个几何字段应用8位均匀量化,并使用分类分布对其进行建模。将连续信号离散化是先前在图像生成方面采用的一种方法,然而据我们所知,在布局建模任务中尚未被探索。我们观察到,即使将坐标离散化会引入近似误差,但它使我们能够表示任意分布,这对于具有强对称性的布局(如文档和应用程序线框图)特别重要。我们将每个基元的几何字段独立地投影到相同的d维空间中,以便将第i个基元在 R 2 R^2 R2中表示为( s i , x i , y i , h i , w i s_i, x_i, y_i, h_i, w_i si,xi,yi,hi,wi)。我们将所有元素连接为其参数的扁平序列。我们还附加了两个附加参数s⟨bos⟩和s⟨eos⟩的嵌入,用于表示序列的开头和结尾。现在,布局可以由一个由5n + 2个潜向量组成的序列表示。

在这里插入图片描述
LayoutTransformer以布局元素作为输入,并预测下一个布局元素作为输出。在训练过程中,我们使用教师强制(teacher forcing),即使用地面真值布局标记作为多头解码器块的输入。该块的第一层是一个掩码的自注意力层,它使模型只能看到前一个元素以预测当前元素。我们在每个布局的开头添加一个特殊的⟨bos⟩标记,并在末尾添加一个⟨eos⟩标记进行填充。

给定一个初始的K个可见基元(当从头开始生成时,K可以为0),我们的基于注意力的模型将可见节点的随机排列π = (π1, . . . , πK)作为输入,因此得到一个由d维向量 (θ1, . . . , θ5K) 组成的序列。我们发现这是一个重要的步骤,因为通过将基元表示分解为几何和结构字段,我们的注意力模块可以明确地为每个坐标维度分配权重。

在这里插入图片描述

4. 实验

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/634051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

后台管理系统模板 - zhadminvue

没事的时候写了一个后台管理系统模板:zhadminvue,欢迎大家提issue和PR,以及想要添加一些有意思的功能模块,在没事的时候我也会加进去~ github:https://github.com/iotzzh/zh-admin-vue gitee: https://gitee.com/iotzzh/zh-admin.…

算法模板(4):动态规划(1)

动态规划 闫氏 d p dp dp 分析法: 集合:怎么划分。通常以集合的划分来定义数组。 f ( i , j ) f(i, j) f(i,j):选前 i i i 个物品. 体积不超过 j j j。全部初始化为 0 0 0; j j j 非负时状态才合法。体积恰好是 j j j。 f…

Springboot集成magic-api

目录 1、前言 2、springboot集成magic-api 2.1、添加maven依赖 2.2、application.yml配置 2.3、编写测试接口 2.4、启动程序,访问接口 2.5、magic-api脚本 3、magic-api其他语法 4、注意事项 1、前言 今天项目中遇到一个问题,springboot后端项目…

《机器学习算法竞赛实战》-chapter3数据探索

《机器学习算法竞赛实战》学习笔记,记录一下自己的学习过程,详细的内容请大家购买作者的书籍查阅。 数据探索 数据探索是竞赛的核心模块之一,贯穿竞赛始终,也是很多竞赛胜利的关键。 在竞赛中如何确保自己准备好竞赛使用的算法模…

cmake 添加一个库

目录 项目格式 cmake基本语法 添加库 链接库 添加库的头文件 cmake打印字符串 库的cmake文件 cmake生辰库 mian函数中使用 让库成为可选的 cmake基本语法 设置option变量 cmake设置条件链接库 链接库 添加头文件 修改cmake配置文件 修改引用的源码 项目格式 …

MM32F3273G8P火龙果开发板MindSDK开发教程12 -获取msa311加速器的敲击事件

MM32F3273G8P火龙果开发板MindSDK开发教程12 -获取msa311加速器的敲击事件 1、功能描述 msa311可以识别单击、双击事件,类似手机上的点击返回,双击截屏功能。 单击,双击都能产生中断事件。 中断事件产生后,从对应的状态寄存器读…

算法模板(4):动态规划(3) 做题积累(1)

动态规划 1. 背包 1. 1024. 装箱问题 题意:有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积(正整数)。要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。别学那么死板。…

2023夏-PAT甲级题解

目录 总结: A-1 Trap Input Specification: Output Specification: Sample Input: Sample Output: 题意: 思路: AC代码: A-2 Queue Using Two Stacks Input Specification: Output Specification: Sample Input: Sa…

SpringBoot 项目部署笔记

1. 直接通过 jar 包部署 本地直接 build package 成 jar 包,上传至服务器 ps -ef|grep XXX #查找项目进程sudo kill -9 19727 #杀掉项目进程nohup sudo java -jar *.jar >> app.log & #后台运行 jar &代表让该命令在后台执行 3. 通过 Jenkins …

pytorch笔记:conv2d

来自B站视频,API查阅,TORCH.NN nn.conv2d 中一般 kernel_size 是小奇数,padding 设置为 k − 1 2 \frac{k-1}{2} 2k−1​(实际上padding的是 k − 1 k-1 k−1,因为参数的意义是左右各padding),

探索Xiotman:物联网软件架构的创新之路

文章目录 探索Xiotman:物联网软件架构的创新之路什么是物联网什么是XiotmanXiotman的特点Xiotman的架构Xiotman的使用安装env工具获取源代码使用其他教程 Xiotman的开源地址 总结 探索Xiotman:物联网软件架构的创新之路 什么是物联网 🚀&am…

高燃盛会全程回顾|鸿雁加速推进数字转型之路

6月10日,以“双翅齐振雁南飞”为主题的鸿雁电器数字化营销启动大会暨中山古镇鸿雁全屋智能体验中心开业庆典,在中山古镇华艺广场圆满落幕。 古镇镇长阮志力、华艺集团董事长区锦标、华艺广场总经理丁瑜、古镇灯饰传媒董事长曹利晖以及杭州鸿雁电器有限公…

spring boot + xxl-job 分布式任务调度

一、介绍 1、任务调度 1.1、什么是任务调度 我们可以先思考一下下面业务场景的解决方案: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。某财务系统需要在每天上午10点前结算前一天的账单数据,统计汇总。某电…

那年我头脑发热,选择了自动化,后来我掉入计算机的世界无法自拔

首先,小雅兰是22届高考考生,而且当时填报志愿也没有填报到计算机相关的专业去,小雅兰是自动化专业的学生,是由于一次偶然的机会,了解到了这个行业,对于写代码所带来的成就感,总之,我…

Java013——常见进制以及转换

一、常见进制 十进制 数字组成:0-9这十个数字组成,不能以0开头 进位规则:满10进1 int num1 10;//对应的十进制为10二进制 数字组成:0-1这两个数字组成,以0b或0B开头 进位规则:满2进1 int num2 0b1010;…

华为存储IA篇仿真器搭建

设备清单 编号 设备名 数量 备注 01 Windows系统主机 1台 为VMware提供安装位置 02 VMware软件 1份 提供存储仿真器的部署环境 03 仿真器文件 1份 用于部署estor虚拟机 【注意】:暂无注意事项 一、下载安装文件并配置虚拟机设备清单 1.1…

TypeScript 自定义装饰器

(预测未来最好的方法就是把它创造出来——尼葛洛庞帝) 装饰器 装饰器一种更现代的代码模式,通过使用的形式注入在属性,寄存器,方法,方法参数和类中,比如在Angular,Nestjs和midway等…

大数据Doris(三十九):Spark Load 注意事项

文章目录 Spark Load 注意事项 Spark Load 注意事项 1、现在Spark load 还不支持 Doris 表字段是String类型的导入,如果你的表字段有String类型的请改成varchar类型,不然会导入失败,提示 type:ETL_QUALITY_UNSATISFIED; msg:quality not good enough to cancel 2、使用Spa…

无敌!我用【C语言】手搓出了一个体系完整的【员工管理系统】还能玩游戏听音乐?(超详细,附完整源码)

博主简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的人。 博主主页:陈童学哦 所属专栏:C语言程序设计实验项目 如果本文对你有所帮助的话,还希望可以点赞👍收藏📂支持一下…

Linux——IP协议1

目录 协议头格式 如何封装和解包 如何交付(分用) 报头每一个字段 分片是怎么做到的 应用层解决的是数据使用的问题。 在传输层,网络层,数据链路层:解决的是网络通信的细节,将数据可靠的从A主机跨网络发…