PARSeq论文翻译

news2024/10/7 18:27:38

《Scene Text Recognition with Permuted Autoregressive Sequence Models》论文翻译

文章目录

  • 《Scene Text Recognition with Permuted Autoregressive Sequence Models》论文翻译
    • Abstract
    • 1、Introduction
    • 2、Related Work
    • 3、Permuted Autoregressive Sequence Models
      • 3.1、Model Architecture
      • 3.2、Permutation Language Modeling
      • 3.3、Decoding Schemes
    • 4、Results and Analysis

论文链接: https://arxiv.org/abs/2207.06966

代码地址:https://github.com/baudm/parseq

Abstract

PARSeq通过排列语言建模来学习具有共享权重的内部自回归语言模型的集合。它统一了上下文无关的非自回归和上下文感知的自回归推理,并使用双向上下文的细化迭代。

1、Introduction

场景文本识别(STR)是一项重要的视觉任务,但在部分文本无法阅读的情况下,例如遮挡,图像特征本身不够做出准确的推断。在这种情况下,语言语义通常用于帮助识别过程。上下文感知的STR方法包含了来自词表示模型或字典,或从数据中学习来进行序列建模。

序列建模能够结合图像特征和上下文语义学习端到端可训练语言模型(LM)。通过自回归(AR)约束在上下文语义上进行训练,这个上下文语义来自于过去而不是反方向。AR模型有两个固有的限制。首先,该模型只能在一个方向上学习依赖关系——通常是从左到右(LTR)的方向。这种单向性导致AR模型偏向于单一的方向,容易导致错误的后缀或与方向相关的预测。其次,在推理过程中,AR模型只能以与训练相同的方向连续输出标记。这被称为下一个标记解码或单调的AR解码。

排列语言建模(PLM)最初是为大规模语言预训练而提出的,但最近的工作已经将其应用于基于Transformer的广义序列模型学习,能够采用不同的解码方案。本文中,我们将PLM用于STR。PLM可以被认为是AR建模的泛化,而PLM训练的模型可以被看作是具有共享架构和权重的AR模型的集合。通过使用注意掩模来动态指定token依赖关系,这样的模型,如图2所示,可以学习和使用给定输入上下文的任意子集的条件字符概率,从而实现单调的AR解码,并行的非AR解码,甚至迭代细化。

在这里插入图片描述

本文中,我们提出了一个针对STR的排列自回归序列(PARSeq)模型。使用PLM训练的PARSeq是一个统一的STR模型,结构简单,但能够进行上下文无关和上下文感知推理,以及使用双向(封闭)上下文进行迭代细化。PARSeq在所有字符集的合成和真实训练数据的STR基准测试上都获得了SOTA结果,同时在参数量、FlOPS和推理耗时等方面是最佳的。为了进行更全面的比较,我们还在更大、更困难的真实数据集上进行了基准测试,这些数据集包含封闭的和任意面向的文本)。PARSeq也同样在这些数据集中获得了SOTA的结果。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、Related Work

3、Permuted Autoregressive Sequence Models

3.1、Model Architecture

在这里插入图片描述

多头注意力(MHA)被PARSeq广泛使用。我们将其表示为MHA(q、k、v、m),其中q、k和v表示所需的参数查询、键和值,而m表示可选的注意掩码。

PARSeq是一个编码器-解码器架构。编码器有12层,而解码器只有一层。这种深-浅层配置是一种刻意的设计选择,它尽量减少了模型的总体计算需求,同时对性能的影响可以忽略不计。

ViT编码器。一个ViT层包含一个用于自我注意的MHA模块,即q = k = v。该编码器是一个12层的ViT。图像 x ∈ R W × H × C x \in \R^{W \times H \times C} xRW×H×C,标记均匀分成 p w × p h p_{w} \times p_{h} pw×ph块,展平每个patch,然后embeding成 d m o d e l d_{model} dmodel维度的特征,从而产生 ( W H ) / ( p w p h ) (WH)/(p_{w}p_{h}) (WH)/(pwph)个token。在被第一个维ViT层处理之前,将学习到的等维位置嵌入添加到标记中。在输入到第一层ViT前需要向每个token中添加可学习的位置embeddings。

