论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application

论文链接:https://arxiv.org/pdf/1507.05717v1.pdf
sequence recognition

论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application

  1. CNN+RNN+CTC(CRNN+CTC)
  2. CNN+Seq2Seq+Attention

这篇文章的核心,就是将CNN/LSTM/CTC三种方法结合:
1.首先CNN提取图像卷积特征
2.然后LSTM进一步提取图像卷积特征中的序列特征
3.最后引入CTC解决训练时字符无法对齐的问题
解释:
CTC是一种Loss计算方法,用CTC代替Softmax Loss,训练样本无需对齐。CTC特点:

  • 引入blank字符,解决有些位置没有字符的问题
  • 通过递推,快速计算梯度

摘要

基于图像的序列识别一直是计算机视觉中长期存在的研究课题。在本文中,我们研究了场景文本识别的问题,这是基于图像的序列识别中最重要和最具挑战性的任务之一。提出了一种将特征提取,序列建模和转录整合到统一框架中的新型神经网络架构。与以前的场景文本识别系统相比,所提出的架构具有四个不同的特性:
(1)与大多数现有的组件需要单独训练和协调的算法相比,它是端对端训练的。
(2)它自然地处理任意长度的序列不涉及字符分割或水平尺度归一化。
(3)它不仅限于任何预定义的词汇,并且在无词典和基于词典的场景文本识别任务中都取得了显著的表现。
(4)它产生了一个有效而小得多的模型,这对于现实世界的应用场景更为实用。
在包括IIIT-5K,Street View Text和ICDAR数据集在内的标准基准数据集上的实验证明了提出的算法比现有技术的更有优势。此外,提出的算法在基于图像的音乐得分识别任务中表现良好,这显然证实了它的泛化性。

1 介绍

最近,社区已经看到神经网络的强大复兴,这主要受到深度神经网络模型,特别是深度卷积神经网络(DCNN)在各种视觉任务中的巨大成功的推动。然而,最近大多数与深度神经网络相关的工作主要致力于检测或分类对象类别[12,25]。在本文中,我们关注计算机视觉中的一个经典问题:基于图像的序列识别。在现实世界中,稳定的视觉对象,如场景文字,手写字符和乐谱,往往以序列的形式出现,而不是孤立地出现。与一般的对象识别不同,识别这样的类序列对象通常需要系统预测一系列对象标签,而不是单个标签。因此,可以自然地将这样的对象的识别作为序列识别问题。类序列对象的另一个独特之处在于它们的长度可能会有很大变化。例如,英文单词可以由2个字符组成,如“OK”,或由15个字符组成,如“congratulations”。因此,最流行的深度模型像DCNN[25,26]不能直接应用于序列预测,因为DCNN模型通常对具有固定维度的输入和输出进行操作,因此不能产生可变长度的标签序列。

已经针对特定的类似序列的对象(例如场景文本)进行了一些尝试来解决该问题。例如,[35,8]中的算法首先检测单个字符,然后用DCNN模型识别这些检测到的字符,并使用标注的字符图像进行训练。这些方法通常需要训练强字符检测器,以便从原始单词图像中准确地检测和裁剪每个字符。一些其他方法(如[22])将场景文本识别视为图像分类问题,并为每个英文单词(总共9万个词)分配一个类标签。结果是一个大的训练模型中有很多类,这很难泛化到其它类型的类序列对象,如中文文本,音乐配乐等,因为这种序列的基本组合数目可能大于100万。总之,目前基于DCNN的系统不能直接用于基于图像的序列识别。

循环神经网络(RNN)模型是深度神经网络家族中的另一个重要分支,主要是设计来处理序列。RNN的优点之一是在训练和测试中不需要序列目标图像中每个元素的位置。然而,将输入目标图像转换成图像特征序列的预处理步骤通常是必需的。例如,Graves等[16]从手写文本中提取一系列几何或图像特征,而Su和Lu将字符图像转换为序列HOG特征。预处理步骤独立于流程中的后续组件,因此基于RNN的现有系统不能以端到端的方式进行训练和优化。

