[阅读笔记27][Pix2Struct]Screenshot Parsing as Pretraining for Visual Language Understanding

这篇论文是谷歌在23年4月发表的,它所提出的Pix2Struct是一个图像生成文本的模型。

作者的第一个贡献就是提出的预训练策略,用遮盖住的网页截图来预测其对应的HTML,如右图所示。第二个贡献在于为ViT引入了可变分辨率的输入表示。第三个贡献点引入了新的微调策略,将文本prompt直接渲染在图像上方,无缝地集成了视觉和语言输入。

模型的结构是基于ViT的图像编码器加文本解码器,对于模型的输入进行了一些改变以适应各种分辨率的图像输入。传统ViT会将输入图像缩放到定义好的分辨率,如下面左图所示,这会带来两个缺点,首先是图像中的文字、ui会发生畸变,这不利于对这些元素的识别。其次就是预训练阶段只观察到一个特定的分辨率,之后迁移到一些需要更高分辨率的下游任务是很困难的。
但是作者这里对ViT输入做了一些改进,首先等比例缩放图像,保证固定尺寸的patch个数能够达到最大序列长度,之后使用二维绝对位置嵌入。这样有两个好处,首先可以应对极端的图像长宽比,其次可以实时修改序列长度和分辨率。

预训练时使用自监督的网页截图和其HTML来作为训练数据,另外为了更好地上下文建模,作者还对网页中50%的文字进行了mask。整体流程如下图所示。
这种预训练策略集成了另外几个预训练策略,预测截图上未遮挡的部分类似于OCR,预测被遮挡的部分类似完形填空,预测图像标签的alt_text属性类似图像转caption的过程。

在正式预训练之前还需要一个热身阶段,这是因为直接预训练会导致训练过程不稳定且学习缓慢。而通过课程学习这种方法先在一个简单的任务上进行训练有两点好处,首先是模型训练更稳定了,且收敛更快了,然后就是微调之后性能更好了。
热身时训练任务就是下图展示的这样,从BooksCorpus抽取不超过128个字节的文本,然后设置随机颜色随机字体,让模型根据截图来预测实际文本。

微调过程比较简单,主要是对于不同下游任务进行要数据预处理。对于生成Caption的任务不需要特别处理,对于VQA类的任务将问题直接渲染在图像上方。右上方是一些输入图像示例。下方表格是微调所使用的数据集以及任务描述。

最后是结果展示,左上方是对于输入图像处理方式的实验,Variable即作者本篇中提到的方法,Padded就是不改变图像原始长宽比,但是填充至要求的分辨率,这种方法不会扭曲图像,但会牺牲有效分辨率,Stretched是把图像拉伸至要求的分辨率,这种方法会扭曲图像上的文本信息,不利于后续的训练。
右上方是预训练策略的一些消融,分别考虑了热身、遮盖文本以及截图解析这三部分的影响,可以看到截图解析是相当重要的,热身和遮盖文本均能带来小幅性能提升。
最下方是与其他模型的性能对比,在纯视觉方法(输入仅图像)中,Pix2Struct获得了9项任务中8项任务的最优表现。考虑到其他方法的话也能取得6项任务的SotA。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值