PreSTU:一个专门为场景文本理解而设计的简单预训练模型

news/2024/5/20 9:43:58/文章来源:https://blog.csdn.net/devcloud/article/details/128344722
摘要:在视觉与语言(V&L)模型中,阅读和推理图像中的文本的能力往往是缺乏的。我们如何才能学习出强大的场景文本理解(STU)的V&L模型呢?

本文分享自华为云社区《场景文本理解预训练PreSTU》,作者: Hint 。

【论文摘要】

在视觉与语言(V&L)模型中,阅读和推理图像中的文本的能力往往是缺乏的。我们如何才能学习出强大的场景文本理解(STU)的V&L模型呢?本文提出了PreSTU,一个专门为场景文本理解而设计的简单预训练模型。PreSTU将一个简单的OCR感知预训练目标与一个具有现成OCR信号的大规模图像-文本数据集相结合。我们在TextVQA、TextCaps、ST-VQA和VizWiz-VQA上经验性地证明了这个预训练目标的优越性。我们还研究了哪些因素会影响STU的性能,其中我们强调了图像分辨率和数据集规模在预训练中的重要性。

【出发点】

在真实世界中的视觉语言任务中,有大量的图像是包含场景文本的。理解图像中的文本对于视觉语言任务来说,往往是重要的,例如发票识别整理、机器人理解环境等。而现有模型经常忽略这一信息。通过对图像OCR信号引入,可以提升视觉语言模型对图像的理解能力。论文基于大规模的图像文本数据集,设计了进行场景文本理解的预训练模型PreSTU。

【解决方案】

1. 引入一个OCR文本生成的预训练任务“SPLITOCR”:给定图像patches,随机将OCR文本分为两个部分,给定第一部分,令模型预测第二部分的OCR文本。

2. 使用Prompt learning的方式,输入各个任务所对应的提示词,使得模型能够更好地适配下游任务。论文中使用image captioning和VQA两个任务。

【总体框架】

模型结构图

如图,模型整体是一个Encoder-Decoder结构,其中视觉encoder采用ViT-B/16 (Dosovitskiy et al., 2021),语言encoder-decoder采用mT5-Base (Xue et al., 2021)。ViT是一个基于Transformer encoder的,在大规模图像分类数据集上预训练的模型。mT5是T5模型(Raffel et al., 2020)的多语言版本,在大规模多语言数据集上预训练,它对OCR识别结果当中出现的识别错误比较健壮,因为使用了wordpiece的方法。

在预训练阶段,将图像中场景文本的OCR信息与图像特征一同输入Encoder,可以使OCR文本与视觉环境更好的联系在一起。通过对余下的OCR文本的预测,模型能够学习出一定的场景文本识别能力,这使得模型同时对视觉和文本两种模态的建模能力得到提升。

【细节】

SPLITOCR任务

1. 目标:在预训练阶段使模型学习如何从图像中识别场景文本。

2. 具体步骤:

1) 首先将OCR文本按照在图中出现的位置排序(从左到右,从上到下);

2) 将OCR文本随机切分为2部分,分别作为输入和预测目标。值得注意的是,如果切分出的第1部分的长度为0,则SPLITOCR任务就退化为了一个传统的OCR任务。

3. 优势:

1) 令模型预测部分OCR文本,使得模型具备一定的完成OCR任务的能力,从而能够增强其阅读场景文本的能力;

2) 输入时引入部分OCR文本,使得输入的形式接近下游任务的形式(都是文本),更便于迁移学习;

3) 便于与其他训练目标相结合,例如image captioning。

预训练数据集

CC15M:是CC3M (Sharma et al., 2018)和CC12M (Changpinyo et al., 2021)的并集。数据集的形式是<图像, 标题>对。进行SPLITOCR目标时,采用Google Cloud OCR系统获取OCR文本的信息。

Fine-tuning阶段

所有下游任务都具有这样的形式:输入是图像+文本,输出只有文本。使用Google OCR获取图片中的场景文本。

进行image captioning任务时,输入为<图像,提示词,OCR token>,输出目标为图像标题;进行场景文本VQA任务时,输入为<图像,提示词,问题,OCR token>,输出为问题的回答。

【实验】

主要结果

