场景文本识别——基于图像序列识别的端到端可训练神经网络模型

1. 背景介绍

1.1 主题介绍

因为神经网络的强大复兴,特别是深度卷积神经网络(DCNN)模型在各类视觉任务中的巨大成功的推进,最近大多数与深度神经网络相关的工做主要致力于检测或分类对象类别。基于图像的序列识别问题一直是计算机视觉中长期存在的研究课题。本文将介绍由 Baoguang Shi 等人发表的一篇论文 An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition。在该论文中,做者研究了场景文本识别的问题,这是基于图像的序列识别中最重要和最具备挑战性的任务之一。相较于通常的对象识别任务,基于图像序列识别任务中的识别对象每每是以序列的形式出现,而不是孤立地出现。所以,识别这样的对象一般须要系统预测一系列标签而不是单个标签。序列对象另外一个独特之处在于它们的长度可能发生较大的变化。 php

1.2 研究背景

对于特定的序列对象(例如场景文本),人们已经作过一些尝试来解决此类对象的识别问题。例如,利用某种算法检测出单个字符,而后利用训练好的 DCNN 模型来识别检测到的单个字符。此类方法一般须要训练强大的字符检测器,以便从原始单词图像中精确地检测和裁剪每一个字符。另外,一些其余方法将场景文本识别视为图像分类问题,为每一个英文单词(总共 9 万个单词)分配一个类标签。运用此类方法产生的模型将有众多的类标签,所以很难泛化到其余类型的序列对象。例如,中文文本、音乐配乐等序列对象拥有上百万种类标签,该模型很难泛化到此类序列对象。所以,基于 DCNN 的系统不能直接用于基于图像的序列识别。循环神经网络(RNN)模型是深度神经网络家族中另外一个重要分支,用于处理序列问题。RNN 的一大优点是在训练和测试的时候,不须要序列对象图像中每个元素的位置信息。然而,将输入图像转换成图像特征序列的预处理步骤是必须的。预处理步骤独立于 RNN 模型的流程步骤,所以基于RNN的现有系统不能以端到端的方式进行训练和优化。
除了深度神经网络以外,一些传统的场景文本识别方法也为这一领域带来了一些新颖的想法,而且取得了优异的表现。例如,将单词图像和文本字符串嵌入到公共向量子空间并将词识别转化为检索问题、利用中层特征进行场景文本识别等方法在标准数据集上取得了有效的性能。可是此类方法与基于神经网络的算法相比较而言,模型的表现仍是较差。
在这篇文章中,做者提出了一种将特征提取、序列建模和转录整合到统一框架中的新型神经网络模型——专门用于基于图像的图像序列的识别。这种神经网络模型被称为卷积循环神经网络(CRNN)模型,由于它是 DCNN 模型和 RNN 模型的组合。 html

2. 网络结构

如图 1 所示,CRNN模型 的网络架构由三部分组成,包括卷积层、循环层和转录层(由下到上)。在 CRNN 的底部,卷积层自动从每一个输入图像中提取特征序列。在卷积网络层之上,构建一个对卷积层特征序列的每一帧进行预测的循环网络层。在 CRNN 顶部的转录层将循环层输出的帧预测转化为标签序列。CRNN 模型虽然由不一样类型的网络架构组成,但能够经过一个损失函数进行联合训练。
前端

场景文本识别1.png

图 1. 网络架构
架构包括三个部分:1)卷积层,从输入图像中提取特征序列;2)循环层,预测每一帧的标签分布;3)转录层,将每一帧的预测变为最终的标签序列。

2.1 特征序列提取

在 CRNN 模型中,卷积层部分由标准 CNN 模型中的卷积层和最大池化层组成。这一部分用来提取表示输入图片的序列特征。在输入到网络以前,全部的的图片须要被缩放到同一高度。而后,一些列的特征向量从特征图谱中被提取出来。这些特征图谱由卷积层产生,做为循环层的输入。值得注意的是,每一个特征序列的特征向量在特征图谱中从左到右一列一列地产生。这意味着第 i 个特征向量是全部特征图谱第 i 列向量的联合体。在该论文中,每列的宽度被固定设置为单个像素。
卷积、最大池化和激活函数做用在局部区域,具备平移不变性。所以,特征图谱的每一列与原始图片中的一块矩形区域对应,咱们称之为感觉野。这些矩形区域从左到右和特征图谱中的列向量一一对应。如图 2 所示,特征序列中的每个向量与对应的感觉野相关联,被看作是相应区域的图像描述符。
git