与标准的ViT相比,所有的输出token输入到解码器中:
z = E n c ( x ) ∈ R W H p w p h × d m o d e l z = Enc(x) \in \R^{\frac{WH}{p_{w}p_{h}}\times d_{model}} z=Enc(x)RpwphWH×dmodel
**Visio语言解码器。**解码器与前面Transformer解码器有相同的架构,但使用两倍的注意头数量,即nhead = d m o d e l d_{model} dmodel/32。它有三个输入,包括位置、上下文和图像token,以及一个可选的注意mask。

解码器的第一个MHA计算公式如下:
h c = P + M H A ( p , c , c , m ) ∈ R ( T + 1 ) × d m o d e l h_{c}=P+MHA(p,c,c,m)\in\R^{(T+1)\times d_{model}} hc=P+MHA(p,c,c,m)R(T+1)×dmodel
其中,T是上下文的长度, P ∈ R ( T + 1 ) × d m o d e l P\in \R^{(T+1)\times d_{model}} PR(T+1)×dmodel是位置token, c ∈ R ( T + 1 ) × d m o d e l c\in \R^{(T+1)\times d_{model}} cR(T+1)×dmodel是上下文位置的embeding, m ∈ R ( T + 1 ) × d m o d e l m\in \R^{(T+1)\times d_{model}} mR(T+1)×dmodel是可选的attention的mask。

位置token是为了预测目标的位置,每一个都与输出中的特定位置有直接对应关系。这种参数化类似于双流attention的查询流。它将上下文与目标位置解耦,允许模型从PLM中学习。如果没有位置令牌,也就是说,如果上下文令牌像标准变形金刚中那样被用作查询本身,模型将不会从PLM学习到任何有意义的东西,功能类似于标准AR模型。

attention的mask根据模型的不同,在训练过程中,随机排列生成的。使用排列自回归序列模型进行推理的场景文本识别中,它可以是一个标准的从左到右的前向mask(AR解码),一个封闭mask(迭代细化),或者完全没有mask(NAR解码)。

第二个MHA用于图像位置注意:
h i = h c + M H A ( h c , z , z ) ∈ R ( T + 1 ) × d m o d e l h_{i}=h_{c}+MHA(h_{c},z,z)\in\R^{(T+1)\times d_{model}} hi=hc+MHA(hc,z,z)R(T+1)×dmodel
其中,没有使用attention的mask,最后的隐藏层通过MLP进行输出:
h d e c = h i + M L P ( h i ) ∈ R ( T + 1 ) × d m o d e l h_{dec}=h_{i}+MLP(h_{i})\in\R^{(T+1)\times d_{model}} hdec=hi+MLP(hi)R(T+1)×dmodel
最后,通过Liner层 y = L i n e a r ( h d e c ) ∈ R ( T + 1 ) ( S + 1 ) y=Linear(h_{dec})\in \R^{(T+1)(S+1)} y=Linear(hdec)R(T+1)(S+1)得到输出logit。其中,S表示字典的长度,1为最后的结束符,总之解码层的公式计算如下:
y = D e c ( z , p , c , m ) ∈ R ( T + 1 ) ( S + 1 ) y=Dec(z,p,c,m)\in \R^{(T+1)(S+1)} y=Dec(z,p,c,m)R(T+1)(S+1)

3.2、Permutation Language Modeling

