简介

CNN图片重生成 cnn识别图片文字_文字识别



图1:论文原文

上一篇博文简要介绍了文本检测领域较为经典的一篇文章,CNN图片重生成 cnn识别图片文字_特征向量_02。本文将继续介绍文本识别领域较为经典的一项工作,CNN图片重生成 cnn识别图片文字_CNN图片重生成_03。一般来说,在自然场景中进行文字识别主要包括以下步骤:文字检测,即找到图像中文字的大致范围,如上文CTPN的检测结果;文字识别,对定位好的文字区域进行识别,输出文字的具体内容。一般情况下,二者都是基于CNN图片重生成 cnn识别图片文字_深度学习_04+CNN图片重生成 cnn识别图片文字_特征向量_05的基本结构。而本文介绍的CNN图片重生成 cnn识别图片文字_CNN图片重生成_03是一种能够以端到端的方式训练的模型,且可以识别任意长度的序列、不需要预定义词库等。论文原文 源码


0. Abstract

在文字识别领域,当属自然场景下的文字识别最为困难。这是因为在自然场景下,文字的排列形式、文体形式、遮挡、光照等因素都会极大影响最终的检测结果。论文提出一种针对自然场景下的序列识别方法,CNN图片重生成 cnn识别图片文字_CNN图片重生成_03。简单来说,它具有如下特点:它能够以端到端的方式训练;它能够处理任意长度的序列,且不设计字符分割或水平尺度的归一化;它不需要预定义词库;模型本身体积较小,能够很好地满足实际需要。最后,在CNN图片重生成 cnn识别图片文字_文字识别_08-CNN图片重生成 cnn识别图片文字_CNN图片重生成_09CNN图片重生成 cnn识别图片文字_计算机视觉_10CNN图片重生成 cnn识别图片文字_文字识别_11上均取得了较好的结果。

论文贡献:(一)CNN图片重生成 cnn识别图片文字_CNN图片重生成_03可以以序列标注的方式进行训练,减轻了标注工作量;(二)同CNN图片重生成 cnn识别图片文字_特征向量_13的特性一样,它不需要手工提取特征;(三)它可以处理变长的序列数据;(四)在当前文本识别任务中达到了CNN图片重生成 cnn识别图片文字_特征向量_14


1. Introduction

由于实际生活中文字通常以序列方式呈现,论文将深度卷积神经网络应用于自然场景下的序列识别。文字识别与图像识别的最大不同是,文字识别中必须针对每个字符进行识别,并能够保持序列中各元素间的相对位置关系。并且,序列本身的长度可能是多变的。由于CNN图片重生成 cnn识别图片文字_特征向量_13处理的是固定尺寸的输入输出,它并不能直接用于文本识别中。

前人已有对文本识别的工作包括:使用CNN图片重生成 cnn识别图片文字_特征向量_13识别序列中的单个字符,每个字符都有单独的标签。但这种训练方式使得标注数据的工作量大大增加,没有利用序列中各元素间的语义信息,即要求模型精确地识别出每一个字符。早前,这类方法主要用于简单的英文序列识别中,但它不能够满足复杂场景下的识别,特别是含有中文的序列识别的场景中。

CNN图片重生成 cnn识别图片文字_特征向量_05是深度神经网络的又一应用,它的一大特点是可以处理序列数据,保持序列间各元素的相对位置关系。在此前,通常需要提取序列的整体特征,如使用CNN图片重生成 cnn识别图片文字_深度学习_04CNN图片重生成 cnn识别图片文字_计算机视觉_19等。此外,集中传统的文字识别方法也取得了不错的结果,包括将字符和文本转换到公共向量空间,进而将字符识别转化为检索问题、使用CNN图片重生成 cnn识别图片文字_计算机视觉_20-CNN图片重生成 cnn识别图片文字_计算机视觉_21特征等。


2. The Proposed Network Architecture

CNN图片重生成 cnn识别图片文字_计算机视觉_22



