2012-04-05 54 views
1

我看到有关OCR表单识别(数据提取)的不同文章,他们说他们使用神经网络来进行表单识别,那么人工神经网络(ANN)和表单识别之间的关系是什么?如果我想从BusinessCard中提取字段,是否需要使用ANN或者它是否可选?换句话说,我什么时候需要使用ANN,什么时候不需要?OCR和人工神经网络之间的关系是什么?

回答

1

它有点不同。 ANN只是所有OCR中的“专家”。但OCR引擎包含许多专家。当你学习人工神经网络时,你将会使用人工神经网络来构建一个简单的OCR引擎,但是这与现代引擎不同,它们与三元数学,形态学,数据类型(对BCR和形式非常重要),词典,连接组件算法等等。所以把它看作是提取高质量结果的一揽子技巧之一。一个好的引擎将纳入ANN和所有其他引擎。在BCR中还有其他的考虑因素,它应该首先在连接的组件,词典中占据很重要的位置,然后使用ANN和模式匹配进行实际识别。

1

ANN是执行OCR的一种方法。还有其他人。因此,如果您想从BusinessCard中提取字段,则只能使用ANN。

+0

什么是我可以用来从名片中提取字段的其他技术? – 2012-04-05 16:06:37

+1

对于OCR,您通常不仅需要一个用于字符识别的模块(可能是ANN,SVM ...)。首先,你必须提取块,线,列,并规范化,缩放,旋转你的输入图像... – alfa 2012-04-05 19:35:13

+0

什么是SVM,有什么文章可以学习吗?或者有关如何提取块,行,列和规范化,缩放,旋转输入图像的任何文章? – 2012-04-06 12:45:55

1

好问题。我最近花了一些时间玩OCRopus,这是一个OCR的Google项目,你可以免费得到它并自己玩。我很确定它有一个ANN作为其背后的模块之一。然而,光学字符识别的整个过程可以有很多步骤(许多不同的小模块,每个模块都会做某些事情并将结果传递给下一个模块)。

因此,这里有一些我记得在该项目的模块正在做的事情:

  1. 有,它把图像转换成黑白模块 - 这使得它更容易为以后模块处理。
  2. 消除斑点/斑点。
  3. 整理出文字的线条。
  4. 文本断为单个单词的行(它已经有几个星期,不知道这一个)

基本上,你可以做上面使用的代码的小位不涉及神经网络。所以使用这些小代码来做这件事更简单。

我认为神经网络仅用于识别单个字符 - 一组可能字符中的哪个字符是它。

在OCRopus中有一个训练命令,我已经运行了一个多星期,并一直向地图发送线样本,缓慢地更改地图。我认为这是训练ANN部分。