光学字符识别多行检测
Optical Character Recognition Multiple Line Detection
我正在构建 OCR。为此,我使用了 CNN
、RNN
和 CTC
损失函数。
我的输入层获取图像,输出层预测该图像上写的内容。标签被转换成整数。
['A', 'B', 'C'] -> A = 0, B = 1, C = 2
如果图像是ABC,训练标签将是0,1,2(单行向量)
我可以单行完成。例如。 'ABCDE
' 写在图像上,模型效果很好。但是如果图像是
'ABC'
'CAB'
那么训练标签应该是什么?我怎样才能告诉模型下一行?我想在多行上训练一个模型。
您想识别包含多行的文档文本。有两种方法可以实现这一点:
将文档分割为行作为预处理步骤,然后将每条分段线分别输入您的神经网络。
如果你想走这条路,例如阅读 Bunke 和 Marti 的论文 [1]。他们基本上计算每条扫描线的黑白转换,并从中创建直方图。他们使用直方图的最小值将文档分成单独的行。还有一些其他方法可以将文档分割成行。
训练神经网络到隐式分割文件到行。
您需要增加对神经网络的关注,以便它可以专注于单行。
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 并查找 "Handwriting Recognition with MDLSTM and CTC" 和 "The Collapse Layer and its Proposed Replacements"
我正在构建 OCR。为此,我使用了 CNN
、RNN
和 CTC
损失函数。
我的输入层获取图像,输出层预测该图像上写的内容。标签被转换成整数。
['A', 'B', 'C'] -> A = 0, B = 1, C = 2
如果图像是ABC,训练标签将是0,1,2(单行向量)
我可以单行完成。例如。 'ABCDE
' 写在图像上,模型效果很好。但是如果图像是
'ABC'
'CAB'
那么训练标签应该是什么?我怎样才能告诉模型下一行?我想在多行上训练一个模型。
您想识别包含多行的文档文本。有两种方法可以实现这一点:
将文档分割为行作为预处理步骤,然后将每条分段线分别输入您的神经网络。 如果你想走这条路,例如阅读 Bunke 和 Marti 的论文 [1]。他们基本上计算每条扫描线的黑白转换,并从中创建直方图。他们使用直方图的最小值将文档分成单独的行。还有一些其他方法可以将文档分割成行。
训练神经网络到隐式分割文件到行。 您需要增加对神经网络的关注,以便它可以专注于单行。 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 并查找 "Handwriting Recognition with MDLSTM and CTC" 和 "The Collapse Layer and its Proposed Replacements"