给定一个图像x,我们希望在模型参数 θ \theta θ的集合下,最大化其文本标签 y = [ y 1 , y 2 , … … , y T ] y = [y_1,y_2,……,y_T ] y=[y1y2……yT]的概率。在标准的AR建模中,根据排序使用链式分解, [ 1 , 2 , . . . , T ] [1,2,...,T] [1,2,...,T],得到模型 l o g p ( y ∣ x ) = ∑ t = 1 T l o g p θ ( y t ∣ y < t , x ) logp(y|x)=\sum^{T}_{t=1}log p_{\theta}(y_t|y<t,x) logpyx=t=1Tlogpθ(yty<tx)。但是,transformer是并行的处理所有的token,允许输出的token能够依赖于过去所有的token。为了拥有一个有效的AR模型,过去的token不能依赖未来的token。Transformer中的AR中被强制使注意mask。例如下表a,一个三元素序列y的标准AR模型将具有表中所示的注意mask。

在这里插入图片描述

PLM背后的关键想法是要训练好所有的T,那么概率的因式分解为:
l o g p ( y ∣ x ) = E z ∼ z T [ ∑ t = 1 T l o g p θ ( y z t ∣ y z < t , X ) ] logp(y|x)=E_{z\sim z_{T}}\left[\sum^{T}_{t=1}logp_{\theta}(y_{z_{t}}|y_{z_{<t}},X)\right] logp(yx)=EzzT[t=1Tlogpθ(yztyz<t,X)]
为了在transformer中实现PLM,我们不需要实际排列文本标签y。相反,我们通过制作注意力掩模来强制执行z所指定的顺序。作为一个具体的例子,上表中所示的是一个三元素序列的四种不同排列的注意掩码。请注意,虽然输入和输出序列的顺序保持不变,但所有四个序列都对应于由给定的排列或分解顺序指定的不同的AR模型。考虑到这一点,可以看出,标准的AR训练只是PLM其中一个排列 [ 1 , 2 , . . . , T ] [1,2,...,T] [1,2,...T]的特殊情况。

在实际中,我们不能在所有的T上进行训练,这会导致由于因式分解而使计算需求的指数级增长。作为一种折中,我们只使用其中K种可能的T序列,我们以特定的方式选择K个排列,而不是均匀抽样。我们使用K/2个排列对。前半部分包括从左到右的排列, [ 1 , 2 , . . . , T ] [1,2,...,T] [1,2,...T],和K/2−1随机抽样排列。另一半是第一个版本的翻转版本。我们发现,这种抽样过程导致了一个更稳定的训练。

对于K个排列和标签 y ^ \hat{y} y^,训练损失是每个排列的注意mask m k m_k mk交叉熵损失的平均值:
L = 1 K ∑ k = 1 K L c e ( y k , y ^ ) L = \frac{1}{K}\sum^{K}_{k=1}L_{ce}(y_{k},\hat{y}) L=K1k=1KLce(yk,y^)

3.3、Decoding Schemes

在这里插入图片描述

**自回归(AR)**解码每次迭代都会生成一个新的token。始终使用从左到右的注意mask(表2a)。对于第一次迭代,上下文设置为[B],只使用第一个位置查询标记 p 1 p_1 p1。对于任何后续的迭代i,使用位置查询 [ p 1 , … , p i ] [p_1,…,p_i ] [p1,pi],而上下文被设置为之前的输出。

**非自回归(NAR)**解码可以同时生成所有的输出token。使用了所有的位置查询 [ p 1 , … , p T + 1 ] [p_1,…,p_{T +1}] [p1pT+1],但没有使用注意掩模(表2b)。上下文总是[B]。

迭代细化 无论初始解码方法(AR或NAR)如何,都可以执行。前面的输出(在[E]处被截断)作为当前迭代的上下文,类似于AR解码,但是所有的位置查询 [ p 1 , … , p T + 1 ] [p_1,…,p_{T +1}] [p1pT+1]]都会被使用。使用了封闭式注意mask(表2c)。它从一个完整掩码开始,然后屏蔽匹配的token位置。

4、Results and Analysis

在这里插入图片描述

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

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

相关文章

MySQL数据库优化看这一篇就够了(最全干货篇)

文章目录 一、MySQL 主备切换以及读写分离二、SQL优化1、如何定位低效率的SQL语句-慢查询日志&#xff1f;EXPLAIN 执行计划怎么分析&#xff1f;2、sql语句优化常用的方法有哪些&#xff1f;3、如何优化索引&#xff1f;优化CRUD操作&#xff1f;优化分页&#xff1f;4、通过s…

