文字识别:CRNN
知乎:一文读懂CRNN+CTC文本行识别 (详解 CTC loss)
来自: https://zhuanlan.zhihu.com/p/43534801
代码:https://github.com/bai-shang/OCR_TF_CRNN_CTC
文字检测主要解决的问题是哪里有文字,文字的范围有多大,即定位文本行的所在位置和范围及其布局。
文本识别是在文本行定位的基础上,对文本行内容进行识别,将图像中的文本信息转化为文字信息。文字识别主要解决的问题是每个文字是什么。
所以一般来说,从自然场景图片中进行文本行识别,需要包括三个步骤:
- 图像预处理
- 文字检测定位文本行区域
- 对定位好的文本行图片进行识别
图1 文字识别的步骤
本文的重点是如何对已经定位好的文本行图片进行识别。
常用文本行识别算法主要有两个框架:
- CNN+RNN+CTC(CRNN+CTC)
- CNN+Seq2Seq+Attention
CTC总结
CTC是一种Loss计算方法,用CTC代替Softmax Loss,训练样本无需对齐。
CTC特点:
- 同时引入blank字符,解决有些位置没有字符的问题
- 通过递推,快速计算梯度
......
CRNN+CTC总结
这篇文章的核心,就是将CNN/LSTM/CTC三种方法结合:
- 首先CNN提取图像卷积特征
- 然后LSTM进一步提取图像卷积特征中的序列特征
- 最后引入CTC解决训练时字符无法对齐的问题
提供了一种end2end文本行图片算算法。