应付发票捕获或提取自动化

Mun*_*war 4 c# ocr capture invoices iris-recognition

我正在创建一个桌面/ winform应用程序,它读取tif/pdf应付帐款发票并提取所有发票信息以存储到数据库中.

我可以阅读标准条形码(QR码,Code39等),以及一些应付发票的标准字段(发票日期,公司名称,地址)和OCR(图像的特定区域),但无法捕获订单项,数量正确.

我分两个阶段提取信息:
1.根据模板读取特定区域(特定字段的用户映射区域)
2.OCR整页并搜索应付发票标准字段名称和值

我有关于以下3种方法的想法:
1.为一种类型的发票创建模板并处理所有发票.
2.基于Nural网络的引擎,需要使用样本数据进行训练,以便根据模式进行处理.
3.表格处理,一种OMR.OCR用于查看在表单上放置字段的完全相同的坐标(在表单设计期间)

问题:
如何使用OCR或某些智能读卡器取消应付发票?
主要是我寻找一些algorithem(C#+ OCR引擎)/ philoshpy应付发票捕获,但参考一些具有相同功能或固体商业产品的SDK也会有所帮助.

我用谷歌搜索并发现Abbyy FlexiCapture引擎,IRIS Capture&Extract有点承诺但主要是基于模板或培训.他们声称不需要模板或培训,但没有任何东西看起来100自动捕获.

请参考一些产品(至少免费试用),SDK或示例/示例.

Pet*_*dis 8

当然,到2018年情况有所改善.让我概括一下今天的主要方法:

  • 仍然是一个原始的OCR引擎(tesseract,Abbyy,谷歌OCR等)和正则表达式(这可能仍然适用于一些非常有限的用例)
  • Abbyy FlexiCapture引擎 - 如果您愿意为每种特定发票格式定义一个新模板,仍然很强大,但仍然基于模板
  • Rossum Elis(发票), TagGun(收据),...... - 基于预先训练的机器学习模型的API,即可立即使用和工作,每月免费量
  • LucidTech,逐项,... -不太容易接近的API具有类似功能(你需要去通过演示和销售过程中)
  • Datamolino, CloudFactory,... - 人工在幕后手动执行数据转录的API(不同的延迟,定价和准确性结构)


Mun*_*war 5

我进行了研发并得出结论:没有专门的发票捕获 SDK 可以实现 95-100% 的自动化。只有 OCR/ICR 和成像 SDK 可以帮助将图像转换为文本/可读文档,但其余的捕获/数据提取完全基于自定义搜索算法(如上面提到的ilya-evdokimov,您需要混合步骤(区域 ocr , 全文 ocr,然后智能数据提取)。我研究了一些非常流行的产品,但他们只是声称自动捕获,但最终他们只是自动提取标准发票字段,但其余工作都是相同的区域 ocr 或手动。这就是我建议但根据自然应用程序还有更多改进:

  1. 在数据库/xml 文件中存储关键字段(例如客户的 VAT# 信息)
  2. 进行整页 OCR,查找关键字段,匹配客户列表并识别/分类文档/图像的类型。
  3. 确定单据类型(应付/应收发票等)后,查找标准字段
  4. 允许用户为每个公司(发票发件人)的每种类型的文档创建预定义的模板。
  5. 比较两种算法(全文 ocr 和 zonal)的结果,保持一个具有更好的准确性。