C语言进阶之数据的存储

数据的存储 1. 数据类型介绍1.1 类型的基本归类 2.整型在内存中的存储2.1原码、反码、补码大小端介绍2.3练习 3. 浮点型在内存中的存储3.1浮点数存储规则 1. 数据类型介绍 在C语言初阶之数据类型这篇博客中&#xff0c;我们提到了关于数据内存的大小和基本用法 链接&#xff1…

大模型浪潮下的平台、框架、AI编译器和芯片架构 | 智源大会AI系统论坛

6月9日&#xff0c;2023北京智源大会&#xff0c;将邀请这一领域的探索者、实践者、以及关心智能科学的每个人&#xff0c;共同拉开未来舞台的帷幕&#xff0c;与会知名嘉宾包括&#xff0c;2019年图灵奖得主Yann LeCun、图灵奖得主Geoffrey Hinton、图灵奖得主Joseph Sifakis、…

童心不泯,因AI飞驰,祝大朋友小朋友六一儿童节快乐!

AIGC 大模型&#xff0c;让所想&#xff0c;即所见。 在青少年想象力培养上&#xff0c; 生成式人工智能技术的蓬勃发展&#xff0c; 让人类想象力和创造力提升&#xff0c; 迎来了全新的发展阶段。 百度通过大模型与深度学习框架融合发展&#xff0c;打造了自主创新的AI底座&a…

JavaWeb16(sessionCookie)

目录 1.会话跟踪&HTTP无状态协议. 1.1会话跟踪. 1.2HTTP无状态协议. 2.Cookie. 2.1何为Cookie. 2.2Cookie的有效期. 2.3案例讲解. 2.3.1用cookie做登陆状态验证. 2.3.2验证cookie是将数据保存到客户端及有效期. 2.3.2用cookie做注销. 2.3.3用cookie实现自动登陆…

Java程序设计入门教程--日期格式化类SimpleDateFormat

在程序设计中&#xff0c;经常用到特定的日期格式&#xff0c;此时就可以使用 java.text 包中的 SimpleDateFormat 类来对日期时间进行格式化&#xff0c;如可以将日期转换为指定格式的文本&#xff0c;也可将文本转换为日期。 目标格式 使用SimpleDateFormat类时&#xff0c…

【shiro】shiro整合JWT——4.JWT Token刷新/续签

前言 之前在写shiro整合JWT的时候&#xff0c;在ShiroRealm中有写到token的刷新&#xff1b;但后来看了很多别人的项目demo和博客发现之前的写法不太合适。这里参考之前看过的各个项目与博客&#xff0c;延续这之前shiro整合JWT内容的做了一波缝合怪。 主要对之前的ShiroRealm…

绝地求生 压q python版

仅做学习交流&#xff0c;非盈利&#xff0c;侵联删&#xff08;狗头保命) 一、概述 1.1 效果 总的来说&#xff0c;这种方式是通过图像识别来完成的&#xff0c;不侵入游戏&#xff0c;不读取内存&#xff0c;安全不被检测。 1.2 前置知识 游戏中有各种不同的q械&#xf…

深入浅出:FFmpeg 音频解码与处理全解析

深入浅出&#xff1a;FFmpeg 音频解码与处理全解析 一、FFmpeg 简介1.1 FFmpeg 的历史与发展1.2 FFmpeg 的主要组成部分 二、音频编解码基础 (Basics of Audio Encoding and Decoding)2.1 音频编解码的原理 (Principle of Audio Encoding and Decoding)2.1.1 采样 (Sampling)2.…

chatgpt赋能python:Python函数调用局部变量-深入了解

Python函数调用局部变量-深入了解 函数调用局部变量是Python中的一个重要概念&#xff0c;特别是在大型项目中&#xff0c;其中多个函数共享相同变量时。在本文中&#xff0c;我们将深入探讨Python函数调用局部变量&#xff0c;并为您介绍一些实用技巧。 什么是Python函数调用…

