发布网友 发布时间:2022-11-25 09:49
共1个回答
热心网友 时间:2023-10-09 07:43
《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition》 ,是比较老的一篇文章了,在2015年6月发表在arxiv上,但是该方法还是被广泛运用。
文章思想:文章认为文字识别是对序列的预测方法,所以采用了对序列预测的RNN网络。通过CNN将图片的特征提取出来后采用RNN对序列进行预测,最后通过一个CTC的翻译层得到最终结果。说白了就是CNN+RNN+CTC的结构。
关于 CTC的解释 在之前写过一篇博客,这里不做重复介绍。
如前面所说的,就是CNN+RNN+CTC,如下图所示
下面来分开说明
CNN结构采用的是VGG的结构,并且文章对VGG网络做了一些微调,如下图所示
从上图可以看出,对VGG的调整如下:
这里需要说明的是第一点,为什么将第三和第四个maxpooling的核尺度从 改为 是为了方便的将CNN的提取特征作为RNN的输入.首先要注意的是这个网络的输入为 ,也就是说该网络对输入图片的宽没有特殊的要求,但是高都必须resize到32。文中举例说明了,如果一张包含10个字符的图片大小为 ,经过上述的CNN网络得到的特征尺度为 (这里忽略通道数),这样得到一个序列,每一列特征对应原图的一个矩形区域(如下图所示),这样就很方便作为RNN的输入进行下一步的计算了,而且每个特征与输入有一个一对一的对应关系。
RNN网络是对于CNN输出的特征序列 ,每一个输入 都有一个输出 。为了防止训练时梯度的消失,文章采用了LSTM神经单元作为RNN的单元。文章认为对于序列的预测,序列的前向信息和后向信息都有助于序列的预测,所以文章采用了双向RNN网络。LSTM神经元的结构和双向RNN结构如下图所示。
测试时,翻译分为两种,一种是带字典的,一种是没有字典的。
带字典的就是在测试的时候,测试集是有字典的,测试的输出结果计算出所有字典的概率,取最大的即为最终的预测字符串
不带字典的,是指测试集没有给出测试集包含哪些字符串,预测时就选取输出概率最大的作为最终的预测字符串。
至于 CTC的解释 这里不详细说明,有需要的请查看我之前的博客,简单说就是将RNN的输出 转化为一个字符串,而转化的输入与输出长度不对应而且输入可以是不同长度的序列。
最小化负对数似然函数
详情还是请查看 CTC算法详解 这篇博文
到这里CRNN算法的基本理论就介绍完了
中文本定位与识别的评测方法
欢迎加入OCR交流群:785515057(此群已满)
欢迎加入OCR交流群2:826714963