图2:CRNN整体结构

上图是CNN图片重生成 cnn识别图片文字_CNN图片重生成_03的整体结构,它主要由三个部分组成:卷积层循环层转录层。在CNN图片重生成 cnn识别图片文字_CNN图片重生成_03的底部,卷积层自动提取输入图像中的特征序列;然后循环层对特征序列的每一帧进行处理;转录层的作用是翻译循环层对于每一帧的处理结果。

2.1 Feature Sequence Extraction

上面提到,CNN图片重生成 cnn识别图片文字_特征向量_13用于提取输入图像的特征序列。具体地,特征序列的每个特征向量通过特征图上按列从左到右得到。由于卷积和池化操作都具有平移不变性,这就意味着第CNN图片重生成 cnn识别图片文字_文字识别_26个特征向量刚好对应于特征图的第CNN图片重生成 cnn识别图片文字_文字识别_26列。如下图每个特征向量所对应的感受野如下:

CNN图片重生成 cnn识别图片文字_计算机视觉_28



图3:每个特征向量所对应的感受野

2.2 Sequence Labeling

循环层部分使用的是双向CNN图片重生成 cnn识别图片文字_特征向量_05。对于每一帧的输入CNN图片重生成 cnn识别图片文字_CNN图片重生成_30(CNN图片重生成 cnn识别图片文字_CNN图片重生成_31,即输入向量的形状是CNN图片重生成 cnn识别图片文字_特征向量_32)(CNN图片重生成 cnn识别图片文字_文字识别_33),循环层产生输出CNN图片重生成 cnn识别图片文字_特征向量_34(CNN图片重生成 cnn识别图片文字_文字识别_35,即输入向量的形状是CNN图片重生成 cnn识别图片文字_深度学习_36)(CNN图片重生成 cnn识别图片文字_计算机视觉_37CNN图片重生成 cnn识别图片文字_计算机视觉_38表示所识别的序列的长度)。这里使用双向CNN图片重生成 cnn识别图片文字_特征向量_05的考虑主要有:首先CNN图片重生成 cnn识别图片文字_特征向量_05具有捕捉序列中的上下文信息的功能,这使得在自然场景下的文本识别精度更高。其次,与CNN图片重生成 cnn识别图片文字_深度学习_04一样,CNN图片重生成 cnn识别图片文字_特征向量_05也能反向传播更新参数,这使得二者可以在单个网络中共同训练。最后CNN图片重生成 cnn识别图片文字_特征向量_05能够处理变长的序列。

传统意义上,CNN图片重生成 cnn识别图片文字_特征向量_05内含有自连接的隐藏层。当接受的输入为CNN图片重生成 cnn识别图片文字_CNN图片重生成_30时,当前隐藏单元的状态CNN图片重生成 cnn识别图片文字_文字识别_46由输入CNN图片重生成 cnn识别图片文字_CNN图片重生成_30和前一状态CNN图片重生成 cnn识别图片文字_文字识别_48共同决定,即CNN图片重生成 cnn识别图片文字_CNN图片重生成_49。如下图所示:

CNN图片重生成 cnn识别图片文字_计算机视觉_50



图4:RNN(图来自这里)

然后通过CNN图片重生成 cnn识别图片文字_文字识别_46得到输出CNN图片重生成 cnn识别图片文字_特征向量_34。在这个过程中,过去的信息CNN图片重生成 cnn识别图片文字_深度学习_53被收集起来用于预测输出。由于深度和CNN图片重生成 cnn识别图片文字_特征向量_05中隐藏层的设计,CNN图片重生成 cnn识别图片文字_特征向量_05通常会遭受梯度消失和梯度爆炸的问题。因此,现在常用的CNN图片重生成 cnn识别图片文字_特征向量_05结构是长短期记忆网络,CNN图片重生成 cnn识别图片文字_CNN图片重生成_57,它的结构如下:

CNN图片重生成 cnn识别图片文字_文字识别_58