场景文本识别2.jpg

图 2. 局部感觉野
提取出的特征序列中的每个向量与输入图像中的感觉野相关联,它们能够被认为是对应区域的特征向量。
因为具备较高的鲁棒性和良好的可训练性,深层卷积特征已经被普遍运用于各类视觉识别任务。一些之前的方法都利用 CNN 来学习一个具备较好鲁棒性的表示。然而,这些方法一般经过 CNN 提取整个图像的所有表示,而后收集局部深度特征来识别序列对象的每一个份量。因为 CNN 要求将输入图像缩放到固定尺寸以知足其固定的输入尺寸,因此它不适合序列对象,并且它们长度变化较大。在 CRNN 中,咱们将深度特征传递到序列表示中,以便对序列对象的长度变化保持不变。

2.2 序列标记

在卷积层之上是一个深度双向循环神经网络来做为循环层。循环层为特征序列的每一帧预测一个标签分布。循环层的优势有三重。首先,RNN 具备很强的捕获序列上下文信息的能力。因为使用了上下文信息,基于图像的序列识别变得更加稳定有效,相比于仅仅单独使用每一个标志而言。以场景文本识别为例,较宽的字符可能须要一些连续的帧来描述。此外,在观察完上下文信息以后,一些模糊的字符会更容易区分。例如,咱们在识别 "il" 的时候,经过对比两个字母的高度,咱们能够更加容易地识别出它们。其次,RNN 能够将偏差值反向传播到其输入层,即卷积层。从而容许咱们在统一的网络中共同训练循环层和卷积层。最后,RNN 可以从头至尾对任意长度的序列进行操做。
github

场景文本识别3.jpg

图 3. (a)基本的 LSTM 单元结构。LSTM 包括单元模块和三个门,即输入门、输出门和遗忘门;(b)论文中使用的深度双向 LSTM 结构。合并前向和后向 LSTM 的结果到双向 LSTM中。堆叠多个双向 LSTM 产生一个深度双向 LSTM 结构。
传统 RNN 单元在其输入和输出层之间具备自动链接的隐藏层。每次接收到序列中的帧 
 时,它将使用非线性函数来更新其内部状态 
 ,该非线性函数同时接收当前输入 
 和过去状态 
 做为其输入:

那么预测是基于 
 的。以这种方式,过去的上下文 
 被捕获并用于预测。然而,传统的 RNN 单元有梯度消失的问题,这限制了其可存储的上下文范围,而且给训练过程增长了负担。长短时间记忆网络(LSTM)是一种专门设计用于解决
梯度消失
问题的 RNN单元。LSTM 由一个存储单元和三个门组成,即输入门、输出门和遗忘门。在概念上,存储单元存储过去的上下文,而且输入门和输出门容许其长时间存储。同时,存储单元中的存储内容能够被遗忘门清除。LSTM 的特殊设计容许它捕获长距离依赖,这常常发生在基于图像的序列中。
LSTM 是定向的,它只使用过去的上下文。在基于图像的序列中,两个方向的上下文是互补的。所以,咱们将两个不一样方向的 LSTM 组合到一个 双向 LSTM 中。此外,能够将多个双向 LSTM 堆叠起来,获得图 3.b 所示的双向 LSTM。深层结构容许相比浅层结构可以获得一个更高层次的抽象,而且在语音识别任务中取得显著的性能改进。
在循环层中,偏差在图 3.b 所示箭头的相反方向传播,即
基于时间的反向传播(BPTT)
。在循环层的底部,传播的微分序列被链接成图谱,反转了将特征图谱转换为特征序列的操做,而且被反馈至卷积层。实际上,咱们建立了一个称为“ Map-to-Sequence”的自定义网络层,做为卷积层和循环层之间的桥梁。

2.3 转录

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

2.3.1 标签序列的几率

咱们采用 Graves 等人提出的联接时间分类(CTC**)**层中的条件几率。标签序列 网络

 的几率由每一帧的预测结构决定 
,而且忽略 
 ** **中每一个标签所在的位置。所以,当咱们使用这种几率的负对数做为训练网络的目标函数的时候,咱们只须要图像及其相应的标签序列,避免了标注单个字符位置的劳动。
