【文字识别】SRN - Towards Accurate Scene Text Recognition with Semantic Reasoning Networks

全局语义推理模块在文本识别中的应用
该博客介绍了针对传统RNN在文本识别中局限性的新方法——全局语义推理模块(GSRM)。GSRM采用多路并行传输方式捕获全局语义上下文,提高了模型的鲁棒性和效率。网络结构包括骨干网络、并行视觉注意模块、GSRM和视觉-语义融合解码器。实验结果显示,该模型在英文和中文文本识别任务上表现出色,尤其在弯曲文本识别上具有优势。

提出背景

通常的识别模型,例如CRNN,只使用RNN来隐式的建模语义信息。然而,我们发现基于RNN的方法存在一些明显的缺点,如时间依赖的解码方式和语义上下文的单向串行传输,这极大地限制了RNN的语义信息和计算效率。

其中引入了一个全局语义推理模块(GSRM),通过多路并行传输的方式来捕获全局语义上下文。
请添加图片描述

对比multi-way并行模式,one-way串行模式有以下几个缺点:

  1. 从每个解码时间步长只能感知非常有限的语义上下文。

  2. 当在较早的step出现错误解码时,可能会传递错误的语义信息并导致错误积累。

  3. 总是耗时且效率低。

因此文章提出了全局语义推理模块:global semantic reasoning module(GSRM),GSRM以一种新颖的多路并行传输的方式来考虑全局语义上下文。多路并行传输可以同时感知一个单词或文本行中所有字符的语义信息,从而更加鲁棒和有效。此外,错误的单个字符的内容只能对其他step造成相当有限的负面影响。

网络结构

SRN的网络结构如下图所示:
请添加图片描述

SRN包括以下4个模块:骨干网络、并行视觉注意模块(PVAM)、全局语义推理模块(GSRM)、视觉-语义融合解码器(VSFD)。

首先使用主干网络提取二维特征V。然后,使用PVAM生成N个对齐的一维特征G,其中每个特征对应于文本中的一个字符,并捕获对齐的视觉信息。然后将这N个1-d特征G输入GSRM以获取语义信息S,最后将对齐的视觉特征G和语义信息S融合,用VSFD来预测N个字符。.对于小于N的文本字符串,将填充“EOS”。

骨干网络:使用ResNet50+FPN。

PVAM:PVAM输入为二维特征,通过注意力机制,为每个字符输出一个特征图。

GSRM:结构由两个关键部分组成:视觉到语义的嵌入块和语义推理块。GSRM遵循了多路并行传输的思想,从而克服了单向语义上下文传递的缺点。使用与时间无关的e‘来代替e,这样可以进行多路并行传输,e’由视觉到语义的嵌入块生成,如图5。

VSFD:图像特征G和语义特征S属于不同的领域,它们在不同情况下对最终序列识别的权重应该是不同的。VSFD使用可训练的单元,利用权重来平衡在VSFD中来自不同领域的特征的贡献。

实验结果

SRN尝试了6个英文测试集上的结果。其中包括了包含弯曲文本的测试集CUTE-80。

Table5显示了不同识别模型在这6个数据集上的对比结果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VM8yvJFj-1671774945547)(/image-20221222101501957.png)]

Table6显示了SRN在中文数据集上的识别结果。

可以看出,SRN支持弯曲文本识别,同时也支持中文识别。

### SRN-1 和 SRN-2 的定义 SRN-1 和 SRN-2 是两种不同的空间正则化网络(Spatial Regularization Network, SRN)。这两种变体在网络结构和应用场景上存在差异。 #### SRN-1 定义 SRN-1 主要关注于通过注意力机制捕捉图像中不同区域的重要性。具体来说,SRN-1 利用了卷积层生成的特征图来创建针对每个标签的空间注意力图。这些注意力图能够突出显示与特定标签最相关的图像部分[^3]。 ```python def srn_1(image_features, labels): attention_maps = [] for label in labels: # Generate an attention map per label using convolution operations attention_map = conv_layer(image_features) attention_maps.append(attention_map) return attention_maps ``` #### SRN-2 定义 相比之下,SRN-2 更加注重标签间的相互作用以及它们在整个图像上的分布情况。除了为每个标签生成独立的注意力图外,SRN-2 还会计算一对或多对标签之间的关联度,并据此调整最终输出的概率分布。 ```python def srn_2(image_features, labels): individual_attention_maps = srn_1(image_features, labels) pairwise_interactions = [] for i in range(len(labels)): for j in range(i+1, len(labels)): interaction = compute_interaction(individual_attention_maps[i], individual_attention_maps[j]) pairwise_interactions.append(interaction) adjusted_probabilities = adjust_output_distribution(pairwise_interactions) return adjusted_probabilities ``` ### 区别 主要区别在于: - **处理方式**:SRN-1 集中于单个标签的关注区定位;而 SRN-2 不仅考虑单一标签的影响,还分析了多个标签间的关系。 - **复杂程度**:由于增加了标签交互建模环节,SRN-2 的模型参数更多,训练难度更大但也更强大。 - **适用范围**:对于那些需要精确识别并区分相似物体的任务,比如医学影像诊断或细粒度视觉分类,SRN-2 可能表现更好;而对于简单的目标检测,则可能不需要如此复杂的机制,此时 SRN-1 就足够了。 ### 使用场景 - **SRN-1 场景** - 应用于简单的对象检测任务,在这类任务中只需确定某个类别的位置即可满足需求。 - **SRN-2 场景** - 当面对多类别重叠或者高度相关的情况时更为有效,例如在自然场景下的文字识别、交通标志解析等领域,可以更好地理解上下文信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值