图5:LSTM

如上图是CNN图片重生成 cnn识别图片文字_CNN图片重生成_57的单元结构,它在CNN图片重生成 cnn识别图片文字_特征向量_05的基础上添加了三个门控单元,分别是输入门控、输出门控和遗忘门控。门控的设计是让信息以一种选择性的方式通过,它的主要作用是在相应地方添加或删除信息。通过门控单元,CNN图片重生成 cnn识别图片文字_CNN图片重生成_57能够记住过去更长时期的信息,也就解决了梯度消失的问题;也能够及时删除不重要的信息,也就解决了梯度爆炸的问题。但我们找到,序列中的文本其实是有前后位置信息的,如老鹰__小鸡中我们需要填入一个动词,单独考虑老鹰或者小鸡的元素我们并不能很好地确定所填位置的信息。所以在实际使用过程中,通常将CNN图片重生成 cnn识别图片文字_CNN图片重生成_57设计成一个双向的结构,这也是论文中所使用的结构。如下图:

CNN图片重生成 cnn识别图片文字_深度学习_63



图6:双向LSTM

在双向CNN图片重生成 cnn识别图片文字_CNN图片重生成_57中,误差的梯度按上图中箭头的反方向传播以更新相关参数。为了连接卷积层和循环层间的梯度,论文在二者之间加入一个名为CNN图片重生成 cnn识别图片文字_特征向量_65-CNN图片重生成 cnn识别图片文字_文字识别_66-CNN图片重生成 cnn识别图片文字_深度学习_67的层。

2.3 Transcription

转录层的主要功能是将循环层的预测结果转化成标签序列,即取最高概率的转换结果。通常存在两种转换的方式:无词典基于词典。词典是指一组标签序列,而模型的预测结果受限于这组序列。因此在基于词典的方法中,模型选择具有最高概率的标签序列作为预测结果。

2.3.1 Probability of Label Sequence

在标签序列的预测中,论文所使用的是CNN图片重生成 cnn识别图片文字_CNN图片重生成_68。序列CNN图片重生成 cnn识别图片文字_特征向量_69的预测概率根据循环层的输出,即CNN图片重生成 cnn识别图片文字_文字识别_35得到,这时并不需要考虑序列中每个字符的位置。因此,使用负对数似然函数作为目标函数来训练网络时,我们仅需要图像本身以及对应的标签序列,从而避免对序列中的每个字符进行标注。

CNN图片重生成 cnn识别图片文字_CNN图片重生成_68中所定义的条件概率公式如下:转录层的输入是CNN图片重生成 cnn识别图片文字_文字识别_35,其中CNN图片重生成 cnn识别图片文字_CNN图片重生成_73表示序列的长度。因此,CNN图片重生成 cnn识别图片文字_CNN图片重生成_74,即CNN图片重生成 cnn识别图片文字_特征向量_75的分布位于CNN图片重生成 cnn识别图片文字_CNN图片重生成_76空间内。其中CNN图片重生成 cnn识别图片文字_深度学习_77,其中CNN图片重生成 cnn识别图片文字_特征向量_78是我们预测结果的集合,如我们需要预测小写英文字母序列,即CNN图片重生成 cnn识别图片文字_深度学习_79CNN图片重生成 cnn识别图片文字_CNN图片重生成_80表示空白区域,因为有时候的预测区域可能并不包含字符。然后定义序列映射函数为CNN图片重生成 cnn识别图片文字_文字识别_81,它作用于序列CNN图片重生成 cnn识别图片文字_文字识别_82,其中CNN图片重生成 cnn识别图片文字_CNN图片重生成_73表示加入空格后序列的长度。即CNN图片重生成 cnn识别图片文字_文字识别_81的作用可以描述为:CNN图片重生成 cnn识别图片文字_CNN图片重生成_85。现举例说明如下:

  • CNN图片重生成 cnn识别图片文字_文字识别_86
  • CNN图片重生成 cnn识别图片文字_深度学习_87
  • CNN图片重生成 cnn识别图片文字_计算机视觉_88
  • CNN图片重生成 cnn识别图片文字_深度学习_89
  • CNN图片重生成 cnn识别图片文字_文字识别_90