chatgpt赋能Python-python函数计算器

简介 Python是一种高级编程语言&#xff0c;它在数据科学和机器学习等领域非常流行。但是&#xff0c;很多人可能不知道它也可以用来编写简单的函数计算器。 在本文中&#xff0c;我们将介绍一些基本的Python函数&#xff0c;并教你如何使用它们来编写一个简单但强大的函数计…

C 语言里面的 extern “C“ ,并没有那么简单!

前言 本文详细解析extern "C"的底层原理与实际应用。在你工作过的系统里&#xff0c;不知能否看到类似下面的代码。 这好像没有什么问题&#xff0c;你应该还会想&#xff1a;“嗯⋯是啊&#xff0c;我们的代码都是这样写的&#xff0c;从来没有因此碰到过什么麻烦啊…

CTEX中使用winEdt排版编辑插入图片.eps应用排版举例

CTEX中使用winEdt排版编辑插入图片.eps应用排版举例 在使用WinEdt进行排版编辑的时候&#xff0c;可以对文档格式排版等灵活快速排版&#xff0c;并实现pdf的文档的生成。本文将举例说明在WinEdt中&#xff0c;插入图片的方法的排版举例应用。 一、具体方法步骤 1.根据已有图片…

配置OCI上数据库服务的EM Database Express

本文参考了以下文档&#xff1a; DBCS: How To Setup EM Express in Bare Metal and Virtual Machine DB Systems(OCI) (Doc ID 2453454.1)Oracle Database 12c: EM Database ExpressAccess the Database Home Page in EM Database Express 第1步&#xff1a;数据库中设端口 …

【嵌入式烧录/刷写文件】-2.8-Hex文件转换为S19文件

案例背景(共5页精讲)&#xff1a; 有如下一段Hex文件&#xff0c;将其转换为Motorola S-record(S19/SREC/mot/SX)文件。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775F :2091200078797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939…

​ACL 2023 | 用二分类解决无监督常识问答

常识推理最近在自然语言处理研究中引起了广泛关注&#xff0c;现有的常识推理方法一般分为两种&#xff1a;一种是在开源数据集上对大型语言模型进行微调 [1]&#xff0c;另一种是借助外部知识图谱来训练。然而&#xff0c;构建有标注的常识推理数据集既昂贵&#xff0c;又受限…

uCOSii消息队列

消息队列管理(MESSAGE QUEUE MANAGEMENT) 1、消息队列定义 消息队列好比人们排队买票&#xff0c;排队的人好比是消息&#xff0c;每来一个人&#xff0c;都要到队伍的尾部去排队&#xff0c;叫添加一条消息到队列中。售票员卖票给先到的人&#xff0c;叫从对列中接收一条消息…

Talk预告 | 罗格斯大学徐子昊:在域迁移学习中,用变分推理自动生成可解释的域索引

本期为TechBeat人工智能社区第501期线上Talk&#xff01; 北京时间5月31日(周三)20:00&#xff0c;罗格斯大学 在读博士生—徐子昊的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “在域迁移学习中&#xff0c;用变分推理自动生成可解释的域索引…

Expeditors EDI需求详解

Expeditors是一家全球性的物流公司&#xff0c;成立于1979年&#xff0c;总部位于美国华盛顿州的西雅图。该公司提供海运、空运、货运代理、清关、仓储等一系列全球物流服务&#xff0c;并致力于通过数字化技术提高供应链的可见性和效率。Expeditors的客户遍及各行各业&#xf…

CMAKE变量与选择详解

目录 在 CMake 中&#xff0c;变量和选项是&#xff1a; CMake中的变量&#xff1a; 接下来是一个cmake的案例&#xff1a; 在CMake中定义和使用函数&#xff1a; 在 CMake 中&#xff0c;变量和选项是&#xff1a; 变量&#xff08;Variables&#xff09;&#xff1a; CMak…