实验采用4个benchmarks:TextVQA (Singh et al., 2019) 、ST-VQA (Biten et al., 2019) 、VizWiz-VQA (Gurari et al., 2018) 、TextCaps (Sidorov et al., 2020) 。实验Baseline采用去掉SPLITOCR预训练的本模型PreSTU,同时也对比了以下预训练方法:TAP (Yang et al., 2021) 、Flamingo (Alayrac et al., 2022) 、GIT (Wang et al., 2022a) 。实验结果如表所示。

主要结果

采用SPLITOCR预训练后,PreSTU在所有指标上都相对baseline有提升,这证明了SPLITOCR的有效性,能够赋予模型场景文本阅读的能力。

对比其他模型:PreSTU模型参数和数据量比TAP多,结果也更高一些,除了TextVQA略低;参数量和数据量与GITL基本一致,在所有指标高于GITL;参数量和数据量比Flamingo和GIT小,但结果上没有显著地低。

消融实验

1. 对比SPLITOCR目标与传统OCR目标(TextCaps CIDEr指标):如表,SPLITOCR比OCR预训练的模型结果高,由126.7提升到134.6;

OCR与SPLITOCR对比

2. 在Fine-tuning阶段去掉输入的OCR文本:如表,去掉OCR文本后,各模型都有下降,但baseline模型结果下降更多。OCR/SPLITOCR预训练的模型即便Finetune时不使用OCR文本,结果也比baseline高(116.6/110.4 > 99.6)。这说明SPLITOCR预训练目标能够很好的使模型获得场景文本的阅读能力。

Fine tuning时去掉OCR输入的影响

3. 预训练时的图像分辨率:如表,高分辨率的图像会获得更好的结果。

图像分辨率的影响

4. 预训练的数据规模:如表,数据规模越大,结果越好。

预训练数据规模的影响

【结论】

1. SPLITOCR预训练目标能够使模型的场景文本阅读能力得到提升,从而提高下游任务的结果

2. 对于PreSTU模型来说,预训练图像的分辨率以及数据量很重要。

• 论文地址:https://arxiv.org/abs/2209.05534

【参考文献】

1. Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, and Neil Houlsby. 2021. An image is worth 16x16 words: Transformers for image recognition at scale. In ICLR.

2. Linting Xue, Noah Constant, Adam Roberts, Mihir Kale, Rami Al-Rfou, Aditya Siddhant, Aditya Barua, and Colin Raffel. 2021. mT5: A massively multilingual pre-trained text-totext transformer. In NAACL.

3. Piyush Sharma, Nan Ding, Sebastian Goodman, and Radu Soricut. 2018. Conceptual Captions: A cleaned, hypernymed, image alt-text dataset for automatic image captioning. In ACL.

4. Soravit Changpinyo, Piyush Sharma, Nan Ding, and Radu Soricut. 2021. Conceptual 12M: Pushing web-scale imagetext pre-training to recognize long-tail visual concepts. In CVPR.

5. Amanpreet Singh, Vivek Natarajan, Meet Shah, Yu Jiang, Xinlei Chen, Dhruv Batra, Devi Parikh, and Marcus Rohrbach. 2019. Towards VQA models that can read. In CVPR.

6. Ali Furkan Biten, Ruben Tito, Andres Mafla, Lluis Gomez, Marçal Rusinol, Ernest Valveny, C.V. Jawahar, and Dimosthenis Karatzas. 2019. Scene text visual question answering. In ICCV.

7. Danna Gurari, Qing Li, Abigale J. Stangl, Anhong Guo, Chi Lin, Kristen Grauman, Jiebo Luo, and Jeffrey P. Bigham. 2018. VizWiz Grand Challenge: Answering visual questions from blind people. In CVPR.

8. Oleksii Sidorov, Ronghang Hu, Marcus Rohrbach, and Amanpreet Singh. 2020. TextCaps: a dataset for image captioning with reading comprehension. In ECCV.

9. Zhengyuan Yang, Yijuan Lu, Jianfeng Wang, Xi Yin, Dinei Florencio, Lijuan Wang, Cha Zhang, Lei Zhang, and Jiebo Luo. 2021. TAP: Text-aware pre-training for text-vqa and text-caption. In CVPR.

10. Jean-Baptiste Alayrac, Jeff Donahue, Pauline Luc, Antoine Miech, Iain Barr, Yana Hasson, Karel Lenc, Arthur Mensch, Katie Millican, Malcolm Reynolds, et al. 2022. Flamingo: a visual language model for few-shot learning. arXiv preprint arXiv:2204.14198.

