End-to-End Text Recognition with Convolutional Neural Networks
卷积神经网络的端到端文本识别
摘要:在自然图像中的完全端到端文本识别是一个具有挑战性的问题,近来已经受到极大关注。在这一领域的传统系统依靠精心设计的模型结合仔细手工工程特征或大量的先验知识。在本文中,我们采取不同的路线,并结合大型多层神经网络的表示力量与无监督特征学习的最近发展,这允许我们使用通用框架来训练高精度文本检测器和字符识别器模块。然后,只使用简单的现成方法,我们将这两个模块集成到一个完整的端到端,词典驱动,场景文本识别系统,实现了标准基准的最先进的性能,即街道 查看文本和ICDAR 2003。
1简介
从自然图像中提取文本信息是许多实际应用中的一个具有挑战性的问题。与扫描文档的字符识别不同,在无约束图像中识别文本由于背景,纹理,字体和照明条件的广泛变化而变得复杂。因此,许多文本检测和识别系统依赖于巧妙地手工设计的特征来表示基础数据。还经常需要复杂的模型,例如条件随机场或图像结构,以将原始检测/识别输出组合成一个完整的系统。在本文中,我们从不同的角度攻击这个问题。对于低级数据表示,我们使用无人监督的特征学习算法,可以自动从给定数据提取特征。这样的算法在诸如视觉识别和动作识别的许多相关领域中已经获得了许多成功。在文本识别的情况下,系统在文本检测和字符识别中使用简单且可扩展的特征学习架构来实现竞争性结果,其包括非常少的手工工程和先验知识。我们将这些学习的特征集成到一个大的,区别训练的卷积神经网络(CNN)。CNN在诸如手写识别,视觉对象识别和字符识别的类似问题中获得了许多成功。通过利用这些网络的表现力,我们能够训练高精度的文本检测和字符识别模块。使用这些模块,我们可以构建一个端到端的系统,只有简单的后处理技术,如非最大抑制(NMS)和波束搜索。尽管其简单,我们的系统在标准测试集上实现了最先进的性能。
2学习架构
在本节中,我们描述了我们的文本检测器和字符识别器模块,它们是我们完整的端到端系统的基本组成部分。给定一个32乘32像素的窗口,检测器确定窗口是否包含居中的字符。类似地,识别器决定窗口中的62个字符(26个大写字母,26个小写字母和10个数字)中的哪一个。如第3节中详细描述的,我们在整个场景图像上滑动探测器,以识别文本的候选行,在其上执行字级分割和识别以获得端到端结果。对于检测和识别,我们使用一个多层,卷积神经网络(CNN)类似于[8,16]。我们的网络有两个卷积层,分别有n1和n2滤波器。我们用于检测n1 = 96和n2 = 256的网络如图1所示,而一个更大的,但结构相同的(n1 = 115和n2 = 720)用于识别。我们用类似于[2,3]的无监督学习算法训练网络的第一层。特别地,给定如图2所示的一组32乘32灰度训练图像1,我们随机提取m×8×8的块,其被对比度规格化和ZCA白化以形成输入向量x(i) ∈R64,i∈{1,…,m}。然后我们使用[2]中描述的K-means变量学习一组低电平滤波器D∈R64×n1。对于单个标准化和白化的8×8补丁x,我们通过使用滤波器组执行内积来计算其第一层响应z,随后是标量激活函数:z = max {0,| DTx | - α},其中α= 0.5是超参数。给定32×32输入图像,我们对于每个8×8子窗口计算z以获得25×25乘n1的第一层响应图。如在CNN中常见的,我们在第一层响应图上平均池以使其尺寸为5乘5乘n1。我们在第一层的顶部堆叠另一个卷积和平均池层,以获得2×2×n2的第二层响应图。这些输出完全连接到分类层。我们通过反向传播L2-SVM分类误差2来区别性地训练网络,但是我们固定在第一卷积层中的滤波器(从K均值学习)。给定网络的大小,使用多个GPU执行微调。
3端到端流水线集成
我们的完整端到端系统使用后处理技术将词典与我们的检测/识别模块结合,包括NMS和波束搜索。在这里,我们假设给定一个特定图像的词典(几十到几百个候选词的列表)。正如在[18]中所论证的,这通常是一个有效的假设,因为我们可以使用先验知识将搜索限制在许多应用中的某些单词。管道主要包括以下两个阶段:
(1)我们对高分辨率输入图像运行滑动窗口检测以获得一组候选文本行。 使用这些检测器响应,我们还估计线中的空间的位置。
(2)我们使用波束搜索[15]将字符响应与候选间隔集成,以获得完整的端到端结果。
首先,给定输入图像,我们使用多尺度,滑动窗口检测来识别文本的水平线。在每个尺度s,我们评估缩放图像中每个点(x,y)处的检测器响应Rs [x,y]。如图3所示,以正确尺度的单个字符为中心的窗口产生正Rs [x,y]。我们将NMS [13]应用于每个单独行r中的Rs [x,r],以估计水平线上的字符位置。对于具有非零R_s [x,r]的行r,我们形成具有与缩放的滑动窗口相同的高度的线级边界框Lr。Lr的左边界和右边界被定义为min(x)和max(x),当R_s [x,r]> 0时。这产生一组可能重叠的线级边界框。我们通过平均Rs [x,r]的非零值对每个方框进行评分。然后我们应用标准NMS来去除与另一个更高分数的框重叠超过50%的所有L,并且获得最后一组线级边界框L。由于词之间的间隙产生明显的负响应,我们还通过对负响应应用与上述相同的NMS技术来估计每个Lr内的可能的空间位置。在识别文本的水平线之后,我们将文本的行共同分割成单词并识别该行中的每个单词。给定线级边界框L及其候选空间位置,我们使用维特比风格算法评估许多可能的词级边界框,并使用类似于[9]的波束搜索技术找到最佳分割方案。为了评估词级边界框B,我们在其上滑动字符识别器并获得62×N的分数矩阵M,其中N是边界框内的滑动窗口的数量。直观地,更正的M(i,j)表示具有索引i的字符以第j个窗口的位置为中心的机会较高。与检测阶段类似,我们在M上执行NMS以选择字符最可能存在的列。M的其他列设置为-∞。然后,我们找到最好匹配分数矩阵M的词典词w ,如下:给定词典词w,计算对齐分数,其中lw是w中的字符和M的列之间的对齐向量。Sm可以使用类似于[17]的维特比样式对齐算法有效地计算。我们计算所有词典单词的Sm,并用最高分数词w 标记单词级边界框B. 我们取Sb = Sm作为B的识别分数。已经定义了单个边界框的识别分数,现在我们可以使用波束搜索[15]系统地评估可能的词级分割,广度优先搜索的变体根据一些启发式得分探索前N个可能的部分分割。在我们的例子中,候选分割的启发性得分是在一行文本L中的所有结果边界框上的Sb的总和。为了处理来自文本检测阶段的可能的假阳性,我们基于它们的识别分数来划定单独的分段。以这种方式,具有低识别分数的片段被修剪为“非文本”。
4实验结果
在本节中,我们给出了我们的文本识别管道的详细评估。我们测量裁剪字符和词识别准确性,以及我们的系统在ICDAR 2003 [10]和街景文本(SVT)[18]数据集的端对端文本识别性能。除此之外,我们还执行额外的分析来评估模型大小对管道不同阶段的重要性。
首先,我们评估ICDAR 2003数据集上的字符识别器模块。我们的62路字符分类器对来自ICDAR 2003测试集的裁剪字符达到83.9%的最先进的精度。在同一基准上最好的已知结果是81.7%[2]。我们的字识别子系统是根据来自ICDAR 2003和SVT数据集的完美裁剪单词的图像评估的。我们使用与[18]完全相同的测试设置。更具体地,我们使用包含来自ICDAR测试集合(称为I-WD)的所有单词的词典来测量词级精度,并且使用由该图像的地面真实词组成的词典加上从图像中添加的50个随机“干扰”词语 测试集(称为I-WD-50)。对于SVT数据集,我们使用提供的词典来评估准确性(称为SVTWD)。 表1比较了我们的结果与[18]和最近的工作[11]。
我们在ICDAR 2003和SVT数据集上评估我们的最终端到端系统,其中我们在给定词典的情况下定位和识别全景图像中的单词。对于SVT数据集,我们使用提供的词典; 对于ICDAR 2003数据集,我们使用由[18]的作者提供的5,20和50干扰词的词典,以及由测试集中的所有词组成的“FULL”词典。我们分别称之为基准I-5,I-20,I-50和I-FULL。像[18],我们只考虑至少有3个字符的字母数字字。图5显示了我们系统的一些示例输出。我们遵循[10]中描述的标准评估标准来计算精度和回忆。 图4显示了ICDAR 2003数据集上不同基准的精确度和召回率图。除了使用已知词典的设置之外,我们还通过使用大词典L的常用词将我们的系统扩展到更一般的设置。因为在这种情况下搜索所有词是不可行的,所以我们将搜索限制为“视觉上可信的”词的小子集P∈L。我们首先对位置和字符类的分数矩阵M执行NMS,然后用不同的值对其进行阈值以获得一组原始字符串。将原始字符串输入到Hunspell5中以产生一组建议的单词作为我们较小的词典P.使用这个简单的设置,我们在ICDAR数据集上获得0.54 / 0.30 / 0.38(精确度/回忆/ F评分)的分数。这与用通用词典[14]获得的最好的已知结果0.42 / 0.39 / 0.40相当。
为了分析模型大小对管道不同阶段的影响,我们还使用较少的第二层卷积滤波器训练检测和识别模块。检测模块具有n2 = 64和128,而在我们的完整模型中为256。我们分别称为检测模块D64,D128和D256。类似地,我们称为识别模块C180,C360和C720,其对应于n2 = 180,360和720。与全模型相比,较小的模型具有大约1/4和1/2的可学习参数。为了评估检测模块的性能,我们通过裁剪来自ICDAR测试图像的补丁来构造2向(字符与非字符)分类数据集。识别模块仅根据裁剪的字符进行评估。这表明较大的模型尺寸产生更好的识别模块,但不一定是更好的检测模块。最后,我们评估3个不同的识别模块在I-FULL基准,与D256作为所有3种情况的检测器。端对端F分数相对于表3中的相应分类准确度列出。结果表明,较高的字符分类精度确实产生更好的端到端结果。 这个趋势与自然图像中房屋号码识别的发现[12]是一致的。
5. 总结
在本文中,我们考虑了一种用于端对端文本识别的新方法。 通过利用大的,多层的CNN,我们训练强大和鲁棒的文本检测和识别模块。由于表示能力的这种增加,我们能够使用简单的非最大抑制和波束搜索技术来构造完整的系统。这表示与以前通常依赖于复杂的图形模型或精心手工设计的系统的偏离。作为这种方法的力量的证据,我们已经展示了字符识别以及词汇裁剪词识别和端到端识别的最佳结果。更重要的是,我们可以通过利用传统的开源拼写检查器轻松地将我们的模型扩展到通用设置,从而实现与最先进技术相当的性能。