【问题标题】:Extracting data from Invoices in pdf or image format从 pdf 或图像格式的发票中提取数据
【发布时间】:2019-10-10 04:44:47
【问题描述】:

我正在开发发票解析器,它以 pdf 或图像格式从发票中提取数据。它适用于具有非表格数据的简单 pdf,但会提供大量输出数据以使用包含表格的 pdf 进行处理。我无法获得为此工作的通用解决方案。我尝试了以下库

Invoice2Data :它是基于模板的。到目前为止,它以json格式给出了相当好的结果。但是包含动态表的复杂pdf的模板创建很复杂。

Tabula :表格提取是基于要提取的表格的坐标。如果表格中的数据增加,表格长度会增加,因此坐标会发生变化。所以在这种情况下会给出错误的结果.

Pdftotext :它将任何 pdf 转换为文本,但格式需要我们不想要的大量解析。

Aws_Textract 和 Elis_Rossum_Ai :以json格式给出所有数据。但是如果表列包含多行,则json解析变得困难。即使给出的json很大,也无法解析。

Tesseract:与 pdftotext 相同。复杂的 pdf 文件不可解析。

除了所有这些或结合上述库之外,是否有人能够解析复杂的 pdf 数据,请帮忙。

【问题讨论】:

  • 您是否尝试过使用 MS Word 打开 PDF,将其保存为 xml,然后进行解析?

标签: parsing ocr invoice pdftotext tabula


【解决方案1】:

我正在处理类似的业务问题。由于发票没有固定格式,所以不能直接使用任何文本解析方法。

要解决此问题,您必须使用计算机视觉(深度学习)进行字段检测,使用 Pytesseract OCR 将图像转换为文本。为了更好地理解这里是步骤:

  1. 使用 labelImg 等工具将发票转换为图像并使用地址、金额等字段对图像进行注释。 (为了获得更好的结果,请使用不同类型的 500-1000 发票)

  2. 在生成 XML 文件后训练任何对象检测模型,例如 YOLO 或 TF 对象检测 API。

  3. 模型将检测字段并为您提供感兴趣区域 (ROI) 的坐标。喜欢

  4. 在 ROI 坐标上应用 Pytessract OCR。 Click Here

  5. 最后,使用正则表达式验证提取字段中的文本并执行任何必要的操作/转换。最后将数据存储到 CSV OR 数据库中。

希望我的回答对你有帮助!为答案投票,以便让最多的人参与。

【讨论】:

  • 请分享上述脚本的任何示例脚本,以便进一步探索。
  • 希望对您有所帮助:Medium.
猜你喜欢
  • 2020-07-30
  • 2017-12-05
  • 2017-04-02
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
相关资源
最近更新 更多