其中CNN图片重生成 cnn识别图片文字_深度学习_91代表空格。CNN图片重生成 cnn识别图片文字_CNN图片重生成_68的做法是,将条件概率定义为将所有CNN图片重生成 cnn识别图片文字_计算机视觉_93映射为CNN图片重生成 cnn识别图片文字_CNN图片重生成_94的概率之和:CNN图片重生成 cnn识别图片文字_深度学习_95

式中CNN图片重生成 cnn识别图片文字_文字识别_96表示CNN图片重生成 cnn识别图片文字_计算机视觉_93也有可能转化为其他字符串,如上述第一个序列可能转化为CNN图片重生成 cnn识别图片文字_文字识别_98等。则CNN图片重生成 cnn识别图片文字_特征向量_99的定义如下:CNN图片重生成 cnn识别图片文字_深度学习_100

式中CNN图片重生成 cnn识别图片文字_计算机视觉_101是时间变量,CNN图片重生成 cnn识别图片文字_特征向量_102表示在CNN图片重生成 cnn识别图片文字_计算机视觉_101时刻,标签为CNN图片重生成 cnn识别图片文字_计算机视觉_104的概率。如对于上述举例的第一个来说,假定令当前标签为CNN图片重生成 cnn识别图片文字_CNN图片重生成_105CNN图片重生成 cnn识别图片文字_文字识别_106,即CNN图片重生成 cnn识别图片文字_CNN图片重生成_107,则各CNN图片重生成 cnn识别图片文字_CNN图片重生成_108的定义如下:CNN图片重生成 cnn识别图片文字_文字识别_109

2.3.2 Lexicon-Free Transcription

在无词典的转录方式中,将式CNN图片重生成 cnn识别图片文字_特征向量_110中得到的最大概率所对应的序列CNN图片重生成 cnn识别图片文字_特征向量_69作为最终的预测结果。但通常为了简便,直接令预测结果CNN图片重生成 cnn识别图片文字_CNN图片重生成_112为:CNN图片重生成 cnn识别图片文字_深度学习_113

即直接令CNN图片重生成 cnn识别图片文字_特征向量_75最大概率的转化结果作为预测结果,后续通过去掉空格和去重等操作得到最终的检测序列。

2.3.3 Lexicon-Based Transcription

在基于词典的转录方式中,每个样本都与词典CNN图片重生成 cnn识别图片文字_CNN图片重生成_115有关。这时,通常直接将式CNN图片重生成 cnn识别图片文字_特征向量_110的最大概率所对应的序列作为最终的预测结果,即:CNN图片重生成 cnn识别图片文字_计算机视觉_117

但对于上式,当CNN图片重生成 cnn识别图片文字_CNN图片重生成_115变得非常大时,式CNN图片重生成 cnn识别图片文字_文字识别_119相对应的计算量也会激增。为了解决这一问题,论文借助无词典的转录方式的特点,由于该方法得到的检测结果同真实值很接近(这里通常使用编辑距离衡量,编辑距离的定义是一个字符串转化为另一个字符串所需要的最少操作数)。因此论文的做法是缩小搜索空间,将最终结果限制在无词典转录方式得到的检测结果的领域CNN图片重生成 cnn识别图片文字_深度学习_120内,其中CNN图片重生成 cnn识别图片文字_深度学习_121表示最大编辑距离、CNN图片重生成 cnn识别图片文字_深度学习_122表示由无词典转录方式得到的检测结果,即:CNN图片重生成 cnn识别图片文字_特征向量_123

