论文笔记 - Multi-Granularity Prediction for Scene TextRecognition
前言
本篇论文提出了一种可以隐式融入语言模型信息的多粒度预测策略,来进行文本识别。与其他使用语言模型的文本识别算法不同,该方法不需要在视觉模型以外显式的训练一个语言模型,而是通过NLP中常见的subword reprewsentation来构建除字符以外的监督信息,从而隐式的引入语言模型信息,并提高文本识别精度。
论文:Multi-Granularity Prediction for Scene TextRecognition
代码:MGP-STR
背景
文本识别领域最近出现较多使用语言信息的算法,如SRN,ABINet等,这些方法需要显式的增加语言模型并进行训练,增加模型参数并减慢模型运行速度,为此,本文提出了一种可以隐式融入语言模型信息方法。首先,本文基于ViT,设计一种用于学习token表达的模块,用于预测文本序列中的字母,作为一个baseline。并在基础上,提出一种多粒度预测策略,在预测字母之外,增加2个分支,用于预测subword representation(BPE和WordPiece),从而构成一种mult-task学习范式。在推理阶段,三个分支的结果进行融合,得到最终的文本识别结果,本文的贡献如下:
- 基于ViT和模块构建文本识别模型,已经超出现有文本识别算法
- 提出了一种可以隐式融入语言模型信息的多粒度预测策略
框架
ViT backbone
作者对ViT backbone进行修改,将原有的224x224输入尺寸修改为32x128,并将patch size设置为4,经过实验验证,调整后的ViT在文本识别任务上效果更好
(Adaptive Addressing and Aggregation)模块
在标准ViT模型中,会在patches构成的序列前增加一个可学习的token来作为整个图片的representation,进而完成图片分类。
对于文本识别而言,需要从图片中预测一个序列,因此1个token无法完成,ViTSTR算法采取的策略是使用encoder输出的token序列中的前个来预测字符序列,即为最长的文本序列长度,但这样会浪费剩余的token。
因此,本文提出模块,来从中学习并通过加权形成个token,来完成文本序列识别,由以下公式完成:
其中为一个线性映射矩阵,可以将进行映射。为group conv,卷积核尺寸为1x1,得到的可以视为spatial attention mask,由此,可以通过一个函数从token序列中学习到一个token ,通过个函数的学习,即可获得用于文本识别的token序列,经过一个全连接层以后即可完成字符序列识别
多粒度预测
上述工作仅能逐个预测字符,无法使用语言信息,因此本文引入两种拆解算法:BPE和WordPiece,将文本拆解为有语义的subword,作为监督信息,从而在不引入语言模型的同时隐式的引入语言信息。在文本识别时,字符序列识别可以基本的准确率,在遇到较难识别的图片时,通过语义信息,可以改善识别结果
在不同粒度上,字符为38分类,此时基本为各个字符的attention,BPE和WordPiece会拆解为subword,类别个数为所有subword的个数,分别为50,257和30,522,此时基本为各个subword的attention。
融合策略
本文采取决策层面的融合,即通过三个分支的置信度,通过2种方式之一,即计算整个输出序列置信度的均值或累积,然后取最大的分支结果作为最终预测文本
实验
ViT和模块的影响
对比和可以发现,32x128的输入尺寸以及4x4的patch size更适合文本识别
对比和可以发现,模块性能更好
融合策略影响
对比了纯粹使用字符分支结果,计算均值并取最大分支,以及计算累积并取最大分支,发现累积效果更好
对比三个分支的效果,发现不管是单独引入BPE或者WordPiece,采用Fuse策略后,识别效果都有所提升,甚至会提升字符序列分支的性能,说明引入的语言信息可以帮助模型训练。
backbond的影响
对比ViT的tiny,small,base三种结构,fuse策略都能提高文本识别性能。且backbone越大,效果越好
与SOTA对比
与现有的SOTA算法对比,不引入语言信息的情况下,MGP-STR模型已经超过了所有的模型,包括使用语言模型的算法。引入语言信息后,算法性能进一步提升
多粒度预测的效果
在图片1-3中,字符分支无法准确识别,但依靠另外2个分支的预测,可以得到正确的识别效果
在图片4-6中,字符分支可以准确识别,但另外2个分支更倾向于将文本预测为相近的常见单词
Attention可视化
通过可视化,可以看出字符分支的attention集中于每个字母,另外2个分支则集中于subword或整个word
速度对比
通过对比可以看出,显式地引入语言模型(ABINet)会降低模型计算速度,本文算法的参数有很大一部分集中在BPE分支和WordPiece分支(类别较多),如果考虑速度可以仅使用字符分支