从 pdf 或图像格式的发票中提取数据

Posted

技术标签:

【中文标题】从 pdf 或图像格式的发票中提取数据【英文标题】:Extracting data from Invoices in pdf or image format 【发布时间】: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,然后进行解析? 【参考方案1】:

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

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

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

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

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

    在 ROI 坐标上应用 Pytes-s-ract OCR。 Click Here

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

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

【讨论】:

请分享上述脚本的任何示例脚本,以便进一步探索。 希望对您有所帮助:Medium.

以上是关于从 pdf 或图像格式的发票中提取数据的主要内容,如果未能解决你的问题,请参考以下文章

我想从我的图像或 pdf 中获取特定数据

浏览pdf文件以查找特定页面并使用python从图像中提取表格数据

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

应付发票捕获或提取自动化[关闭]

如何从 Android 应用程序中的图像中提取发票数据?

分页 HTML CSS - 以 PDF 格式打印发票