3

我有兴趣涉足 Python 和机器学习/自动数据输入。然而,随着我的研究进展,我意识到有很多不同的技术,每一种都有自己的优势。

我已经决定,如果我朝相反的方向学习,我可能会走得更远。即选择一个问题/任务并通过解决/完成它来学习。

我偶尔需要对传真的发票进行数据处理,我希望制作一个程序,一旦我扫描后就可以为我输入这些发票。

传真基本上由 2 个相同的表格组成。每行表示一个单独的工人。第 1 列是工人姓名(选择 6) 第 2 列是地址,其余列是表示不同工作的复选框。页面顶部的框中还有一个发票 ID。

我希望有人能简要解释一下他们将如何解决这个问题。他们是否会使用 SVM 进行文本识别或其他技术?以及如何让程序理解第 5 个框中的勾号表示“已清理=是”,左上角框中的数字是 ID。我做了一些研究,但不知道如何开始。当您由于传真/扫描而无法保证绝对位置/大小时,如何将传真的某些部分(例如顶部表格及其单元格)与页面的其余部分隔离开来。还是我得弄几百份传真+这些传真打出来的数据,然后比较,然后让它自己慢慢了解传真a和b的区别在这里是打勾,ID号通常在这里......

欢迎任何建议!

4

1 回答 1

1

从广义上讲,您可以将此过程分为两个阶段:

  1. 确定文本的位置。它位于 ml 和计算机视觉的交汇处,因为在文本识别部分之前,您需要找到该文本所在的位置。这不是一件容易的事,你可以找到线条、框等,例如查看opencv lib,它可能对 CV 相关的任务很有用。如果您的所有文档都具有相同的精确形式(字段相对于扫描列表本身的位置)并且您可以完美地扫描它们,而不会出现扭曲(旋转、偏移),您可以尝试在字段所在的静态区域中搜索文本。

  2. 找到文本后,您必须将每个字段的内容分解为单词,然后将单词分解为字符,然后您可以将这些字符输入识别器(ML 部分)并获取每个字符本身的标签。而且手写文本几乎不可能(现在),因此在一般情况下很难识别手写文本。即使字段仅包含打印文本,我建议您避免此步骤,并为 OCR 使用特殊库,例如tesseract

于 2015-08-19T09:08:01.140 回答