标签序列的条件几率公式以下:
,                                                                     (1)
其中 
 是输入序列,
 是序列长度,
 表示将序列 
 映射为
 的映射;
 的几率定义为 
 ,
 是在时间戳 
 时有标签 
 的几率。

2.3.2 无词典转录

在无词典转录的模式下,序列 数据结构

 出现的几率做为预测,正如式(1)所示。因为找不到精确解的可行方法,做者在论文中使用 最大似然估计的方法来肯定几率最大的标签序列。序列 
 经过 
 近似发现,即在每一个时间戳 
 采用最大几率的标签 
 ,并将结果序列映射到 
 。

2.3.3 基于词典的转录

在基于词典的模式中,每一个测试采样与词典相关联。基本上,标签序列被识别为由等式(1)所定义的几率最大的标签序列。几率最大时,对应的标签序列为 架构

  (2) 。
然而,对于大型词进行搜索并选择几率最高的一个序列是很是耗时的。为了解决这个问题,咱们发现经过无词典转录预测的标签序列在编辑距离度量下是很是接近真实结果的。所以,咱们能够在由无词典转录预测的标签序列的最大编辑距离的范围内搜索最近邻近候选目标。
经过** BK 树**数据结构,咱们能够有效地找到候选目标,这是一种适用于离散度量空间的度量树。BK 树的搜索时间复杂度为 
,其中 |D| 词典大小。在该论文中,做者为每个离线词典构造一个 BK 树。而后,使用 BK  树执行快速在线搜索来找到小于或等于编辑距离 
的序列。

2.4 网络训练

数据集 app

 
 表示训练集,
 是训练图像,
 是真实的标签序列。网络训练的目标就是最小化真实条件几率的负似然对数:      
    (3)。
 是循环层和卷积层从 
 生成的序列,目标函数直接从图像和真实标签序列计算代价函数。所以,网络能够在成对的图像和序列上进行 端对端训练,去除了在训练图像中手动标记全部单独组件的过程。
网络使用随机梯度降低(SGD)进行训练,梯度由反向传播算法进行计算。为了优化,咱们使用  ADADELTA** **自动计算每一维的学习率。与传统的动量方法相比,ADADELTA 不须要手动设置学习率。更重要的是, ADADELTA的优化收敛速度比动量方法更快。

3. 实验

为了评估 CRNN 模型的有效性,做者在场景文本识别和曲谱识别的标准基数据集上进行了实验。数据集和训练测试的设置见 3.1 小节,场景文本图像中 CRNN 的详细设置见 3.2 小节,综合比较的结果在 3.3 小节报告。为了进一步验证该模型的泛化性,在 3.4 小节中做者用曲谱识别任务做出了验证。

3.1 数据集

在本论文中,做者使用 Jaderberg 等人发布的合成数据集做为训练数据。数据集包含八百万训练图像及其对应的实际单词。使用四个流行的基准数据集做为模型的性能评估,即 ICDAR 2003(IC03)、ICDAR 2013(IC13)、IIIT 5k-word (IIIT5k)和 Street View Text(SVT)。CRNN 模型虽然是在纯合成文本数据上进行训练的,可是它在标准文本识别数据集上的表现良好。

3.2 实现细节

在实验中,做者使用的网络配置总结在表 1 中,卷积层的架构是基于 VGG 的架构。为了使其适用于识别英文文本,对相应网络层进行了调整:在第 3 和第 4 个最大池化层中,采用的是 1*2 的矩形池化窗口。这种调整产生宽度较大的特征图,所以具备更长的特征序列。最重要的是,矩形池窗口产生矩形感觉野(如图 2 所示),这有助于识别一些具备窄形状的字符。
网络不只有深度卷积层,并且还有循环层。两种网络结构都难以训练,做者在第 5 和 第 6 个卷积层以后插入两个批归一化层,能够大大加快网络的训练速度。

场景文本识别4.png

**表 1. **网络配置结构

3.3 比较评估

提出的 CRNN 模型及其余一些算法在上述四个公共数据集上得到的全部识别精度如表 2 所示。在有约束词典的状况中,该模型的方法始终优于大多数最新的方法。而且 CRNN 不限于识别已知词典中的单词,而且可以处理随机字符串、句子或其余诸如中文单词的脚本。所以,CRNN 的结果在全部的测试集上都具备竞争力。在无约束词典的状况下,该模型在 SVT 上取得了最佳性能,但在 IC03 和 IC13 上仍落后于一些方法。表 2 中,"None" 列空白表示该方法不能用于无约束词典的状况。

