文字识别: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文本行图片算算法。

原文地址:https://www.cnblogs.com/Allen-rg/p/10019392.html