因为神经网络的强大复兴,特别是深度卷积神经网络(DCNN)模型在各类视觉任务中的巨大成功的推进,最近大多数与深度神经网络相关的工做主要致力于检测或分类对象类别。基于图像的序列识别问题一直是计算机视觉中长期存在的研究课题。本文将介绍由 Baoguang Shi 等人发表的一篇论文 An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition。在该论文中,做者研究了场景文本识别的问题,这是基于图像的序列识别中最重要和最具备挑战性的任务之一。相较于通常的对象识别任务,基于图像序列识别任务中的识别对象每每是以序列的形式出现,而不是孤立地出现。所以,识别这样的对象一般须要系统预测一系列标签而不是单个标签。序列对象另外一个独特之处在于它们的长度可能发生较大的变化。 php
对于特定的序列对象(例如场景文本),人们已经作过一些尝试来解决此类对象的识别问题。例如,利用某种算法检测出单个字符,而后利用训练好的 DCNN 模型来识别检测到的单个字符。此类方法一般须要训练强大的字符检测器,以便从原始单词图像中精确地检测和裁剪每一个字符。另外,一些其余方法将场景文本识别视为图像分类问题,为每一个英文单词(总共 9 万个单词)分配一个类标签。运用此类方法产生的模型将有众多的类标签,所以很难泛化到其余类型的序列对象。例如,中文文本、音乐配乐等序列对象拥有上百万种类标签,该模型很难泛化到此类序列对象。所以,基于 DCNN 的系统不能直接用于基于图像的序列识别。循环神经网络(RNN)模型是深度神经网络家族中另外一个重要分支,用于处理序列问题。RNN 的一大优点是在训练和测试的时候,不须要序列对象图像中每个元素的位置信息。然而,将输入图像转换成图像特征序列的预处理步骤是必须的。预处理步骤独立于 RNN 模型的流程步骤,所以基于RNN的现有系统不能以端到端的方式进行训练和优化。
除了深度神经网络以外,一些传统的场景文本识别方法也为这一领域带来了一些新颖的想法,而且取得了优异的表现。例如,将单词图像和文本字符串嵌入到公共向量子空间并将词识别转化为检索问题、利用中层特征进行场景文本识别等方法在标准数据集上取得了有效的性能。可是此类方法与基于神经网络的算法相比较而言,模型的表现仍是较差。
在这篇文章中,做者提出了一种将特征提取、序列建模和转录整合到统一框架中的新型神经网络模型——专门用于基于图像的图像序列的识别。这种神经网络模型被称为卷积循环神经网络(CRNN)模型,由于它是 DCNN 模型和 RNN 模型的组合。 html
如图 1 所示,CRNN模型 的网络架构由三部分组成,包括卷积层、循环层和转录层(由下到上)。在 CRNN 的底部,卷积层自动从每一个输入图像中提取特征序列。在卷积网络层之上,构建一个对卷积层特征序列的每一帧进行预测的循环网络层。在 CRNN 顶部的转录层将循环层输出的帧预测转化为标签序列。CRNN 模型虽然由不一样类型的网络架构组成,但能够经过一个损失函数进行联合训练。
前端
在 CRNN 模型中,卷积层部分由标准 CNN 模型中的卷积层和最大池化层组成。这一部分用来提取表示输入图片的序列特征。在输入到网络以前,全部的的图片须要被缩放到同一高度。而后,一些列的特征向量从特征图谱中被提取出来。这些特征图谱由卷积层产生,做为循环层的输入。值得注意的是,每一个特征序列的特征向量在特征图谱中从左到右一列一列地产生。这意味着第 i 个特征向量是全部特征图谱第 i 列向量的联合体。在该论文中,每列的宽度被固定设置为单个像素。
卷积、最大池化和激活函数做用在局部区域,具备平移不变性。所以,特征图谱的每一列与原始图片中的一块矩形区域对应,咱们称之为感觉野。这些矩形区域从左到右和特征图谱中的列向量一一对应。如图 2 所示,特征序列中的每个向量与对应的感觉野相关联,被看作是相应区域的图像描述符。
git
在卷积层之上是一个深度双向循环神经网络来做为循环层。循环层为特征序列的每一帧预测一个标签分布。循环层的优势有三重。首先,RNN 具备很强的捕获序列上下文信息的能力。因为使用了上下文信息,基于图像的序列识别变得更加稳定有效,相比于仅仅单独使用每一个标志而言。以场景文本识别为例,较宽的字符可能须要一些连续的帧来描述。此外,在观察完上下文信息以后,一些模糊的字符会更容易区分。例如,咱们在识别 "il" 的时候,经过对比两个字母的高度,咱们能够更加容易地识别出它们。其次,RNN 能够将偏差值反向传播到其输入层,即卷积层。从而容许咱们在统一的网络中共同训练循环层和卷积层。最后,RNN 可以从头至尾对任意长度的序列进行操做。
github
转录是将 RNN 所作的每帧预测转换成标签序列的过程。数学上,转录是根据每帧预测找到具备最高几率的标签序列。在实践中,存在两种转录模式,即无词典转录和基于词典的转录。词典是一组标签序列,预测时会受到拼写检查字典约束。在无词典模式中,预测时没有任何词典。在基于词典的模式中,经过选择具备最高几率的标签序列进行预测。 算法
咱们采用 Graves 等人提出的联接时间分类(CTC**)**层中的条件几率。标签序列 网络
在无词典转录的模式下,序列 数据结构
在基于词典的模式中,每一个测试采样与词典相关联。基本上,标签序列被识别为由等式(1)所定义的几率最大的标签序列。几率最大时,对应的标签序列为 架构
数据集 app
为了评估 CRNN 模型的有效性,做者在场景文本识别和曲谱识别的标准基数据集上进行了实验。数据集和训练测试的设置见 3.1 小节,场景文本图像中 CRNN 的详细设置见 3.2 小节,综合比较的结果在 3.3 小节报告。为了进一步验证该模型的泛化性,在 3.4 小节中做者用曲谱识别任务做出了验证。
在本论文中,做者使用 Jaderberg 等人发布的合成数据集做为训练数据。数据集包含八百万训练图像及其对应的实际单词。使用四个流行的基准数据集做为模型的性能评估,即 ICDAR 2003(IC03)、ICDAR 2013(IC13)、IIIT 5k-word (IIIT5k)和 Street View Text(SVT)。CRNN 模型虽然是在纯合成文本数据上进行训练的,可是它在标准文本识别数据集上的表现良好。
在实验中,做者使用的网络配置总结在表 1 中,卷积层的架构是基于 VGG 的架构。为了使其适用于识别英文文本,对相应网络层进行了调整:在第 3 和第 4 个最大池化层中,采用的是 1*2 的矩形池化窗口。这种调整产生宽度较大的特征图,所以具备更长的特征序列。最重要的是,矩形池窗口产生矩形感觉野(如图 2 所示),这有助于识别一些具备窄形状的字符。
网络不只有深度卷积层,并且还有循环层。两种网络结构都难以训练,做者在第 5 和 第 6 个卷积层以后插入两个批归一化层,能够大大加快网络的训练速度。
提出的 CRNN 模型及其余一些算法在上述四个公共数据集上得到的全部识别精度如表 2 所示。在有约束词典的状况中,该模型的方法始终优于大多数最新的方法。而且 CRNN 不限于识别已知词典中的单词,而且可以处理随机字符串、句子或其余诸如中文单词的脚本。所以,CRNN 的结果在全部的测试集上都具备竞争力。在无约束词典的状况下,该模型在 SVT 上取得了最佳性能,但在 IC03 和 IC13 上仍落后于一些方法。表 2 中,"None" 列空白表示该方法不能用于无约束词典的状况。
曲谱一般由排列在五线谱的音符序列组成。识别图像中的曲谱被称为光学音乐识别(OMR)问题。之前的方法一般须要图像预处理(主要是二值化),五线谱检测和单个音符识别。做者将 OMR 做为序列识别问题,直接用CRNN 从图像中预测音符的序列。
为了准备 CRNN 所需的训练数据,做者收集了 2650 张图像。每一个图像中有一个包含 3 到 20 个音符的曲谱片断。而且手动标记全部图像的真实标签序列。收集到的图像经过旋转,缩放和用噪声损坏加强到了265k个训练样本,并用天然图像替换它们的背景。对于测试,做者建立了图4 所示的三个数据集。
在本文中,咱们提出了一种新颖的神经网络架构,称为卷积循环神经网络(CRNN),其集成了卷积神经网络(CNN)和循环神经网络(RNN)的优势。CRNN 可以获取不一样尺寸的输入图像,并产生不一样长度的预测。它直接在粗粒度的标签(例如单词)上运行,在训练阶段不须要详细标注每个单独的元素(例如字符)。此外,因为CRNN放弃了传统神经网络中使用的全链接层,所以获得了更加紧凑和高效的模型。此外,CRNN 在光学音乐识别(OMR)的基准数据集上显著优于其它的竞争者,这验证了 CRNN 的泛化性。
实际上,CRNN 是一个通用框架,所以能够应用于其它的涉及图像序列预测的领域和问题(如汉字识别)。进一步加快CRNN,使其在现实应用中更加实用,是将来值得探索的另外一个方向。该模型在 Mo 平台上有实现,你们能够搜索场景文本识别找到。
项目源码地址:momodel.cn/workspace/5…
Mo(网址:momodel.cn)是一个支持 Python 的人工智能在线建模平台,能帮助你快速开发、训练并部署模型。
Mo 人工智能俱乐部 是由网站的研发与产品设计团队发起、致力于下降人工智能开发与使用门槛的俱乐部。团队具有大数据处理分析、可视化与数据建模经验,已承担多领域智能项目,具有从底层到前端的全线设计开发能力。主要研究方向为大数据管理分析与人工智能技术,并以此来促进数据驱动的科学研究。
目前俱乐部每周六在杭州举办以机器学习为主题的线下技术沙龙活动,不按期进行论文分享与学术交流。但愿能汇聚来自各行各业对人工智能感兴趣的朋友,不断交流共同成长,推进人工智能民主化、应用普及化。