[阅读笔记] Pix2struct: screenshot作为视觉语言理解的预训练

[论文分享] Pix2struct: screenshot作为视觉语言理解的预训练

论文链接:https://arxiv.org/abs/2210.03347
模型部署:click here
请添加图片描述
在CV领域,尝尝需要解决将图片信息转化为可操作的数据或结构化表示。Google于2023年推出了开源项目Pix2struct,用于从图像中提取结构化信息,如表格、流程图等(图生文)。

模型

该模型的结构是基于ViT的图像编码器加文本解码器。
其核心基于Transformer(通常在NLP中表现出色)。它首先利用CNN对输入图像进行特征提取,然后将这些特征传递给Transformer,以生成对应图像的结构化描述。这种端到端的学习方式使得模型能够直接从像素数据中学习到复杂的模式和结构。

三点创新

  1. 创新1:提出一个新的预训练模型:用这盖住的网页截图来预测其对应的HTML。
  2. 创新2:为ViT引入了可变分辨率的输入表示。
  3. 创新3:引入了新的微调策略,将文本prompt直接渲染在图像上方,无缝集成视觉与语言输入。
    在这里插入图片描述
    但是作者这里对ViT输入做了一些改进,首先等比例缩放图像,保证固定尺寸的patch个数能够达到最大序列长度,之后使用二维绝对位置嵌入。这样有两个好处,首先可以应对极端的图像长宽比,其次可以实时修改序列长度和分辨率。

训练

预训练

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

warmup

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

Finetuning

微调过程较简单,是对于不同下游任务进行要数据预处理。对于生成Caption的任务不需要特别处理,对于VQA类的任务将问题直接渲染在图像上方。
在这里插入图片描述

结果

Pix2Struct在9个基准测试中有8个优于之前的可视化方法,其中6个优于SOTA测试结果。虽然GIT2的图像字幕预训练可以理解地帮助TextCaps,但截图解析转移到更广泛的下游任务。各个管道SOTA方法在第4节中描述,完整的结果在附录B中。
在这里插入图片描述
这项工作的更广泛目标是使视觉语言理解的预训练更接近基于文本的预训练,并为数据和模型缩放带来的类似好处铺平道路。

Attention

在进行复现尝试中,在某些下游任务比如 widget caption中,开源内容中缺少一个bounding box来描述header,部分下游任务没有开源,目前已知可复现的项目为DocVQA去进行conditional generation。

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用 PyTorch-CycleGAN-and-pix2pix 库来使用预训练好的模型。下面是一个简单的步骤示例: 1. 首先,确保你已经安装了 PyTorch-CycleGAN-and-pix2pix 库。你可以使用以下命令安装: ``` pip install git+https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix ``` 2. 下载预训练模型。你可以在 CycleGAN 和 pix2pix 的模型网页(https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix#model-checkpoints)上找到预训练模型的链接。下载并解压缩模型文件夹。 3. 创建一个配置文件。在模型文件夹中,复制并重命名 `test_opt.txt.example` 文件为 `test_opt.txt`。该文件用于配置测试参数。 4. 配置测试参数。打开 `test_opt.txt` 文件,并根据你的需求修改参数。重要的参数包括 `dataroot`(数据集的路径)和 `name`(模型名称)。 5. 运行测试脚本。使用以下命令运行测试脚本: ``` python test.py --dataroot ./path/to/dataset --name pretrained_model_name --model test_model_name ``` 确保将 `./path/to/dataset` 替换为你的数据集路径,`pretrained_model_name` 替换为你下载的预训练模型文件夹的名称,`test_model_name` 替换为你想要使用的测试模型的名称(如 `cycle_gan` 或 `pix2pix`)。 6. 查看结果。测试完成后,生成的结果将保存在模型文件夹中的 `results` 子文件夹中。 请注意,这只是一个基本的示例,你可能需要根据你的具体情况进行更多的配置和调整。你可以参考 PyTorch-CycleGAN-and-pix2pix 库的文档以获取更多详细信息和用法示例。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值