从图像或扫描文档中提取表数据(非pdf)

时间:2016-11-18 09:16:36

标签: php python image-processing machine-learning ocr

我想从图像或扫描文档中提取表格数据,并将标题字段大部分映射到保险单据中的特定值。我尝试逐行提取它们,然后使用它们在页面上的位置进行映射。我通过定义表的开始和结束枢轴给出了表边界,但它没有给我正确的结果,因为标题有时会有多行(我在php中实现了这一点)。我也想知道我是否可以使用机器学习来实现同样的目标。

对于pdf文档,我使用了 tabula-java ,这对我来说效果很好。是否有类似的图像实现类型?

Insurance_Image

文档的类型与上面的链接类似,但是不同的服务提供商,因此提取此类数据的通用方法非常有用。

在上图中,我想要地图值,如Make = YAMAHA,MODEL = FZ-S,CC = 153等

感谢。

2 个答案:

答案 0 :(得分:1)

我肯定会去Tesseract,一个非常好的OCR引擎。我一直在成功地阅读电子邮件中嵌入的各种文档(PDF,图像),我的一位同事用它来处理与你的用例非常相似的东西 - 从发票中读取特定字段。

解析文档后,只需使用正则表达式选择感兴趣的字段。

我不认为机器学习对你特别有用,除非你打算建立自己的OCR引擎。我从现有的库开始,它们提供了非常好的性能。

答案 1 :(得分:0)

在没有太多OCR知识的情况下,最简单,最可靠的方法是: - 获取一个空模板以供参考,并标记从中提取数据所需的框坐标。标记它们并保存以备将来使用。每个模板只会执行一次 - 现在,当阅读相同的模板时,请调整其大小以匹配参考模板尺寸(如果它尚未匹配) - 你已经拥有了每个盒子的坐标并知道它应该包含哪些数据(因为你在第一步中标记了它们并保存了它们)。
这意味着现在您可以只分析每个框中包含的像素,以了解其中的内容 这意味着给定一个标记框列表(在第一步中提取),您应该能够在每个框中获取数据。如果这些数据是打字的而不是手写的,那么使用简单的OCR库可以更容易地分析提取的数据或用它做任何你想做的事情。
或者如果数据总是与上面的示例模板一样大小和字体,那么您可以构建自己的字体和大小字母的小型数据库。或者说全文?取决于每个盒子的可能答案。

无论如何,这不是迄今为止最好的方法,但它肯定会在OCR中以最小的努力和知识完成工作。