OCR-1 An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition
前言
在自然环境中,识别文字对于计算机视觉和机器学习而言是一个非常具有挑战性的任务。传统的光学字符识别(OCR)系统主要适用于从文件中扫描信息,而从自然视角中获取文字则面临更多麻烦,失真、遮蔽、方向模糊、复杂背景和不同视角都会对识别产生影响。
解决的问题
基于图像的序列识别问题,如场景文本识别(scene text recognition)。
特点
输入长度可变;端到端训练;模型小;粗粒度标签;
框架
CRNN
提出了CRNN,即结合CNN与RNN,CNN可以直接建模包含任意长度序列信息的图像,不需要对序列中的每个字符进行标注,最终生成一组特征向量表示,输入到RNN中。RNN采用了LSTM变体(2层双向LSTM),可以捕捉上下文信息,最终输出每个特征向量表示对应的标签分布。
CTC
Connectionist temporal classifaction: labelling unsegmented sequence data with recurrent neural network paper
- 它扩展了RNN的输出层,在输出序列和最终标签之间增加了多对一的空间映射,并在此基础上定义了CTC Loss函数;
- 它借鉴了HMM(Hidden Markov Model)的Forward-Backward算法思路,利用动态规划算法有效地计算CTC Loss函数及其导数,从而解决了RNN端到端训练的问题;
- 结合CTC Decoding算法RNN可以有效地对序列数据进行端到端的预测;
转录层
通过去重去空格生成最后的识别结果。利用CTC layer(Connectionist Temporal Classification)实现。
- 可以不使用词典,直接使用概率最大的标签作为预测结果;
- 可以使用字典。如果使用整个词典,搜索空间太大;折中,将搜索范围缩减到:与概率最大的标签序列的编辑距离在一定范围的单词 ;