当前位置: 首页 > 后端技术 > Python

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

时间:2023-03-25 22:11:35 Python

1.背景介绍1.1主题介绍由于神经网络的强大复兴,尤其是深度卷积神经网络(DCNN)模型在各种视觉任务的巨大成功的推动下,最近与深度神经网络相关的工作主要致力于检测或分类对象类别。基于图像的序列识别问题一直是计算机视觉领域的一个长期研究课题。本文将介绍石宝光等人发表的论文AnEnd-to-EndTrainableNeuralNetworkforImage-basedSequenceRecognitionandItsApplicationtoSceneTextRecognition。在本文中,作者研究了场景文本识别问题,这是基于图像的序列识别中最重要和最具挑战性的任务之一。与一般的物体识别任务相比,图像序列识别任务中被识别的物体往往以序列的形式出现,而不是孤立存在。因此,识别此类对象通常需要系统预测一系列标签而不是单个标签。序列对象的另一个独特之处在于它们的长度可以变化很大。1.2研究背景对于特定的序列对象(如场景文本),已经进行了一些尝试来解决此类对象的识别问题。例如,使用算法检测单个字符,然后使用训练好的DCNN模型识别检测到的单个字符。这种方法通常需要训练一个强大的字符检测器来准确地检测和裁剪原始单词图像中的每个字符。或者,其他一些方法将场景文本识别视为图像分类问题,为每个英文单词(总共90,000个单词)分配一个类别标签。使用此类方法生成的模型将具有大量类标签,因此很难推广到其他类型的序列对象。例如,中文文本和音乐配乐等序列对象有数百万个标签,模型很难泛化到此类序列对象。因此,基于DCNN的系统不能直接用于基于图像的序列识别。循环神经网络(RNN)模型是深度神经网络家族的另一个重要分支,用于处理序列问题。RNN的一大优点是在训练和测试时不需要序列对象图像中每个元素的位置信息。然而,将输入图像转换为图像特征序列的预处理步骤是必要的。预处理步骤独立于RNN模型的流水线步骤,因此现有的基于RNN的系统无法以端到端的方式进行训练和优化。除了深度神经网络,一些传统的场景文字识别方法也为该领域带来了一些新颖的思路,并取得了优异的性能。例如,将单词图像和文本字符串嵌入到公共向量子空间并将单词识别转化为检索问题,以及利用中层特征进行场景文本识别等方法在标准数据集上取得了有效的性能。然而,与基于神经网络的算法相比,此类方法的性能仍然较差。在这篇论文中,作者提出了一种新的神经网络模型,它将特征提取、序列建模和转录集成到一个统一的框架中——专门用于基于图像的图像序列识别。这种神经网络模型被称为卷积递归神经网络(CRNN)模型,因为它是DCNN模型和RNN模型的组合。2.网络结构如图1所示,CRNN模型的网络架构由三部分组成,分别是卷积层、循环层和转录层(从下到上)。在CRNN的底部,卷积层自动从每个输入图像中提取特征序列。在卷积网络层之上,构建一个循环网络层来预测卷积层特征序列的每一帧。CRNN顶部的转录层将循环层输出的帧预测转换为一系列标签。虽然CRNN模型由不同类型的网络架构组成,但可以通过损失函数进行联合训练。图1.网络架构该架构由三部分组成:1)卷积层,从输入图像中提取特征序列;2)循环层,预测每一帧的标签分布;3)转录层,将每一帧的预测转化为最终的标签序列。[2.1特征序列提取在CRNN模型中,卷积层部分由标准CNN模型中的卷积层和最大池化层组成。这部分用于提取表示输入图像的序列特征。在被馈送到网络之前,所有图像都需要缩放到相同的高度。然后,从特征图中提取一些特征向量列。这些特征图由卷积层生成,作为循环层的输入。值得注意的是,每个特征序列的特征向量是在特征图中从左到右逐列生成的。这意味着第i个特征向量是所有特征图的第i个列向量的并集。在那篇论文中,每列的宽度固定为一个像素。卷积、最大池化和激活函数作用于局部区域并且是平移不变的。因此,特征图的每一列对应于原始图像中的一个矩形区域,我们称之为感受野。这些矩形区域从左到右与特征图中的列向量一一对应。如图2所示,特征序列中的每个向量都与对应的感受野相关联,感受野被视为对应区域的图像描述符。图2.局部感受野提取的特征序列中的每个向量都与输入图像中的一个感受野相关联,它们可以被认为是相应区域的特征向量。由于其高鲁棒性和良好的可训练性,深度卷积特征已被广泛应用于各种视觉识别任务。以前的一些方法利用CNN来学习稳健的表示。然而,这些方法通常通过CNN提取整个图像的完整表示,然后收集局部深度特征来识别序列对象的每个组件。由于CNN需要将输入图像缩放到固定大小以满足其固定输入大小,因此它不适用于序列对象且它们的长度变化很大。在CRNN中,我们将深层特征传递到序列表示中,以便对序列对象的长度变化保持不变。2.2序列标记在卷积层之上是一个深度双向递归神经网络作为递归层。循环层预测特征序列的每一帧的标签分布。循环层的优点有三方面。首先,RNN具有很强的捕获序列上下文信息的能力。由于使用了上下文信息,基于图像的序列识别变得比单独使用每个地标更加稳健和高效。以场景文字识别为例,较宽的字符可能需要一些连续的帧来描述。另外,一些有歧义的字符在观察上下文信息后更容易区分。比如我们在识别“il”的时候,通过比较两个字母的高度,可以更容易的识别出来。其次,RNN可以将误差值反向传播到它们的输入层,也就是卷积层。这使我们能够在统一网络中联合训练循环层和卷积层。最后,RNN能够从头到尾对任意长度的序列进行操作。图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转录转录是将循环神经网络所做的每帧预测转换为标签序列的过程。从数学上讲,转录是基于每帧预测来找到概率最高的标签序列。在实践中,有两种转录模式,无字典转录和基于字典的转录。词典是预测受拼写检查词典约束的标签序列。在无字典模式下,预测是在没有任何字典的情况下进行的。在基于字典的模型中,通过选择概率最高的标签序列来进行预测。2.3.1标签序列的概率我们在Graves等人提出的级联时间分类(CTC)层中采用条件概率。标签序列的概率由每一帧的预测结构决定,忽略了每个标签在中的位置。因此,当我们以这个概率的负对数作为训练网络的目标函数时,只需要图像及其对应的标签序列,避免了标注单个字符位置的劳动。标签序列的条件概率公式如下:2.3.2Lexicon-freetranscription在dictionary-freetranscription模式中,以序列出现的概率作为预测,如式(1)所示。由于找不到精确解的可行方法,作者在论文中采用了最大似然估计的方法来确定概率最大的标签序列。序列是通过近似发现的,即在每个时间戳以最大概率取标签,并将结果序列映射到。2.3.3基于词典的转录在基于词典的模式中,每个测试样本都与一个词典相关联。基本上,标签序列被识别为等式(1)定义的具有最高概率的序列。当概率最大时,对应的标签序列为(2)。然而,搜索大词并选择概率最高的词非常耗时。为了解决这个问题,我们表明,在编辑距离度量下,无字典转录预测的标签序列非常接近地面实况。因此,我们可以在从无字典转录预测的标签序列的最大编辑距离范围内搜索最近邻候选者。我们可以通过BK树数据结构高效地找到候选目标,BK树是一种适用于离散度量空间的度量树。BK树的搜索时间复杂度为,其中|D|是字典大小。在这篇论文中,作者为每个离线词典构建了一个BK树。然后,使用BK树执行快速在线搜索以查找小于或等于编辑距离的序列。[2.4NetworkTrainingDataset是指训练集,是训练图像,是真实的标签序列。网络训练的目标是最小化真实条件概率的负似然的对数:(3)。是由循环层和卷积层从生成的序列,目标函数直接从图像序列和地面实况标签计算成本函数。因此,网络可以在成对的图像和序列上进行端到端的训练,消除了手动标记训练图像中所有单个组件的过程。该网络使用随机梯度下降(SGD)进行训练,梯度由反向传播算法计算。为了优化,我们使用ADADELTA自动计算每个维度的学习率。与传统的动量方法相比,ADADELTA不需要手动设置学习率。更重要的是,ADADELTA的优化比动量法收敛得更快。3.实验为了评估CRNN模型的有效性,作者在场景文本识别和乐谱识别的标准基础数据集上进行了实验。数据集和训练测试设置如第3.1节所示,CRNN在场景文本图像中的详细设置在第3.2节中给出,综合比较的结果在第3.3节中报告。为了进一步验证模型的泛化性,在3.4节中,作者使用分数识别任务进行验证。3.1数据集在本文中,作者使用了Jaderberg等人发表的合成数据集。作为训练数据。该数据集包含800万张训练图像及其对应的实际单词。使用四个流行的基准数据集作为模型的性能评估,即ICDAR2003(IC03)、ICDAR2013(IC13)、IIIT5k-word(IIIT5k)和StreetViewText(SVT)。尽管CRNN模型是在纯合成文本数据上训练的,但它在标准文本识别数据集上表现良好。3.2实现细节在实验中,作者使用的网络配置总结在表1中,卷??积层的架构是基于VGG的架构。为了使其适合识别英文文本,对相应的网络层进行了调整:在第3和第4个最大池化层中,使用了1*2的矩形池化窗口。这种调整会产生宽度更大的特征图,从而产生更长的特征序列。最重要的是,矩形池化窗口产生矩形感受野(如图2所示),有助于识别一些形状较窄的字符。该网络不仅有深度卷积层,还有循环层。两种网络结构都很难训练,作者在第5和第6个卷积层之后插入了两个batchnormalization层,可以大大加快网络的训练速度。表1.网络配置结构3.3比较评估所提出的CRNN模型和其他一些算法在上述四个公共数据集上获得的所有识别精度如表2所示。在约束词典的情况下,该模型的方法始终优于大多数状态-最先进的方法。而且CRNN不局限于识别已知词典中的单词,可以处理随机的字符串、句子或中文单词等其他脚本。因此,CRNN的结果在所有测试集上都具有竞争力。使用无约束字典,该模型在SVT上取得了最佳性能,但在IC03和IC13上仍然落后于某些方法。在表2中,空白的“无”列表示该方法不能用于无约束字典。表2.准确度评估[3.4乐谱识别乐谱通常由排列在五线谱上的一系列音符组成。识别图像中的乐谱被称为光学音乐识别(OMR)问题。以前的方法通常需要图像预处理(主要是二值化)、人员检测和单张纸币识别。作者将OMR看成一个序列识别问题,直接使用CRNN从图像中预测出音符的顺序。为了准备CRNN所需的训练数据,作者收集了2650张图像。每张图片中都有一段乐谱,有3到20个音符。并手动标注所有图像的ground-truth标签序列。收集的图像经过旋转、缩放和增强,噪声损坏到265k个训练样本,并且它们的背景被替换为自然图像。为了进行测试,作者创建了图4中所示的三个数据集。图4.a)收集到的清晰分数图像;b)合成乐谱图像;c)手机拍摄的真实世界得分图像实验表明,CRNN模型优于两个商业系统——CapellaScan和PhotoScore系统。另一方面,CRNN模型使用对噪声和扭曲具有鲁棒性的卷积特征。此外,CRNN中的循环层可以利用乐谱中的上下文信息。每个音符不仅可以自己识别,还可以被附近的音符识别。因此,可以通过将某些音符与附近的音符进行比较来识别它们。表3.OMR实验比较实验结果显示了CRNN的泛化,因为它可以很容易地应用于其他需要最少领域知识的基于图像的序列识别问题。它为OMR提供了一种新的方案,在音高识别方面显示出巨大的潜力。4.总结在本文中,我们提出了一种新的神经网络架构,称为卷积递归神经网络(CRNN),它集成了卷积神经网络(CNN)和递归神经网络(RNN)的优点。CRNN能够获取不同大小的输入图像并生成不同长度的预测。它直接在粗粒度标签(例如单词)上运行,不需要在训练阶段详细标记每个单独的元素(例如字符)。此外,由于CRNN摒弃了传统神经网络中使用的全连接层,因此获得了更紧凑和高效的模型。此外,CRNN在光学音乐识别(OMR)基准数据集上明显优于其他竞争对手,这验证了CRNN的泛化性。事实上,CRNN是一个通用的框架,因此可以应用于其他涉及图像序列预测的领域和问题(如汉字识别)。进一步加速CRNN使其在实际应用中更加实用是未来另一个值得探索的方向。这个模型是在墨平台上实现的,大家可以搜索场景文字识别找到。项目源码地址:https://momodel.cn/workspace/5d4bec151afd943022191a50?type=app5。参考论文:AnEnd-to-EndTrainableNeuralNetworkforImage-basedSequenceRecognitionandItsApplicationtoSceneTextRecognition论文:VeryDeepConvolutionalNetworksforLarge-ScaleImageRecognition博客:End-to-endtrainableneuralnetworkmodelbasedon图像序列识别博客:端到端可变长文本识别CRNN算法详解博客:[](https://www.cnblogs.com/skyfs...端到端可变长文本识别CRNN代码实现博客:长短期记忆网络(LSTM)博客:语音识别:深入理解CTC损失原理博客:语音识别(LSTM+CTC)关于我们Mo(网址:momodel.cn)是一个支持Python的人工智能在线建模平台,可以帮助您快速开发、训练和部署模型。Mo人工智能俱乐部由网站研发和产品设计团队发起,致力于降低人工智能开发和使用门槛的俱乐部。团队拥有ex具有大数据处理分析、可视化和数据建模经验,承接过多领域智能化项目,具备从底层到前端的全线设计开发能力。主要研究方向为大数据管理分析和人工智能技术,并以此为基础推动数据驱动的科学研究。目前俱乐部每周六在杭州举办以机器学习为主题的线下技术沙龙活动,不定期进行论文分享和学术交流。希望汇集各界对人工智能感兴趣的朋友,继续交流,共同成长,推动人工智能的大众化和普及化。