@所有雄安人!一定要看!

@所有雄安人!一定要看!

广西冯波律师涉黑案|冯母:我儿长在风波亭畔,冤在柳侯祠前

以项目论英雄,凭实绩排座次!日照这场专题会议传递强烈信号!

涿州,原来有这么多人需救援!

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

[ACM MM 2021] PIMNet:一种用于场景文本识别的并行、迭代和模仿网络(有源码)

廖倩颖 CSIG文档图像分析与识别专委会 2022-07-11

本文简要介绍ACM MM 2021的论文:PIMNet: A Parallel, Iterative and Mimicking Network for Scene Text Recognition。该论文提出了PIMNet网络结构——一种并行、迭代和模仿网络,它可以很好地平衡识别精度和推理速度。具体来说,PIMNet采用了一种并行注意力解码器来更快地预测文本,并采用了一种迭代生成机制来提高预测的准确性。为了改善并行解码器中特征的质量,本文在训练阶段还利用了模仿学习,也就是采用自回归解码器来指导并行解码器的特征学习。这两个解码器之间共享主干网络,可以进行端到端的训练,而无需预训练。在推理过程中,只保留并行解码器来解码,以达到更快的推理速度。在场景文本的六个公共数据集上的大量实验证明了PIMNet的有效性。

一、研究动机



在场景文本识别中,根据解码的策略,识别模型可以大致分为自回归模型和非自回归模型。大多数基于注意力机制的方法都是自回归模型。它往往从左到右解码文本,利用之前得到的结果预测下一个字符,多次循环该过程,循环的次数取决于文本的长度。

这种模型能够很好地建模语义信息,所以它的识别性能好,但推理速度相对较慢,尤其是在处理长文本的时候。相反,非自回归方法可以并行预测文本,典型的例子就是CTC解码器,它无需循环,一次性就能够解码出所有字符。这种并行推理显著提高了速度,但它的性能相对较差。因为它的独立性假设,忽略了字符之间的依赖关系,缺乏上下文信息。那,能否得到一个既快速又准确的识别模型呢?

为此,本文作者巧妙地结合了以上两种模型进行训练和推理,设计了PIMNet识别网络,使其兼具两者的优势。 

图 1 以IIIT5K和SVTP这两个数据集为例,对比不同方法的识别精度和推理速度。

二、方法原理简述



图 2 网络结构图

整体网络结构图如图2所示。首先输入图像经过主干网络,得到特征图。后面紧跟两个解码器,一个是并行解码器,它一次性能够预测若干个字符,通过多次迭代,预测得到完整的文本。蓝色实线箭头表示迭代解码的过程。这里的迭代次数是超参数,与文本的长度无关,文中设置为5次,这比大部分的文本长度小很多,因此可以达到快速解码的目的。根据前文所述,并行解码器的特征缺乏上下文语义信息,这会影响识别的准确性。所以,这里还采用了自回归解码器来指导并行解码器的特征学习。自回归解码器按照既定顺序一次预测一个字符,通过多次循环,解码出完整的文本。蓝色的虚线箭头表示循环解码的过程,文本长度有多长就要循环多少次。

自回归解码器的特征具有更丰富的语义和视觉信息,用它作为教师模型给并行解码器的特征提供监督信息,使得并行解码器能够学习到更好的特征,以提升识别的效果。

值得注意的是,在推理时,自回归解码器会被移除,只采用并行解码器,以此来保证较快的推理速度。 

a)主干网络

这里的主干网络采用的是带有FPN结构的ResNet-50,输出第三阶段的特征图,大小为输入图像的1/8。主干网络之后堆叠了两层Transformer Units。最后输出一个通道数为512的特征图。

b)并行解码器

i. 解码策略

之前提到并行解码器需要迭代多次解码,这里介绍一下它采用的Easy First迭代解码策略[1]。这种策略是在每一次迭代中解码出k个字符,其中,k的计算方式是文本长度除以迭代次数,这能保证在迭代结束之后,所有位置都能得到预测结果。

这里引入了一个特殊的Token [Mask],用来表示在下一次迭代中该位置可以被预测。第一次迭代时,所有位置都需要被预测,所以所有位置都是[Mask] Token。第一次经过解码器,得到预测结果,保留置信度最高的前k个结果,这里保留了‘SHG’三个字符。然后这些保留下来的字符用来更新字符串。值得注意的是,该位置的字符不会被再次更新。在下一次迭代中,输入更新之后的字符串来获得预测结果,但只有[Mask]的位置会被更新,直至最后一次迭代结束,预测出完整的字符串。 

图 3 Easy First迭代解码策略[1]

与逐个解码的方式不同,该方法能够降低循环的次数;与从左到右解码的方式不同,该方法打破了顺序的限制,能够同时利用左边和右边的字符的信息来预测中间的字符;与CTC 解码器不同,这种迭代预测的方法能够学习到一些语义信息。

ii. 解码器结构

对于并行解码器,这里采用了基于Transformer的结构。它主要包含了三个部分,即Self-attention、Cross-attention和FFN。但解码的过程和传统的Transformer解码器不一样,这里采用了上述的迭代解码策略,迭代次数是事先确定的,往往比文本长度小,尤其是对于长文本,能够显著明加速推理过程。右图展示了一次迭代的解码过程,一次迭代预测出若干个字符。

c)自回归解码器

对于自回归解码器,这里采用的是传统的Transformer 解码器。无论是结构还是解码的策略,都和Transformer解码器一样。它是从左到右逐个解码,文本有多长,就要解码多少次。

d)模仿学习

那么,如何让自回归解码器来指导并行解码器学到更高质量的特征呢?这里采用了模仿学习,也就是自回归解码器作为教师网络,用自回归解码器的特征来监督并行解码器的特征学习。通过计算两者之间的余弦相似度来计算损失。

