文章目录
0. 引言
场景文本识别,大家是不是都困扰与面对形态各异的字符,我们如何正确识别呢?尤其是一些艺术字符,识别更是难上加难。那么我们能不能忽略掉字形特征,只关注文本内容本身呢,这篇文章就给出了答案。
1. 摘要
近年来,场景文本识别(STR)已得到了广泛的研究。许多最近提出的方法都是经过专门设计的,以适应场景文本的任意形状,布局和方向,但是忽略了各种字体(或书写)样式也给STR带来了严峻挑战。这些方法(使字符的字体特征和内容特征纠缠在一起)在具有新颖字体样式的文本的场景图像上的文本识别中表现不佳。为了解决这个问题,我们通过注意生成大量字体样式的字形来探索场景文本的字体无关特征。具体来说,我们引入可训练的字体嵌入来塑造生成的字形的字体样式,场景文本的图像特征仅代表其基本模式。生成过程以空间注意机制为指导,有效地处理不规则文本,生成比现有图像到图像翻译方法更高质量的字形。在几个STR基准测试上进行的实验表明,与现有技术相比,我们的方法具有优越性。
2. 动机
- 深度学习技术被广泛应用于场景文本识别。然而,在这些框架中没有明确的机制来保证从学习的特征中删除字体样式信息。换句话说,这些框架对文本图像的字体样式和内容没有明确的概念,这就削弱了它们的泛化能力。
- 这些模型往往无法提取区分特征,以准确识别新字体样式的文本图像,如图1所示。最近的一份调查报告[1]支持了我们的观点,报告说“难用的字体”在STR中仍然是一个具有挑战性和持续性的问题。
3. 创新点
- 本文研究了如何从场景文本中提取与字体无关的特征,使我们的模型能够很好地推广到新颖字体中的场景文本。
- 具体来说,我们引入可训练的字体嵌入,它与场景文本特征连接,以生成各种字体样式的字形。训练出的字体作为目标字形的字体特征,减少场景文本特征中不必要的字体样式信息。
- 为了适应场景文本的任意形状和布局,我们遵循空间注意机制的指导,逐个生成字形。在每一个生成步骤中,我们使用一个基于GAN的生成器将CNN的特征从聚焦位置转换为多个字体的字形。
- 通过实验,我们发现我们的技术使模型对字体变化的敏感性降低,显著提高了STR的性能。
4. 主要框架
4.1 总体流程
在给定输入图像
x
x
x的情况下,首先采用CNN特征提取器提取其视觉特征
f
(
x
)
f(x)
f(x);然后我们将CNN特征
F
(
x
)
F(x)
F(x)发送到序列编码器和解码器(如LSTM和Transformer)中进行序列建模。在解码步骤t中,CNN特征映射
F
(
x
)
F(x)
F(x)和序列解码器
h
(
x
,
t
)
h(x,t)
h(x,t)的隐藏层输出一起输入注意模块,计算注意掩码
M
(
x
,
t
)
M(x,t)
M(x,t):
它决定在这个时候哪个位置应该更受关注。然后,通过将视觉特征
F
(
x
)
F(x)
F(x)乘以所有通道上的注意力掩码,我们得到一个加权向量(the glimpse vector):
我们的主要贡献在于,利用瞥见向量(the glimpse vector)生成它的多字体字形并同步预测字符符号。采用基于GAN的生成器生成字形:
其中
z
k
z_k
zk表示字体嵌入,决定目标字形的字体样式;方括号表示串联;
m
m
m为选定目标字体的个数。
z
1
,
z
2
,
…
z
m
z_1,z_2,…z_m
z1,z2,…zm将被视为可训练变量,以更好地充当字形的字体条件。同时,采用
h
(
x
,
t
)
h(x,t)
h(x,t)和
c
(
x
,
t
)
c(x,t)
c(x,t)来预测当前步进符号:
4.2 序列编码解码器及注意模块
这里并不是作者的创新点和主要工作所在,这里就不赘述,感兴趣的可以看一下该论文。本文所使用的是2D Attention,参考的论文show, attend and read: A simple and strong baseline for irregular text recognition。
4.3 多字体字形生成
字形发生器由一组反卷积层组成,逐步将瞥见矢量映射成字形。本文提出的字形生成方法主要有两个方面:(1)字体嵌入与网络参数同步优化。它们更好地充当生成的字形的字体样式,以便CNN和注意力模块能够集中精力从场景文本中提取与字体无关的特征;提出了一种注意层次生成框架,该框架能有效地生成高质量的字形图像。
4.3.1 可训练字体嵌入
生成的字形的字体样式由字体嵌入 z k z_k zk控制。我们要确保 F ( x ) F(x) F(x)已经捕捉到足够可靠的输入字符的内容特征,以便 z k z_k zk操作生成的字形的字体样式。 z 1 , z 2 , … , z m z_1,z_2,…,z_m z1,z2,…,zm被视为可训练变量,并将根据所选的字体样式进行微调。我们采用梯度下降来优化字体嵌入。通过优化字体嵌入,我们的模型将各种字体样式具体化为一个有意义的特征空间。
4.3.2 字体感知注意跳跃连接
CNN的多尺度特征用于更精确地重建字形的形状,如下图所示:
设
i
(
1
≤
i
≤
l
)
i(1≤i≤l)
i(1≤i≤l)为CNN选取的多尺度特征的指标。CNN特征首先乘以注意掩码,然后通过所有通道的完全连接或求和进行转换,然后与字体嵌入连接,最后发送到字形生成器。
M
i
M^i
Mi和
z
i
z^i
zi从原始
M
M
M和
Z
Z
Z分别进行上采样得到的。
4.3.3 字形鉴别器
根据GANs的体系结构,引入了一个字形识别器来区分生成的字形和真实的字形。字形鉴别器是一个轻量级的CNN,后面是一个具有sigmoid激活的完全连接层。给定一个真实的(基本真实)字形或生成的字形作为输入,它输出一个被解释为输入字形的概率的值实数:
字形生成器试图最大化:
字形生成器试图最小化:
字形生成器试图最大化:
通过他们之间的对抗性博弈,生成的字形质量可以不断提高。
4.4 损失函数
基本损失函数由两项组成(交叉熵损失和L1损失):
在实施对抗性训练时,有两个目标函数需要迭代优化:
5. 实验
我们进行了大量的实验来验证我们的模型的有效性,并将其性能与其他最先进的方法进行了比较。
由于新颖字体的场景文本在上述测试数据集中只占很小的比例,所以我们的方法在下表中的优越性并不显著。在SVTP和CT80这两个分别包含639和288幅图像的相对较小的数据集上,我们的模型的性能略差于。一般来说,与其他型号相比,我们的型号实现了最先进的性能
我们收集了100个具有新颖或不寻常字体样式的文本图像,以形成一个新的数据集,命名为新颖字体场景文本(NFST)数据集 。
首先,我们认为一个新奇的字体是一个古怪和不寻常的字体。估计候选图像的字体特征分布图有助于我们的选择,如图4所示;具体来说,我们使用字体识别器来提取所有候选文本图像的字体特征。然后通过t-SNE将提取的特征降为二维。然后,根据这些文本图像的特征简化后的坐标进行附加。我们选择图中最古怪的案例,其中一些例子用红色矩形标记。具体地说,我们主要选择的文本图像在图形中的邻域比其他图像少得多。
同时,避免选择模糊、不清晰的文本图像,以这种方式,我们相信我们的NFST可以作为衡量字体健壮性的一个很好的基准STR模型。
为了充分发掘字体无关的特性,我们应该选择这些最具代表性的字体作为目标,就其流行程度而言-多样性和风格,为我们的模式学习。在我们的实验中,我们从微软排版2中选择325种字体(m=325)。由这些字体呈现的字符示例“A”如所示。在我们的实验中,每个字形的图像都被渲染出来字体大小为64,大小调整为32×32。
们在NFST数据集上进行了一个定量实验,以展示我们对字体样式变化的稳健性。我们将我们的方法与其他两种最先进的方法进行了比较。在这个数据集上,我们的方法明显优于其他方法,其对字体样式变化的鲁棒性得到了证明。
在这一节中,我们说明了字体嵌入的优化过程,以便更好地理解它们是如何工作的。如前所述,字体嵌入负责控制字形的字体样式。因此,字体嵌入需要表示所选字形的字体样式的实际分布。在图9的右上角,我们展示了字体嵌入中的值的分布如何随着训练步骤而变化。字体嵌入是随机初始化的,服从高斯分布。它在早期会发生显著变化,以适应所有字体样式的实际分布。之后在训练阶段保持相对稳定。图9还展示了使用主成分分析(PCA)将所有经过训练的字体嵌入简化为二维的可视化。不同字体中的字形‘A’根据对应的字体嵌入的坐标来附加。我们可以观察到相似的字体位置更近,而不相似的字体位置更远(字体/字符消岐)。
我们模型的最后一层特征的可视化结果,没有(左)和(右)字形生成。实验在IIIT5K测试数据集上进行。引入字形生成后,形状相似的不同字符的特征就不那么纠结了,比如‘9’和‘g’。不同字符的特征簇被更清晰地分开,并且歧义情况不那么分散。
这在上图中通过利用t-SNE 进行了展示。在图10中,每个集群由不同字体但相同字符类别的字符图像特征组成。聚类更加集中和离群显著降低。
6. 总结
为了改进场景文本识别的特征学习,提出了可训练字体嵌入的注意字形生成方法。可训练的字体嵌入为从场景文本特征上删除字体信息做出了重要贡献。此外,我们还提出利用空间注意机制来生成字形,有效地处理不规则场景文本。实验结果表明,与现有技术相比,我们的模型生成了更高质量的字形,获得了更精确的文本形状感知,并获得了更高的识别精度。未来,我们将尝试在字形生成器和鉴别器上应用更先进的GAN相关技术,以进一步提高生成的字形的质量。为了更好地定位文本图像中的每个字符,空间注意机制还有很大的改进空间