11. Jianfeng Wang, Zhengyuan Yang, Xiaowei Hu, Linjie Li, Kevin Lin, Zhe Gan, Zicheng Liu, Ce Liu, and Lijuan Wang. 2022a. GIT: A generative image-to-text transformer for vision and language. arXiv preprint arXiv:2205.14100.

点击关注,第一时间了解华为云新鲜技术~

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何进行系统设计

文章目录1. 理解需求1.1 功能性需求1.2 非功能性需求2. 系统设计3. Api设计4. 数据模型设计5. 高可用、高性能、可监控等数据密集型应用设计凤凰架构 重点&#xff1a;自己整理的非权威&#xff0c;不具代表性&#xff0c;自己去取舍哈。 1. 理解需求 1.1 功能性需求 解决什么…

深度学习 Day22——利用LSTM实现火灾温度预测

深度学习 Day22——利用LSTM实现火灾温度预测 文章目录深度学习 Day22——利用LSTM实现火灾温度预测一、前言二、我的环境三、LSTM介绍1、长期依赖的问题2、LSTM3、LSTM结构四、前期工作1、设置GPU2、导入数据3、数据可视化五、构建数据集1、设置X、y2、设置归一化3、划分数据集…

宽凳科技完成超亿元B1轮融资 率先突破高精地图量产落地

近日&#xff0c;国内领先的高精地图及其智能应用综合解决方案服务商宽凳科技宣布完成B1轮超亿元融资。本轮融资由聚焦于新能源汽车产业链投资及新兴技术产业投资的紫峰资本与信益资本联合领投&#xff0c;崇业投资跟投&#xff0c;同时本轮资本引入了德清政府战略投资&#xf…

Vue3 —— 使用Vite配置环境变量

文章目录 一、为什么要配置环境变量?二、在Vite中配置环境变量 1.环境变量和模式2.环境变量3.生产环境替换4.env 文件总结一、为什么要配置环境变量? 在一个产品的前端开发过程中&#xff0c;一般来说会经历本地开发、测试脚本、开发自测、测试环境、预上线环境&#xff0c;然…

如何计算香港服务器公网带宽的实际下载速度?

如何计算香港服务器公网带宽的实际下载速度?下面分享香港服务器带宽实际下载速度对照表及计算方法&#xff1a; 香港服务器带宽实际下载速度计算方法 香港服务器以1Mbps公网带宽为例&#xff0c;香港服务器1M带宽实际下载速度峰值128KB/S&#xff0c;为什么不是1M/S&#xff0…

educoder:实验13 算法-穷举法和二分法

第1关&#xff1a;百钱百鸡 任务描述 我国古代数学家张丘建在《算经》一书中提出的数学问题&#xff1a;鸡翁一值钱五&#xff0c;鸡母一值钱三&#xff0c;鸡雏三值钱一。百钱买百鸡&#xff0c;问鸡翁、鸡母、鸡雏各几何&#xff1f; 相关知识 为了完成本关任务&#xff…

《纳瓦尔宝典》笔记三——做自己真正感兴趣的事情

你合上书本&#xff0c;留在你脑子里的才真正是你的智慧 目录 一、开始让你兴致盎然&#xff0c;后来又让你觉得索然无味了吗 二、在“成为自己”这件事“上&#xff0c;没有人比你做得好 三、专长无法被教授&#xff0c;但可以被学习 四、上学能带来什么 五、尽量做不需…

OM6621系列国产M4F内核低功耗BLE5.1大内存SoC蓝牙芯片

目录OM6621系列简介OM6621P系列芯片特性应用领域OM6621系列简介 随着5G与物联网时代的到来&#xff0c;智慧城市、电动出行、智能家居、可穿戴设备等应用高速发展&#xff0c;低功耗蓝牙技术在近几年智能化浪潮中的地位也尤为重要。OM6621系列的开发即是为解决国内低功耗蓝牙应…

[整型/浮点型二分算法详解]二分查找算法真的很简单吗

&#x1f3d6;️作者&#xff1a;malloc不出对象 ⛺专栏&#xff1a;《初识C语言》 &#x1f466;个人简介&#xff1a;一名双非本科院校大二在读的科班编程菜鸟&#xff0c;努力编程只为赶上各位大佬的步伐&#x1f648;&#x1f648; 目录前言一、二分查找是什么二、二分查找…

Linux操作系统的安全合规性检查和加固

