【深度学习系列(五)】:基于tensorflow的CRNN实现 (1):论文阅读

An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

摘要

与以前的场景文本识别系统相比,所提出的架构具有四个不同的特性:(1)与大多数现有的组件需要单独训练和协调的算法相比,它是端对端训练的。(2)它自然地处理任意长度的序列,不涉及字符分割或水平尺度归一化。(3)它不仅限于任何预定义的词汇,并且在无词典和基于词典的场景文本识别任务中都取得了显著的表现。(4)它产生了一个有效而小得多的模型,这对于现实世界的应用场景更为实用。

1. 引言

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

2. 网络架构

主要有三部分组成:1) 卷积层,从输入图像中提取特征序列;2) 循环层,预测每一帧的标签分布(进一步文字序列特征,最终得到预测概率的序列输出);3) 转录层,将每一帧的预测变为最终的标签序列(将RNN输出做softmax后,为字符输出。)。

2.1. 特征序列提取

在CRNN模型中,通过采用标准CNN模型(去除全连接层)中的卷积层和最大池化层来构造卷积层。这样的组件用于从输入图像中提取序列特征表示。(由于所有图像在提取特征之前会缩放到相同的高度,所以得到的特征的具有相同的高度,不同的只是宽度,而每一个列代表了一个输出的特征向量序列,这里也说明CRNN能够处理不定长的文本序列,不定长的宽度也代表了不同时间的序列输入)。

2.2. 序列标注

LSTM是定向的,它只使用过去的上下文。基于图像的序列中,两个方向的上下文是相互有用且互补的(图像中的文本ji)。因此,我们采用双向LSTM。堆叠多个双向LSTM,得到深层双向LSTM,深层结构允许比浅层抽象更高层次的抽象。

2.3. 转录

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

2.3.1 标签序列的概率

采用联接时间分类(CTC)层中定义的条件概率。按照每帧预测y=y1,...,yTy=y1,...,yT对标签序列ll定义概率,并忽略ll中每个标签所在的位置。因此,当我们使用这种概率的负对数似然作为训练网络的目标函数时,我们只需要图像及其相应的标签序列,避免了标注单个字符位置的劳动。

在实际情况中,标记这种对齐样本非常困难(除了标记字符,还要标记每个字符的位置),工作量非常大另外,由于每张样本的字符数量不同,字体样式不同,字体大小不同,导致每列输出并不一定能与每个字符一一对应。

当然这种问题同样存在于语音识别领域。例如有人说话快,有人说话慢,那么如何进行语音帧对齐,是一直以来困扰语音识别的巨大难题。

所以CTC提出一种对不需要对齐的Loss计算方法,用于训练网络,被广泛应用于文本行识别和语音识别中。

参考链接:

一文读懂CRNN+CTC文字识别

条件概率的公式简要描述如下:输入是序列y=y_{1},...,y_{T} ,其中y_{T}是时间T序列时的输出。这里,标签是由所有标签(例如,所有英文字符),以及由-表示的“空白”标签组成。序列到序列的映射函数\beta变换定义路径\pil上的映射,例如,\beta变换将“–hh-e-l-ll-oo–”(-表示blank)映射到“hello”。然后,条件概率被定义为由\beta变换到l上的所有\pi的概率之和:

                                                                     p(l|y)=\sum_{\pi :\beta (\pi )=1}p(\pi|y),

\pi的概率定义为p(\pi|y)=\prod _{t=1}^Ty_{\pi_{t}}^ty_{\pi_{t}}^t是路径\pi在时刻t的概率。

2.3.2 无字典转录

在这种模式下,将具有定义的最高概率的序列l作为预测。

2.3.3 基于词典的转录

在基于字典的模式中,每个测试采样与词典相关联。

2.4. 网络训练

网络使用随机梯度下降(SGD)进行训练。梯度由反向传播算法计算。特别地,在转录层中,误差使用前向算法进行反向传播。在循环层中,应用随时间反向传播(BPTT)来计算误差。

为了优化,我们使用adadelta自动计算每维的学习率。与传统的动量方法相比,adadelta不需要手动设置学习率。更重要的是,我们发现使用adadelta的优化收敛速度比动量方法快。

3. 实验

3.1. 数据集

3.2. 实现细节

3.3. 比较评估

3.4. 乐谱识别

4. 总结

参考链接:

序列识别--CRNN论文阅读笔记

CRNN论文翻译——中英文对照

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值