RobustScanner:动态增强位置信息的文字识别网络

[Paper Download] [code in MMOCR]

在ECCV 2020上,商汤团队提出了动态增强位置信息的文字识别网络。该工作发现目前主流的基于注意力机制的文字识别方法在无语义数据上表现较差。通过对主流方法的编码-解码机制深入探索,发现文字解码过程中,不仅使用了上下文语义信息,同样使用了位置编码信息,而后者对于无语义数据的正确识别更为重要。

基于此,该工作提出了RobustScanner,在传统基于注意力机制的编码-解码框架基础上,增加了一个位置增强分支,极大的改善了模型在无语义数据上的效果,并在公开数据集上取得了显著提升。

出发点

自然文字识别作为计算机视觉的一个重要方向,在很多场景中有着广泛的应用。虽然得益于深度学习的发展,该领域取得了显著的进展,但它仍然是一个具有挑战性的任务。

当前主流的自然文字识别方法大多使用了基于注意力机制的编码-解码框架,该框架的解码过程如下图所示。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

虽然这些方法在学术数据集上取得了不错的效果,但我们发现它们很难被应用于真实业务场景,特别是中文识别场景,往往会出现人很难理解的错误识别结果,原因在于他们对无语义或弱语义的样本效果很差。

为了直观的展示这个问题,我们合成了一个由随机字符序列组成的文字识别数据集RandText。目前效果很好的SAR方法是一种典型的基于注意力机制的编码-解码框架,在RandText的准确率仅为59.6%,一部分错误样本如下图所示。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

我们同时还生成了一个由ICDAR 2013测试集中的单词序列组成的数据集,来验证SAR在RandText上的较差表现并非是由于测试数据与训练数据合成方法(前后背景颜色等)不同导致的偏差。

一部分测试样本如下图所示,SAR在这个测试数据集上的准确率为98.9%,证明我们的合成方法并不会对网络效果造成影响。对其他基于注意力机制的编码-解码方法的实验观察到了同样的现象,因此我们认为基于注意力机制的文字识别方法并不能很好的处理无语义的数据。

我们非常好奇是什么原因造成这种现象,于是我们认真的探索了基于注意力机制的编码-解码框架的解码过程。一个基本的解码过程包含以下步骤:

1.由字符级别的序列模型产生隐向量,序列模型的输入为<开始>信号或上一个过程的输出字符。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

2.序列模型产生的隐向量h与编码器产生的特征图F计算相似度,得到每个位置的权重。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

3.F与其每个位置的权重进行加权平均,得到当前过程的注意力机制输出g。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

4.最终由分类器得到当前过程的输出y。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

由以上公式我们可以发现,在给定编码器输出F的情况下,由字符级别的序列模型产生的隐向量h,作为注意力机制的query,决定了模型的输出。那隐向量编码了何种信息呢?

由于序列模型的存在,h的产生依赖于上一步的输出,因而我们一般认为h编码了上下文语义信息。我们还观察到第一步的h1对于所有的不同的输入样本都是保持不变的,因为它只由<开始>信号产生,但是第一个字符也可以被正确的识别出来。这种现象暗示了位置信息的存在,即第一个字符是通过其位置被正确解码的。

所以我们对不同文本序列的query进行了相似度分析。我们把ICDAR 2013测试集中长度为l的样本作为模型的输入,保存其每一步的query向量,并通过以下公式计算其余弦相似度:

 
 
 

我们可以观察到,同一个位置的query之间具有较高的相似度,说明它们编码了相同的信息,即位置信息。同时,随着解码字数增加,相邻位置的query之间变的更相似,说明了随着语义信息的导入,位置信息变弱了。因此,在本文中我们提出了RobustScanner,使用一个单独的位置编码分支来动态的提高模型位置编码能力。

方法介绍

RobustScanner结构如下图所示。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition 

RobustScanner包含一个编码器和一个解码器,编码器我们使用了SAR同款ResNet-31。解码器有两个分支,混合分支和位置增强分支,他们的输出通过动态融合模块进行合并,并输出预测结果。

其中,混合分支是传统注意力机制模型的解码器,由前文所述,它同时编码了语义特征和位置特征,所以在这里被称为混合分支,它接收前一步的输出字符,经过两层的LSTM和注意力模块,得到输出向量。

位置增强分支包含一个位置模块(Position aware module)、一个位置编码层(Position embedding layer)和一个注意力模块。其中位置编码层接受当前解码步数作为输入,将其编码为一个向量,每一步的向量都是独立的。位置模块的作用是对编码器的输出特征图进行增强,使得其可以编码丰富的位置信息,具体结构如下图。

准确的位置编码需要全局信息,而文字识别网络的输入图像高宽比较为特殊,CNN编码器的感受野可能会小于输入图像的宽度,所以我们使用了一个两层LSTM,从左到右,对每一行特征进行处理,使得输出特征图可以编码位置信息。这里我们只需要注意力模块的输入key进行位置增强。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

两个分支的输出最终通过动态融合模块进行合并,动态融合模块的输入如下图所示。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

两个分支的输出被合并之后,经过一个通道维度的门机制,对特征进行选择,由此RobustScanner可以自适应的调整语义信息和位置信息的重要程度。

实验结果

我们在六个学术数据集上与之前的方法进行了比较,结果如下表所示。MJ和ST分别为MJSynth和SynthText两个合成数据集,R表示六个学术数据集的训练集。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

可以看到在只使用合成数据训练的情况下,RubostScanner在四个数据集中取得了较大的提升。在使用真实数据进行训练的情况下,RobustScanner在四个数据集上的表现超过了SAR,尤其在非规则文字识别数据集CUTE 80上,我们取得了92.4%的高准确率。

RobustScanner在SVT和SVTP上效果较差,原因在于这两个街道场景数据集中存在大量模糊字符,而它们的数据大多为有语义的单词,这种情况下通过语义进行猜测远比准确定位字符位置更为重要。

我们同样在合成的RandText上测试了目前效果较好的几个方法,结果如下。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

可以看到RobustScanner明显优于其他基于注意力机制的方法。

我们还通过实验分析了每个分支的作用,如下表所示。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

其中HB表示混合分支,PEB表示位置增强分支。可以看到RobustScanner在去掉混合分支的情况下在所有学术数据集上效果均下降,这证明了语义信息的重要性,但在RandText数据集上效果变好。在去掉位置增强分支的情况下,RandText数据集上的效果下降到只有46.8%,与去掉混合分支的版本有较大差距,说明了在无语义数据中位置信息的重要性。

在这种双分支结构中,我们的动态融合模块同样起到了重要的作用。我们比较了不同的融合方法,包括拼接(Concatenation)、和相加,其结果如下表。

RobustScanner: Dynamically Enhancing Positional Clues for Robust Text Recognition, sensetime, ocr 

我们的动态融合模型在六个学术数据集上效果最好,并在RandText上取得了第二的效果,所以我们认为动态融合的方法更具鲁棒性。

结语

本文中,我们为了解决基于注意力机制的方法在实际业务场景下无语义样本上错误识别的问题,深入探索了文字识别中的解码过程,发现了序列模型编码的位置信息也有重要的作用。基于这个发现,我们提出了RobustScanner模型,其包含了两个解码分支,混合分支和位置增强分支,它可以自适应的融合两个分支的输出结果,以此增强鲁棒性。







profile counter Stats

Copyright © 2021 Wayne Zhang.