1. 账号和口令 1.1 禁用或删除无用账号 减少系统无用账号&#xff0c;降低安全风险。 操作步骤 使用命令 userdel 删除不必要的账号。 使用命令 passwd -l 锁定不必要的账号。 使用命令 passwd -u 解锁必要的账号。 1.2 检查特殊账号 检查是否存在空口令和root权限的账号…

DSPE-PEG-N3,磷脂-聚乙二醇-叠氮 点击化学PEG试剂,可用于药物传递、基因转染和生物分子修饰

中文名称 叠氮聚乙二醇磷脂、磷脂聚乙二醇叠氮 简称 N3-PEG-DSPE、DSPE-PEG-N3 物理性质&#xff1a;米白色/白色固体或粘性液体取决于分子量。 溶剂&#xff1a; 溶于大部分有机溶剂&#xff0c;和水有很好的溶解性。 活性基团&#xff1a; N3 反应基…

C++ Reference: Standard C++ Library reference: Containers: map: map: find

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/find/ 公有成员函数 <map> std::map::find iterator find (const key_type& k); const_iterator find (const key_type& k) const;获取指向元素的iterator 在容器中搜索键值等于k的元素&…

和ChatGPT大战多个回合,我知道了这些真相

最近&#xff0c;ChatGPT在国内外社交平台上可谓是火出圈了。作为一款人工智能语言模型&#xff0c;它可以和人类以对话的方式进行互动&#xff0c;比你早已熟知的Siri&#xff0c;小度还有小爱同学要更加智能与专业。因为它除了回答问题外还能进行创作&#xff0c;比如写小作文…

服务器多用户共享Anaconda

实验室最近买了台服务器&#xff0c;这篇Blog用来记载一下给ubuntu 20.04的服务器安装一个共享的anaconda的步骤。 安装Anaconda 首先去anaconda的官网下载linux的安装包&#xff0c;推送到服务上。然后进行安装&#xff1a; sudo bash ./Anaconda3-2022.10-Linux-x86_64.sh…

病毒之Worm.Win32.AutoRun

题外话&#xff1a;在被奥密克戎包围的我(两个室友和我&#xff0c;一个低烧、一个咳嗽、就差我了&#xff0c;这属实是真被包围了丫)在和Worm.Win32.AutoRun决一死战… 本次Worm.Win32.AutoRun的来源&#xff1a; windows电脑上重装vscode&#xff0c;然后没有 mingw-get-setu…

Scala环境搭建

目录1&#xff09;安装步骤2&#xff09;测试3&#xff09;IDEA安装Scala 插件1&#xff09;安装步骤 1.首先确保 JDK1.8 安装成功 2.下载对应的 Scala 安装文件 scala-2.x.zip 3.解压 scala-2.12.11.zip&#xff0c;我这里解压到 F:\software 4.配置 Scala 的环境变量 …

全面解析若依框架(springboot-vue前后分离--后端部分)

1、 若依框架分解 - 启动配置 前端启动 # 进入项目目录 cd ruoyi-ui# 安装依赖 npm install# 强烈建议不要用直接使用 cnpm 安装&#xff0c;会有各种诡异的 bug&#xff0c;可以通过重新指定 registry 来解决 npm 安装速度慢的问题。 npm install --registryhttps://regist…

python 之 numpy图片处理 矩阵操作

目录 一&#xff1a;垂直方向翻转(行逆序) 二&#xff1a;水平方向翻转(列逆序) 三&#xff1a;垂直、水平方向翻转(行、列逆序) 四&#xff1a;调整亮度&#xff0c;变明亮*2.0 五&#xff1a;调整亮度&#xff0c;变暗 六&#xff1a;垂直方向裁剪 七&#xff1a;水平…

漏洞深度分析|Pgadmin 命令执行漏洞

项目介绍 PostgreSQL是世界上第四大流行的开源数据库管理系统&#xff0c;它在各种规模的应用程序中得到了广泛的使用。而管理数据库的传统方法是使用命令行界面(CLI)工具。 PostgreSQL的图形化用户界面(GUI)工具则可以帮助用户对数据库实现更好的管理、操纵、以及可视化其数…

kafka概念及部署

文章目录一.kafka1.kafka的概念2.Kafka的特性3.工作原理4.文件存储5.消息模式5.1点到点5.2订阅模式6.基础架构一.kafka 1.kafka的概念 Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、支持分区的&#xff08;partition&#xff09;、多副本的&#xff08;replica&a…