论文笔记 - 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组实验,通过相对频率分布来说明问题,其计算公式如下:
其中为文本长度,为scale,计算方法为,即最初的的长宽比和resize后的长宽比的比例。在上述公式中分别代表2个模型的正确率。如果上述公式大于0,则代表第二个模型的性能更好,如果小于0,则代表第一个模型性能更好
第一组实验(图a)使用的2个模型分别用的是和的patch尺寸,蓝色方块代表使用第一个模型性能更好,红色方块代表第二个模型性能更好,可以看出,不同长度及不同长宽比的文本,适用于不同patch尺寸的模型
第二组实验(图b)为了验证不是模型初始化的问题,作者使用同样的patch size分别初始化了2个模型,可以看出,红蓝分布均匀,即性能没有差异
第一个字符预测的错误率
此外,由于decoder使用自回归的解码方式,因此解码第一个字母时,没有太多的背景信息,因此错误率较高。
分别使用正向解码和反向解码,在长度为5的文本上进行通过。(a)代表正向解码的总共预测错一个字母的结果,在各个位置的错误率;(b)代表反向解码的总共预测错一个字母的结果,在各个位置的错误率;©代表正向解码的总共预测错两个字母的结果,在各个位置的错误率;(d)代表反向解码的总共预测错两个字母的结果,在各个位置的错误率
可以看出正向解码时第一个字符时错误率最高,反向解码时最后一个字母错误率最高
为此,作者提出了一个可以处理不同分辨率patch、且可以进行双向解码的纯transformer算法。
框架
模型结构
作者提出了基于融合专家系统的PTIE,每个专家可以表示为,和的取值都为0或1,代表使用的分辨率,表示使用的分辨率,表示使用正向解码,表示使用反向解码。由于这些专家仅有图像和文本的编码转换成embedding的过程不同,encoder和decoder部分的参数都可以共享,因此他们都能被融合到同一个模型中。如果所示,不同专家得到的图像/文本embedding会进行concat和repeat,并且在输出解码信息时进行ensemble,即同时预测4个结果,取score最高的最终输出。
位置编码
研究表明,原始transformer采用的位置编码+embedding的方式,会导致相关性中带有噪声,因此,作者在multi-head attention的过程中计算并使用位置编码,即:
在进行解码时,自相关的attention()和互相关的attention()的计算方式如下:
学习到的attention可视化后如图所示,其中(a)代表使用分辨率时第1个head的attention,(b)代表使用分辨率时第1个head的attention,©代表使用分辨率时第2个head的attention,(d)代表使用分辨率时第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以的参数量达到了同样的性能。
第二组对比实验,使用的是4个相同分辨率的模型及其ensemble,可以看出,PTIE-Diverse使用的不同分辨率以及解码顺序可以较为显著的提高性能。另外,使用同样分辨率和解码顺序训练的PTIE-Identical性能下降很大,证明其对PTIE模型来讲非常重要
latency:对比latency可以看出,PTIE-Diverse用时仅为Ensemble-Diverse的
针对前文所提的2个问题的提升:
- 分别计算分辨率+正向解码模型与PTIE(图a),以及分辨率+正向解码模型与PTIE(图b)的相对频率分布,可以看出,都是PTIE模型的表现更好
- 统计一个字符出错的位置分布(图a)以及2个字符出错的位置分布(图b),使用PTIE可以减少首个字母的错误率