光学字符识别多行检测

时间:2018-12-26 07:31:32

标签: python tensorflow keras ocr

我正在构建OCR。为此,我使用了CNNRNNCTC损失函数。 我的输入层获取图像,输出层预测该图像上写的内容。标签将转换为整数。

['A', 'B', 'C'] -> A = 0, B = 1, C = 2

如果图像为ABC,则训练标签将为0,1,2(单行向量)

我能够单行完成此操作。例如。 “ ABCDE”写在图像上,模型效果很好。但是如果图像是

'ABC'

'CAB'

那培训标签应该是什么?我如何告诉模型下一行?我想在多条线上训练模型。

1 个答案:

答案 0 :(得分:2)

您要识别包含多行文档的文本。有两种方法来实现:

  1. 将文档分成作为预处理步骤,然后将每个分段的行分别馈入神经网络。 如果您想这样走,例如请阅读Bunke和Marti的论文[1]。他们实质上是对每条扫描线的黑白过渡进行计数,并从中创建直方图。他们使用直方图的最小值将文档分为几行。还有一些其他方法可以将文档分成几行。

  2. 培训 神经网络,以隐式将文档细分为。 您需要增加对神经网络的关注,以便它可以专注于各个行。 Bluche在文档级别的文本识别方面做了出色的工作。 参见论文[2]和网站[3]。

[1] Marti邦克:IAM数据库:用于离线手写识别的英语句子数据库。通过Springer下载

[2] Bluche:用于端到端手写段落识别的联合行分段和转录。通过https://arxiv.org/abs/1604.08352

下载

[3]模糊:扫描,出席和阅读。请参阅http://www.tbluche.com/scan_attend_read.html,然后查找“使用MDLSTM和CTC进行手写识别”和“折叠层及其建议的替换”

相关问题