一些不是基于神经网络的传统场景文本识别方法也为这一领域带来了有见地的想法和新颖的表现。例如,Almaza`n等人和Rodriguez-Serrano等人提出将单词图像和文本字符串嵌入到公共向量子空间中,并将词识别转换为检索问题。Yao等人和Gordo等人使用中层特征进行场景文本识别。虽然在标准基准数据集上取得了有效的性能,但是前面的基于神经网络的算法以及本文提出的方法通常都优于这些方法。

本文的主要贡献是一种新颖的神经网络模型,其网络架构设计专门用于识别图像中的类序列对象。所提出的神经网络模型被称为卷积循环神经网络(CRNN),因为它是DCNN和RNN的组合。对于类序列对象,CRNN与传统神经网络模型相比具有一些独特的优点:
1)可以直接从序列标签(例如单词)学习,不需要详细的标注(例如字符);
2)直接从图像数据学习信息表示时具有与DCNN相同的性质,既不需要手工特征也不需要预处理步骤,包括二值化/分割,组件定位等;
3)具有与RNN相同的性质,能够产生一系列标签;
4)对类序列对象的长度无约束,只需要在训练阶段和测试阶段对高度进行归一化;
5)与现有技术相比,它在场景文本(字识别)上获得更好或更具竞争力的表现[23,8]。
6)它比标准DCNN模型包含的参数要少得多,占用更少的存储空间。

2 提出的网络架构

如图1所示,CRNN的网络架构由三部分组成,包括卷积层,循环层和转录层,从底向上。在CRNN的底部,卷积层自动从每个输入图像中提取特征序列;在卷积网络之上,构建了一个循环网络,用于对卷积层输出的特征序列的每一帧进行预测;CRNN顶部的转录层将循环层的每帧预测转化为标签序列。虽然CRNN由不同类型的网络架构(如CNN和RNN)组成,但可以通过一个损失函数进行联合训练。

论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application
图1。网络架构。
架构包括三部分:

  1. 卷积层,从输入图像中提取特征序列;
  2. 循环层,预测每一帧的标签分布;
  3. 转录层,将每一帧的预测变为最终的标签序列。

2.1 特征序列提取

在CRNN模型中,通过采用标准CNN模型(去除全连接层)中的卷积层和最大池化层来构造卷积层的组件。这样的组件用于从输入图像中提取序列特征表示。在进入网络之前,所有的图像需要缩放到相同的高度。然后从卷积层组件产生的特征图中提取特征向量序列,这些特征向量序列作为循环层的输入。具体地,特征序列的每一个特征向量在特征图上按列从左到右生成。这意味着第i个特征向量是所有特征图第i列的连接。在我们的设置中每列的宽度固定为单个像素。
由于卷积层,最大池化层和**函数在局部区域上执行,因此它们是平移不变的。因此,特征图的每列对应于原始图像的一个矩形区域(称为感受野),并且这些矩形区域与特征图上从左到右的相应列具有相同的顺序。如图2所示,特征序列中的每个向量关联一个感受野,并且可以被认为是该区域的图像描述符。

论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application图2:感受野
提取的特征序列中的每一个向量关联输入图像的一个感受野,可认为是该区域的特征向量。

深卷积特征健壮、丰富、可训练,被广泛应用于各种视觉识别任务中。之前的一些方法已经使用CNN来学习序列类对象的健壮表示,比如场景文本。然而,这些方法通常是由CNN提取整个图像的整体表示,然后收集局部的深层特征来识别序列状对象的每个组件。由于CNN需要将输入图像缩放到固定的尺寸,以满足其固定的输入尺寸,所以序列类对象由于长度变化较大而不适合。在CRNN中,为了不受序列对象长度变化的影响,将深度特征转化为序列表示。

2.2 序列标注

一个深度双向循环神经网络是建立在卷积层的顶部,作为循环层。循环层预测特征序列x=x1,...,xTx = x_1,...,x_T中每一帧xtx_t的标签分布yty_t。循环层的优点是三重的。

首先,RNN具有很强的捕获序列内上下文信息的能力。对于基于图像的序列识别使用上下文提示比独立处理每个符号更稳定且更有帮助。以场景文本识别为例,宽字符可能需要一些连续的帧来完全描述(参见图2)。此外,一些模糊的字符在观察其上下文时更容易区分,例如,通过对比字符高度更容易识别“il”而不是分别识别它们中的每一个。

其次,RNN可以将误差差值反向传播到其输入,即卷积层,从而允许我们在统一的网络*同训练循环层和卷积层。

第三,RNN能够从头到尾对任意长度的序列进行操作。

传统的RNN单元在其输入和输出层之间具有自连接的隐藏层。每次接收到序列中的帧xtx_t时,它将使用非线性函数来更新其内部状态hth_t,该非线性函数同时接收当前输入xtx_t和过去状态ht1h_{t−1}作为其输入:ht=g(xt,ht1)h_t = g(x_t, h_{t−1})。那么预测yty_t是基于hth_t的。以这种方式,过去的上下文{{xt}t<t\lbrace x_{t\prime} \rbrace _{t \prime < t}被捕获并用于预测。然而,传统的RNN单元有梯度消失的问题[7],这限制了其可以存储的上下文范围,并给训练过程增加了负担。长短时记忆[18,11](LSTM)是一种专门设计用于解决这个问题的RNN单元。LSTM(图3所示)由一个存储单元和三个多重门组成,即输入,输出和遗忘门。在概念上,存储单元存储过去的上下文,并且输入和输出门允许单元长时间地存储上下文。同时,单元中的存储可以被遗忘门清除。LSTM的特殊设计允许它捕获长距离依赖,这经常发生在基于图像的序列中。

论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application
图3
(a) 基本的LSTM单元的结构。LSTM包括单元模块和三个门,即输入门,输出门和遗忘门。
(b)我们论文中使用的深度双向LSTM结构。结合前向(从左到右)和后向(从右到左)LSTMchans双向LSTM。堆叠多个双向LSTM产生在深度双向LSTM中。

LSTM是定向的,它只使用过去的上下文。然而,在基于图像的序列中,两个方向的上下文是相互有用且互补的。因此,我们遵循[17],将两个LSTM,一个向前和一个向后组合到一个双向LSTM中。此外,可以堆叠多个双向LSTM,得到如图3.b所示的深双向LSTM。深层结构允许比浅层抽象更高层次的抽象,并且在语音识别任务中取得了显著的性能改进[17]。

在循环层中,误差在图3.b所示箭头的相反方向传播,即反向传播时间(BPTT)。在循环层的底部,传播差异的序列被连接成映射,将特征映射转换为特征序列的操作进行反转并反馈到卷积层。实际上,我们创建一个称为“Map-to-Sequence”的自定义网络层,作为卷积层和循环层之间的桥梁。

2.3 转录

转录是将RNN所做的每帧预测转换成标签序列的过程。
数学上,转录是根据每帧预测找到具有最高概率的标签序列。
在实践中,存在两种转录模式,即无词典转录和基于词典的转录。
词典是一组标签序列,预测受拼写检查字典约束。
在无词典模式中,预测时没有任何词典。
在基于词典的模式中,通过选择具有最高概率的标签序列进行预测。

2.3.1 标签序列的概率

移除重复的labels,移除空白
“–hh-e-l-ll-oo–”(’-’ represents ’blank’) -> “hello”.
论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application

2.3.2 无字典转录

论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application

2.3.3 基于词典的转录

论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application

2.4 网络训练

论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application

3 实验

为了评估提出的CRNN模型的有效性,我们在场景文本识别和乐谱识别的标准基准数据集上进行了实验,这些都是具有挑战性的视觉任务。数据集和训练测试的设置见3.1小节,场景文本图像中CRNN的详细设置见3.2小节,综合比较的结果在3.3小节报告。为了进一步证明CRNN的泛化性,在3.4小节我们在乐谱识别任务上验证了提出的算法。

3.1. 数据集

对于场景文本识别的所有实验,我们使用Jaderberg等人[20]发布的合成数据集(Synth)作为训练数据。数据集包含8百万训练图像及其对应的实际单词。这样的图像由合成文本引擎生成并且是非常现实的。我们的网络在合成数据上进行了一次训练,并在所有其它现实世界的测试数据集上进行了测试,而没有在其训练数据上进行任何微调。即使CRNN模型是在纯合成文本数据上训练,但它在标准文本识别基准数据集的真实图像上工作良好。
有四个流行的基准数据集用于场景文本识别的性能评估,即ICDAR 2003(IC03),ICDAR 2013(IC13),IIIT 5k-word(IIIT5k)和Street View Text (SVT)。
IC03[27]测试数据集包含251个具有标记文本边界框的场景图像。王等人[34],我们忽略包含非字母数字字符或少于三个字符的图像,并获得具有860个裁剪的文本图像的测试集。每张测试图像与由Wang等人[34]定义的50词的词典相关联。通过组合所有的每张图像词汇构建完整的词典。此外,我们使用由Hunspell拼写检查字典[1]中的单词组成的5万个词的词典。
IC13[24]测试数据集继承了IC03中的大部分数据。它包含1015个实际的裁剪单词图像。
IIIT5k[28]包含从互联网收集的3000张裁剪的词测试图像。每张图像关联一个50词的词典和一个1000词的词典。
SVT[34]测试数据集由从Google街景视图收集的249张街景图像组成。从它们中裁剪出了647张词图像。每张单词图像都有一个由Wang等人[34]定义的50个词的词典。

3.2. 实现细节

在实验中我们使用的网络配置总结在表1中。卷积层的架构是基于VGG-VeryDeep的架构[32]。为了使其适用于识别英文文本,对其进行了调整。在第3和第4个最大池化层中,我们采用1×2大小的矩形池化窗口而不是传统的平方形。这种调整产生宽度较大的特征图,因此具有更长的特征序列。例如,包含10个字符的图像通常为大小为100×32,可以从其生成25帧的特征序列。这个长度超过了大多数英文单词的长度。最重要的是,矩形池窗口产生矩形感受野(如图2所示),这有助于识别一些具有窄形状的字符,例如i和l。
表1。网络配置总结。第一行是顶层。k,s,p分别表示核大小,步长和填充大小。

论文阅读:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application
Table 1

网络不仅有深度卷积层,而且还有循环层。众所周知两者都难以训练。我们发现批归一化[19]技术对于训练这种深度网络非常有用。分别在第5和第6卷积层之后插入两个批归一化层。使用批归一化层训练过程大大加快。
我们在Torch7[10]框架内实现了网络,使用定制实现的LSTM单元(Torch7/CUDA),转录层(C++)和BK树数据结构(C++)。实验在具有2.50 GHz Intel(R)Xeon E5-2609 CPU,64GB RAM和NVIDIA(R)Tesla™ K40 GPU的工作站上进行。网络用ADADELTA训练,将参数ρ设置为0.9。在训练期间,所有图像都被缩放为100×32,以加快训练过程。训练过程大约需要50个小时才能达到收敛。测试图像缩放的高度为32。宽度与高度成比例地缩放,但至少为100像素。平均测试时间为0.16s/样本,在IC03上测得的,没有词典。近似词典搜索应用于IC03的50k词典,参数δ设置为3。测试每个样本平均花费0.53s。

4 总结

在本文中,我们提出了一种新颖的神经网络架构,称为卷积循环神经网络(CRNN),其集成了卷积神经网络(CNN)和循环神经网络(RNN)的优点。CRNN能够获取不同尺寸的输入图像,并产生不同长度的预测。它直接在粗粒度的标签(例如单词)上运行,在训练阶段不需要详细标注每一个单独的元素(例如字符)。此外,由于CRNN放弃了传统神经网络中使用的全连接层,因此得到了更加紧凑和高效的模型。所有这些属性使得CRNN成为一种基于图像序列识别的极好方法。
在场景文本识别基准数据集上的实验表明,与传统方法以及其它基于CNN和RNN的算法相比,CRNN实现了优异或极具竞争力的性能。这证实了所提出的算法的优点。此外,CRNN在光学音乐识别(OMR)的基准数据集上显著优于其它的竞争者,这验证了CRNN的泛化性。实际上,CRNN是一个通用框架,因此可以应用于其它的涉及图像序列预测的领域和问题(如汉字识别)。进一步加快CRNN,使其在现实应用中更加实用,是未来值得探索的另一个方向。

参考:

  1. http://d0evi1.com/crnn/
  2. https://www.jianshu.com/p/14141f8b94e5
  3. https://zhuanlan.zhihu.com/p/43534801