场景文本识别5.png

**表 2. **准确率评估

3.4 曲谱识别

曲谱一般由排列在五线谱的音符序列组成。识别图像中的曲谱被称为光学音乐识别(OMR)问题。之前的方法一般须要图像预处理(主要是二值化),五线谱检测和单个音符识别。做者将 OMR 做为序列识别问题,直接用CRNN 从图像中预测音符的序列。
为了准备 CRNN 所需的训练数据,做者收集了 2650 张图像。每一个图像中有一个包含 3 到 20 个音符的曲谱片断。而且手动标记全部图像的真实标签序列。收集到的图像经过旋转,缩放和用噪声损坏加强到了265k个训练样本,并用天然图像替换它们的背景。对于测试,做者建立了图4 所示的三个数据集。

场景文本识别6.jpg

图4. a) 收集到的干净曲谱图像;b) 合成的曲谱图像;c) 手机拍摄的现实世界中的曲谱图像
实验代表,CRNN ,模型优于两个商业系统——Capella Scan 和 PhotoScore 系统。另外一方面,CRNN 模型使用对噪声和扭曲具备鲁棒性的 卷积特征。此外,CRNN 中的 循环层能够利用曲谱中的上下文信息。每一个音符不只自身被识别,并且被附近的音符识别。所以,经过将一些音符与附近的音符进行比较从而能够识别它们。
场景文本识别7.jpg

表3. OMR 实验比较
实验结果显示了 CRNN 的泛化性,由于它能够很容易地应用于其余的基于图像的序列识别问题,须要极少的领域知识。它为 OMR 提供了一个新的方案,而且在音高识别方面表现出极大的潜力。

4. 总结

在本文中,咱们提出了一种新颖的神经网络架构,称为卷积循环神经网络(CRNN),其集成了卷积神经网络(CNN)和循环神经网络(RNN)的优势。CRNN 可以获取不一样尺寸的输入图像,并产生不一样长度的预测。它直接在粗粒度的标签(例如单词)上运行,在训练阶段不须要详细标注每个单独的元素(例如字符)。此外,因为CRNN放弃了传统神经网络中使用的全链接层,所以获得了更加紧凑和高效的模型。此外,CRNN 在光学音乐识别(OMR)的基准数据集上显著优于其它的竞争者,这验证了 CRNN 的泛化性。
实际上,CRNN 是一个通用框架,所以能够应用于其它的涉及图像序列预测的领域和问题(如汉字识别)。进一步加快CRNN,使其在现实应用中更加实用,是将来值得探索的另外一个方向。该模型在 Mo 平台上有实现,你们能够搜索场景文本识别找到。
项目源码地址:momodel.cn/workspace/5…

5. 参考资料

  1. 论文: An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition
  2. 论文:Very Deep Convolutional Networks for Large-Scale Image Recognition
  3. 博客:基于图像序列识别的端到端可训练神经网络模型
  4. 博客:端到端不定长文字识别 CRNN 算法详解
  5. 博客:端到端不定长文本识别CRNN代码实现
  6. 博客:长短时间记忆网络(LSTM)
  7. 博客:语音识别:深刻理解 CTC Loss 原理
  8. 博客:语音识别(LSTM+CTC)

关于咱们

Mo(网址:momodel.cn)是一个支持 Python 的人工智能在线建模平台,能帮助你快速开发、训练并部署模型。


Mo 人工智能俱乐部 是由网站的研发与产品设计团队发起、致力于下降人工智能开发与使用门槛的俱乐部。团队具有大数据处理分析、可视化与数据建模经验,已承担多领域智能项目,具有从底层到前端的全线设计开发能力。主要研究方向为大数据管理分析与人工智能技术,并以此来促进数据驱动的科学研究。

目前俱乐部每周六在杭州举办以机器学习为主题的线下技术沙龙活动,不按期进行论文分享与学术交流。但愿能汇聚来自各行各业对人工智能感兴趣的朋友,不断交流共同成长,推进人工智能民主化、应用普及化。

image.png
相关文章
相关标签/搜索