论文笔记 - Pure Transformer with Integrated Experts forScene Text Recognition

前言

由于transfomer可以捕获文本的长期之间的依赖关系,因此现在的文本识别算法大多使用CNN-Transformer混合的框架,但是这样的方式只能在decoder部分受益,因此本文提出了一种仅依赖于transformer的文本识别框架。此外,作者发现并解决了两个较为关键的问题,第一个首字母的准确率较低,第二个为图片中文字为不同的大小,但如ViT这种架构使用的是固定的patch。为此作者提出了一个多专家纯Transformer结构,即PTIE,可以处理多种分辨率的patch,并进行正向和反向的解码。

论文:Pure Transformer with Integrated Experts forScene Text Recognition

背景

传统的文本识别算法使用的CNN-RNN的encoder-decoder结构,即CNN提取图片中的特征,RNN来捕获序列间的关系并进行序列建模。由于transfomer可以捕获序列间的长期关系,且文本的字体、大小等基本一致,具有较强的长期依赖,因此,Transformer能够较好的提高文本识别算法的性能。但现有的结构大部分只在decoder部分使用transfomer,如果将CNN替换为transformer,如ViT等,则算法可以更早的受益。

但Transformer也有一些问题

patch分辨率影响

首先不同的分辨率对文本识别的准确率有较大影响,但ViT使用的是固定的分辨率,为了说明这个问题,作者做了2组实验,通过相对频率分布来说明问题,其计算公式如下:

Fl,s=Fl,s2Fl,s1Fl,s1l,s(Fl,s2Fl,s1)l,sFl,s1F_{l, s}=\frac{\frac{F_{l, s}^2-F_{l, s}^1}{F_{l, s}^1}}{\frac{\sum_{l, s}\left(F_{l, s}^2-F_{l, s}^1\right)}{\sum_{l, s} F_{l, s}^1}}

其中ll为文本长度,ss为scale,计算方法为 final width  final height  initial height  inital width \frac{\text { final width }}{\text { final height }} \frac{\text { initial height }}{\text { inital width }},即最初的的长宽比和resize后的长宽比的比例。在上述公式中Fl,s1,Fl,s2F_{l, s}^1,F_{l, s}^2分别代表2个模型的正确率。如果上述公式大于0,则代表第二个模型的性能更好,如果小于0,则代表第一个模型性能更好

第一组实验(图a)使用的2个模型分别用的是4×84\times88×48\times4的patch尺寸,蓝色方块代表使用第一个模型性能更好,红色方块代表第二个模型性能更好,可以看出,不同长度及不同长宽比的文本,适用于不同patch尺寸的模型

第二组实验(图b)为了验证不是模型初始化的问题,作者使用同样的patch size分别初始化了2个模型,可以看出,红蓝分布均匀,即性能没有差异

第一个字符预测的错误率

此外,由于decoder使用自回归的解码方式,因此解码第一个字母时,没有太多的背景信息,因此错误率较高。

分别使用正向解码和反向解码,在长度为5的文本上进行通过。(a)代表正向解码的总共预测错一个字母的结果,在各个位置的错误率;(b)代表反向解码的总共预测错一个字母的结果,在各个位置的错误率;©代表正向解码的总共预测错两个字母的结果,在各个位置的错误率;(d)代表反向解码的总共预测错两个字母的结果,在各个位置的错误率

可以看出正向解码时第一个字符时错误率最高,反向解码时最后一个字母错误率最高

为此,作者提出了一个可以处理不同分辨率patch、且可以进行双向解码的纯transformer算法。

框架

模型结构

作者提出了基于融合专家系统的PTIE,每个专家可以表示为Expi,jExp_{i,j}iijj的取值都为0或1,i=0i=0代表使用4×84 \times 8的分辨率,i=1i=1表示使用8×48 \times 4的分辨率,j=0j=0表示使用正向解码,j=1j=1表示使用反向解码。由于这些专家仅有图像和文本的编码转换成embedding的过程不同,encoder和decoder部分的参数都可以共享,因此他们都能被融合到同一个模型中。如果所示,不同专家得到的图像/文本embedding会进行concat和repeat,并且在输出解码信息时进行ensemble,即同时预测4个结果,取score最高的最终输出。

位置编码

研究表明,原始transformer采用的位置编码+embedding的方式,会导致相关性中带有噪声,因此,作者在multi-head attention的过程中计算并使用位置编码,即:

αienc=12d(PiencWQ)(PiencWK)T\alpha_i^{e n c}=\frac{1}{\sqrt{2 d}}\left(P_i^{e n c} W_Q\right)\left(P_i^{e n c} W_K\right)^T

在进行解码时,自相关的attention(αjdec\alpha_{j}^{dec})和互相关的attention(αi,jdecc\alpha_{i, j}^{d e c_{-} c})的计算方式如下:

αjdec=12d(PjdecUQ)(PjdecUK)Tαi,jdecc=12d(Pjdec VQ)(PiencVK)T\begin{aligned} \alpha_j^{d e c} &=\frac{1}{\sqrt{2 d}}\left(P_j^{d e c} U_Q\right)\left(P_j^{d e c} U_K\right)^T \\ \alpha_{i, j}^{d e c - c} &=\frac{1}{\sqrt{2 d}}\left(P_j^{\text {dec }} V_Q\right)\left(P_i^{e n c} V_K\right)^T \end{aligned}

学习到的attention可视化后如图所示,其中(a)代表使用4×84 \times 8分辨率时第1个head的attention,(b)代表使用8×48 \times 4分辨率时第1个head的attention,©代表使用4×84 \times 8分辨率时第2个head的attention,(d)代表使用8×48 \times 4分辨率时第2个head的attention

实验

实验结果

在只使用合成数据集训练的情况下,PTIE在7个街景数据集中的6个获得了最好的性能,其中PTIE-Vanilla代表使用原始位置编码的模型,PTIE-Untied代表使用改良后位置编码的模型

在使用真实数据做finetune的情况下,PTIE的也取得了很好的成绩

消融实验

Encoder:作者对比了其他CNN-Transformer的模型,纯Transformer的结果取得了更好的结果。为了确认是由于将encoder替换为transformer的原因,作者将PEIT的encoder换为Res50,性能有所下降

Ensemble:作者做了2组对比实验,第一组将PEIT的四个专家单独拎出来作为4个独立的网络进行训练,并分别计算各自模型的准确率以及ensemble(Ensemble-Diverse)后的准确率,发现ensemble能提高准确率,但参数同时提高四倍。相比之下,有4个不同输入的PTIE-Diverser以14\frac{1}{4}的参数量达到了同样的性能。

第二组对比实验,使用的是4个相同分辨率的模型及其ensemble,可以看出,PTIE-Diverse使用的不同分辨率以及解码顺序可以较为显著的提高性能。另外,使用同样分辨率和解码顺序训练的PTIE-Identical性能下降很大,证明其对PTIE模型来讲非常重要

latency:对比latency可以看出,PTIE-Diverse用时仅为Ensemble-Diverse的14\frac{1}{4}

针对前文所提的2个问题的提升

  • 分别计算4×84 \times 8分辨率+正向解码模型与PTIE(图a),以及8×48 \times 4分辨率+正向解码模型与PTIE(图b)的相对频率分布,可以看出,都是PTIE模型的表现更好
  • 统计一个字符出错的位置分布(图a)以及2个字符出错的位置分布(图b),使用PTIE可以减少首个字母的错误率