paper:https://arxiv.org/pdf/1507.05717v1.pdf
code:
摘要
这篇论文主要研究计算机视觉领域的场景文本识别任务,提出一种新的网络架构,它的主要特点是
1,可以端到端训练
2,可以处理任意长度的序列
3,在有字典和无字典情况下,效果都较好
4,这个模型非常小
论文内容
引言
最近,DCNN(Deep Convolutional Neural Network)在多种视觉任务中大放异彩,但相关工作主要致力于目标的检测和分类。本文中,我们主要感兴趣在基于图像的序列识别,不像通常的目标识别任务,序列识别需要预测一系列的目标,而不是单一的目标,另一个特性是,序列识别中序列的长度会剧烈地变化。因为DCNN通常应用于固定维度的输入和输出,无法处理可变长序列。
也有一些同行使用DCNN来解决序列问题,他们检测单独的字符,使用带有标注的字符训练,这种方法需要一个非常鲁棒的字符检测器,然后从图像中截取出没个字符;也有人尝试把场景文本识别当作图像分类任务,给每一个英文单词(总共有90K个英文单词)都制作一个标注,这需要一个有大量类别的大模型,而且很难泛化到其他类型的序列上,比如中文文本,音乐字符等。总之,基于DCNN的模型不能直接被用来识别图像中的序列。
RNN(Recurrent neural networks)主要设计用来处理序列。RNN的一个优点是训练和测试过程中不需要序列中每个元素的位置,然而通常需要把输入的图像转换成图像特征的序列。本文是DCNN和RNN的的组合。DCNN比其他神经网络模型有优势的地方在于:1)可以直接学习序列模型,不需要详细的字符标注;2)可以像DCNN一样直接从图像抽取信息特征,不需要预处理(二值化/分割,定位)步骤;3)像RNN一样,能产生序列标注;4)不限制序列的长度,只需要高度归一化;5)在场景文本中有更好的性能;6)比DCNN的参数少,占用的存储空间也少。
网络架构
模型包括卷积层,递归层和转录层,
卷积层用来从输入图像抽取特征,递归层预测标签分布,转录层把预测结果翻译成最终的序列
特征序列抽取
在进入网络之前,所有图片需要被缩放到同一个高度,然后通过卷机层的特征图抽取出特征向量的序列。每个特征向量是特征图按列从左到右。第i个特征向量是所有特征图的第i列的级联,每一列的宽度固定为单个像素。特征图的每一列都对应到一个原图的一个长方形的区域。这些长方形区域跟它们对应的特征图是同一个顺序也是从左到右。
序列标记
图左边是一个LSMT单元,右边是论文中使用的深度双向LSTM结构。
转录层有两种模型,无字典的和基于字典的。本文采用CTC中定义的条件概率。标注序列 l 的概率定义为在前一帧预测 y 结果下的条件概率。 基于字典的转录层,字典太大时,有时候时50k个单词,非常耗时,为了解决这个问题,我们观察到在无字典时预测的标注序列在编辑距离矩阵下非常接近于真实结果。这表明我们可以使用最近邻作为候选,可以使用BK树的数据结构有效地找到候选值。
网络训练
训练的目标是最小化真实结果的条件概率的负对数似然值。
训练网络时使用SGD优化器,在转录层,使用BPTT(Back-Propagation Though Time)计算误差。使用ADADELTA自动计算前一维的学习率,可以不用手动设置学习率,而且收敛比momentum方法快
数据集
使用Jaderberg的合成数据,ICDAR2003,ICDAR2013,IIIT5k-word 和 Street View Text(SVT)
实现细节
卷积层基于VGG-VeryDeep架构,为了识别英文做了一些调整,在第三阶段第4个max pooling层采用12 大小的长方形polling窗口,替代卷机中的方形窗口,这个调整可以产生大宽度的特征图,继而产生长特征序列。例如,一个包含10个字符的图像,大多大小为100*32,可以产生25帧序列。这个长度超过了大多数英文单词,长方形的polling 窗口产生长方形的可接受区域,有助于识别狠窄的字符,比如 “i” 和“I”。
由于网络不仅有深度卷机层,还有递归层,众所周知很难训练,batch normalization技术可以极大地改善训练如此深度的网络。在第五和第六层卷积层中插入了batch normalization 层。
使用Torch7 转录层和BK 树使用C++,2.5GHz Intel Xeon E52609 CUP, 64GB RAM,NVIDIA Tesla K40 GPU。
参数 ρ 设为0.9,训练过程中所有图像缩放到100*32,训练了50个小时达到瘦脸,测试时把高度缩放到32,宽度根据高度同比例缩放。在IC03上无字典时,测试速度为0.16s/sample。IC03有50k个字典时,把 δ 参数设为3,单张用时0.53s
对比
|