文中提到,在训练过程中,该损失只更新并行解码器,而不会更新自回归解码器,这样能使训练更加稳定。

e)损失函数

模仿学习的损失采用余弦损失,公式如下

其中,是并行解码器中获得的特征,是自回归解码器中获得的特征。

整个网络是端到端的训练,一共三种损失,两种解码器在识别上的交叉熵损失,以及模仿学习的余弦损失。

其中,分别是是关于并行解码器和自回归解码器的交叉熵损失,是模仿学习的余弦损失。各个损失的系数均为1。

三、和SOTA方法的比较



表 1 和SOTA方法的比较 
和其他的自回归模型进行对比。无论是是否增加真实数据进行训练,该方法在大部分数据集上都能达到SOTA。和非自回归的模型相比,该方法不仅识别效果更高,而且推理速度大幅降低。

四、消融实验



a)并行解码器的迭代次数

表 2 不同迭代次数下,识别精度和推理速度的对比 

在该方法中,迭代次数是一个重要的超参数,因此作者还分析了迭代次数的影响。

如表格所示,当并行模型只迭代一次时,识别效果不佳,这种只迭代一次的做法类似于CTC解码器,一次性识别出所有的结果,但完全没有用到上下文的语义信息。

本文提到,最大文本长度设置为30,所以迭代30次的解码过程类似于自回归解码,它的效果最好,但是推理速度较慢。从表中可以看出,当迭代次数增加时,性能显著提高。同时,推理时间也会相应增加。

其中迭代次数为5时,能够很好地平衡速度和精度,所以作者在其他实验中均采用5次迭代。

文中提到,该消融实验删除了自回归解码器分支,只有并行解码器。

b)模仿学习的分析

表 3 模仿学习的效果(截取自表 1 和SOTA方法的比较) 

从表格中可以看出,具有模仿学习的结构在大部分测试集上获得了更好的准确率。 

图 4输出特征的余弦相似性

为了进一步分析模仿学习的有效性,作者可视化了FFN输出的余弦相似度矩阵。从图中可以看出,模仿学习确实能够让并行解码器输出类似于自回归解码器的特征,这验证了模仿学习的有效性。同时,随着输出特征的辨识度的增加,预测结果确实得到了改善。

表 4 模仿学习在不同长度文本中的效果 

对于不同长度的文本,模仿学习也具有不同的效果。当文本长度小于6时,模仿学习的并不能带来明显的收益。然而,随着长度的增加,模仿学习能够显著提高识别精度。

c)推理速度的分析

表 5 不同解码策略的推理速度对比 

为了进一步验证该方法在速度上的优势,作者将该方法与CTC解码器、Attention解码器进行了比较。如表所示,迭代5次的速度仍是Attention解码器的2倍。当迭代次数为1时,推理速度接近CTC解码器,因为它们都是完全并行解码,也就是一次性解码出所有字符。

d)后处理的分析 

图 5 后处理策略

表 6 后处理策略的效果 

本文对并行解码的结果采用了一种后处理方法,解码结果中存在表示文本结尾的的[EOS] Token,后处理操作是将文本结尾之后的字符全部替换为[EOS] Token,以防这些冗余的字符影响结果。从表中可以看出,具有后处理功能的模型在所有测试集上都取得了更好的性能。

五、定性分析



图 6 迭代解码的过程

这里分析了迭代解码的过程。其中绿色字符表示置信度较高被留下的字符,而红色字符表示置信度较低被遗弃的字符,需要在下一次的迭代中重新进行预测。从这些例子可以看出,Easy First解码方式打破了从左到右或从右到左的阅读顺序,例如第一个例子,由于‘s’被遮挡而较难被识别,所以在前两次的迭代中,分别预测出了字符‘s’左边和右边的字符,在第三次迭代中,根据左边和右边的结果预测出字符‘s’。相当于一种双向语义建模。

六、总结及讨论



这篇文章令人印象比较深刻的点在于利用一种特殊的迭代策略让Transformer解码器可以并行解码,提升前向的速度。同时,利用模仿学习来指导自回归解码器学习到质量更高的特征。关于这里采用的迭代解码策略,虽然这个方法不是文章的创新,但是它在自回归解码器中的使用带来的一个启发是,能否在其他的非自回归解码器,比如CTC解码器中使用该策略来提升CTC解码的效果?

七、相关资源



论文地址:https://arxiv.org/abs/2109.04145

代码开源地址:https://github.com/Pay20Y/PIMNet (TensorFlow版本)

参考文献



[1] Yoav Goldberg and Michael Elhadad. 2010. An efficient algorithm for easy-first non-directional dependency parsing. In NAACL. ACL, 742–750.

原文作者: Zhi Qiao, Yu Zhou, Jin Wei, Wei Wang, Yuan Zhang, Ning Jiang, Hongbin Wang, Weiping Wang


撰稿:廖倩颖

编排:高 学
审校:连宙辉
发布:金连文

 


免责声明:1)本文仅代表撰稿者观点,撰稿者不一定是原文作者,其个人理解及总结不一定准确及全面,论文完整思想及论点应以原论文为准。(2)本文观点不代表本公众号立场。


往期精彩内容回顾

欢迎加入中国图象图形学学会!(附入会攻略)


征稿启事:本公众号将不定期介绍文档图像分析与识别及相关领域的论文、数据集、代码等成果,欢迎自荐或推荐相关领域最新论文/代码/数据集等成果给本公众号审阅编排后发布 (联系Email: eelwjin@scut.edu.cn)。


扫描二维码,关注我们:



文章有问题?点此查看未经处理的缓存