一、研究背景
场景文字识别方法Scene Text Recognition (STR)的目标是解码出图像块中的文字信息,是文档智能处理、信息检索等下游高层任务的重要基础,受到了计算机视觉领域的广泛关注。近年来,自然语言处理领域中的方法被引入视觉任务中,提出了许多Transformer-based的视觉方法,如ViT, DETR等视觉模型。STR任务天然是一种与自然语言强相关的任务,一些工作开始将语言信息引入STR模型中,利用视觉语言的多模态特征来提高模型的识别精度,如SRN[1]和ABInet[2]。但这类方法直接输出整个序列的预测结果,不能有效地解释为什么模型会做出这样的预测,以及决策的依据是什么。
二、方法简述
2.1 整体流程
图1展示了LevOCR的整体流程。首先图像经过视觉模型得到图像的视觉特征,并将纯视觉的预测结果设置为初始序列;初始序列经过文本模型编码成文本特征;视觉和文本特征经过融合后会依次地进入Deletion和Insertion操作中产出字符级的矫正结果;完成一轮Deletion和Insertion后会迭代进入下一轮。具体地,Deletion操作并行删除当前序列中的错误字符。Insertion操作拆分成两个子操作:Placeholder Insertion操作预测相邻两个字符间需要插入几个占位符<p>,并插入相应数目的占位符<p>;Token Prediction操作对每个<p>进行预测,替换成字典中的字符。如果初始序列非空序列,LevOCR为文本矫正任务,如果为空序列,则为文本生成任务。
2.2 模型结构
LevOCR模型主要由三部分组成。(a)视觉模块:使用ResNet结合Transfermer框架的网络作为Backbone[3]提取特征。然后,使用卷积降维至
作为后续使用的视觉特征。(b)语言模块:文本序列Embedding后输入6层的Transformer提取文本特征
。(c)特征融合模块:使用VLT框架直接拼接图像和文本特征进行特征融合。这种方式不仅不需要强制地对齐两个模态间的特征,而且便于评估不同模态的重要性,具有更好的可解释性。具体公式如下所示:
这里向量p表示文本或图像的Position Embedding,向量E表示Modal-type Embedding。最终H中的前T个Token的特征将作为后续使用的决策特征。
2.3 字符级矫正策略
为了模拟人类在字符识别中不断矫正的过程,作者将字符序列识别问题定义为一个马尔可夫决策过程。设计了两种基本操作Deletion 和Insertion。
(a)Deletion策略对字符序列中的每个字符进行二分类,d=1表示需要被删除,d=0则表示保留。其中,第一个和最后一个位置为特殊字符<s>和</s>不能被删除。
(b)Insertion操作被拆分为两个子策略。Placeholder Insertion策略预测相邻两个字符间需要被插入几个占位符。
(c)在插入占位符<p>后Token Prediction策略对每个<p>位置进行预测,并将<p>替换成字典中的字符。
2.4 模仿学习
上述3种操作需要交替迭代执行。给定一个初始文本,Deletion策略首先删除可能错误的字符;然后,Placeholder Insertion策略插入占位符;最后,Token Prediction策略将所有占位符预测为字典中的字符;依次循环矫正。作者使用了模仿学习进行模型训练,最小化每一步策略校正后字符序列与GT序列的编辑距离。
具体地,作者定义了Deletion 和Insertion的两种损失。
Deletion 损失中作者构造了两种输入。一种是对初始序列随机增加字符。另外一种是使用当前学习的Placeholder Insertion策略和Token Prediction策略对需要插入的序列增加字符,类似GAN中对抗学习的思想。标签通过编辑距离计算得出。
Insertion损失的输入主要通过对GT序列随机删除字符进行构造。并通过编辑距离计算得到相应的标签。
结合视觉端的预测损失,最终的损失函数如下:
为了更好的进行训练,作者分别对视觉模块和语言模块进行预训练。视觉模块的预训练仅使用图像进行输入,即为一个标准的纯视觉STR模型。语言模型的预训练使用构造的Deletion 和Insertion损失,但是输入的特征仅为文本特征,即。
需要强调的是,输入至Deletion 和Insertion策略中的序列可能是完全不同的,可能是空序列、错误的单词、或者含有占位符<p>的字符序列。同时,每次操作都需要对输入序列进行编码,然后与图像特征结合形成多模态特征H,最终完成后续的策略决策。
三、主要实验结果
3.1 初始序列对于LevOCR非常重要。表1中LevOCRVP表示直接输出视觉模块预测。yVP,yEmp,yRand和yGT分别表示使用视觉模块预测、空序列、随机扰动的GT序列和GT序列作为初始序列进行评测。整体识别精度yGT>yVP>yEmp>yRand,yVP和yEmp都能取得超过纯视觉模块预测的结果,yRand中LevOCR可以矫正约85%的字符串,yGT代表LevOCR的性能上界。实验结果表明LevOCR的确具有文本生成和矫正的能力,并且文本和视觉信息都会被考虑。表1也展示了不同迭代轮数下的模型性能。随着迭代轮数的增加,模型性能有不同程度的提升。
3.2 表2验证了LevT模块对于模型的影响。作者将Deletion和Insertion去除,并替换为一个简单的分类Loss。没有LevT模块的精度相较于纯视觉的精度没有显著提升。使用LevT模块学习两种字符级操作后,无论在CNN视觉模型和ViT视觉框架下,都能带来显著的性能提升。实验说明结合多模态信息的 Deletion和Insertion操作可以提升模型识别效果。
表2 LevT模块对模型的影响
3.3 表3定性描述了LevOCR在6个含有不同噪声图像和3种不同的初始序列下的详细推理流程。具体地,Deletion会删除错误的字符。如,在Image 6中字母“C”由于图像弯曲被视觉模型误识别为“G”, Deletion操作通过语言和文本信息将其删除。同理,在yRand中,删除了第二个多余的“C”。Placeholder Insertion策略会插入足够的占位符。在yEmp中,会插入与GT长度相等的占位符,如果输入序列长度小于GT会在正确位置进行补足。Deletion和Placeholder Insertion操作赋予了LevOCR直接修改序列长度的能力。Token Prediction操作强依赖于占位符,如果占位符数目错误,会导致预测错误。但经过多轮校正后,模型依然能得到正确的结果,如Image 5中yRand的结果。实验说明了Deletion和Insertion操作能够相互制约并相辅相成,同时也赋予了LevOCR模型的良好的透明性。
表 3 LevOCR详细的字符生成和字符矫正过程
3.4 表4展示了LevOCR与SOTA方法的比较。LevOCR取得了最优的性能。
表4 对比SOTA方法
3.5 图3展示了Deletion和Placeholder Insertion操作的可视化结果。如(a)中,“n”被错误识别为“m”, LevOCR对“m”的删除概率为0.87。同时,从可视化权重可以看出,LevOCR做出删除操作主要是依赖于图像信息(0.737 > 0.263),并且图像中“n”的区域贡献值较高。图(b)中字母“u”缺失,LevOCR在该位置插入1个占位符的概率为0.94,同时图像占主导因素,并在“u”的位置贡献值较高。当文本输入有误,同时图像缺失或者模糊时,LevOCR会更加关注于文本信息,如(c)和(d)中,LevOCR会删除错误字符,同时文本信息占主导因素。通过这种方式,可以清楚地看到LevOCR每一步字符级操作的决策过程,使得LevOCR具有良好的可解释性。
四、总结
论文链接:
代码链接:
参考文献
[1] Yu, Deli, et al. Towards accurate scene text recognition with semantic
reasoning networks. CVPR 2020
[2] Fang, Shancheng, et al. Read Like Humans: Autonomous, Bidirectional and Iterative Language Modeling for Scene Text Recognition. CVPR 2021
[3] Gu, Jiatao, et al. Levenshtein transformer. NeurIPS 2019
往期精彩内容回顾