这里,领域CNN图片重生成 cnn识别图片文字_深度学习_120可以通过CNN图片重生成 cnn识别图片文字_文字识别_125树而快速得到。CNN图片重生成 cnn识别图片文字_文字识别_125树搜索的时间复杂度为CNN图片重生成 cnn识别图片文字_CNN图片重生成_127,其中CNN图片重生成 cnn识别图片文字_CNN图片重生成_128为词典的大小。因此,该方法可以满足大规模词典的情景。

2.4 Network Training

对于网络的训练,令CNN图片重生成 cnn识别图片文字_计算机视觉_129表示训练数据集,其中CNN图片重生成 cnn识别图片文字_特征向量_130表示输入图像、CNN图片重生成 cnn识别图片文字_计算机视觉_131表示标注的标签序列。训练目标是最小化上述条件概率对应的的负对数似然函数:CNN图片重生成 cnn识别图片文字_特征向量_132


3. Experiments

3.1 Datasets

论文所使用的数据集包括CNN图片重生成 cnn识别图片文字_计算机视觉_133CNN图片重生成 cnn识别图片文字_文字识别_134CNN图片重生成 cnn识别图片文字_文字识别_135CNN图片重生成 cnn识别图片文字_计算机视觉_10,论文的使用情况如下:

  • CNN图片重生成 cnn识别图片文字_文字识别_137包含CNN图片重生成 cnn识别图片文字_文字识别_138张自然场景图像,然后忽略那些不包含字母序列和少于三个字符的序列。最后得到CNN图片重生成 cnn识别图片文字_CNN图片重生成_139张裁剪的包含文本序列的图片,且每个序列的元素都存在于一个CNN图片重生成 cnn识别图片文字_特征向量_140词的词典内;
  • CNN图片重生成 cnn识别图片文字_深度学习_141包含CNN图片重生成 cnn识别图片文字_深度学习_142张裁剪的文本图像;
  • CNN图片重生成 cnn识别图片文字_CNN图片重生成_143包含CNN图片重生成 cnn识别图片文字_深度学习_144张裁剪的文本图像;
  • CNN图片重生成 cnn识别图片文字_CNN图片重生成_145包含CNN图片重生成 cnn识别图片文字_计算机视觉_146张街景图像,共产生CNN图片重生成 cnn识别图片文字_CNN图片重生成_147张裁剪的文本图像。

3.2 Implementation Details

本文所使用的CNN图片重生成 cnn识别图片文字_深度学习_04部分是CNN图片重生成 cnn识别图片文字_计算机视觉_149,其结构图如下:

CNN图片重生成 cnn识别图片文字_深度学习_150



图7:VGG

3.3 Comparative Evaluation

CNN图片重生成 cnn识别图片文字_CNN图片重生成_151



图8:CRNN与其他模型的对比


4. Conclusion

本文所介绍是经典的基于深度学习的文本识别一篇文章。总体来看,它包含三大结构:卷积层、循环层、转录层,分别对应于CNN图片重生成 cnn识别图片文字_深度学习_04CNN图片重生成 cnn识别图片文字_特征向量_05CNN图片重生成 cnn识别图片文字_CNN图片重生成_68。其中,本文只对CNN图片重生成 cnn识别图片文字_特征向量_05CNN图片重生成 cnn识别图片文字_CNN图片重生成_68做了简要介绍,CNN图片重生成 cnn识别图片文字_特征向量_05的门控单元、CNN图片重生成 cnn识别图片文字_CNN图片重生成_68的求导机制等没有提及,详细内容可参考对应论文。最后,当前,对于自然场景下的文本识别,大多数做法是先做文本检测、再做文本识别,一站式端到端的识别方法较少,后续我也会关注几种经典的方法。其中由于文本检测可以借助于目标检测思路,而当前目标检测方法得到了很大的发展,所以基本能够保证文本识别的基本前提——文本检测。


参考

  1. Shi B, Bai X, Yao C. An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2016, 39(11): 2298-2304.
  2. https://zhuanlan.zhihu.com/p/43534801.