光学字符识别多线检测

问题描述 投票:4回答:1

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

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

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

我能够在单线上实现这一目标。例如。 'ABCDE'写在图像上,模型效果很好。但如果图像是

'ABC'

'CAB'

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

python tensorflow keras ocr
1个回答
2
投票

您想要识别包含多行的文档的文本。有两种方法可以实现这一目标:

  1. 将文档分割为行作为预处理步骤,然后将每个分段线分别馈送到神经网络中。如果你想这样,例如阅读Bunke和Marti的论文[1]。它们基本上计算每条扫描线的黑白转换,并从中创建直方图。他们使用直方图的最小值将文档拆分为单独的行。还有一些其他方法可以将文档分成行。
  2. 训练神经网络以隐式地将文档分成行。您需要将注意力添加到神经网络,以便它可以专注于单独的线条。 Bluche在文档级别上做了一些很好的文本识别工作。见论文[2]和网站[3]。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.