从 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 或图像格式的发票中提取数据的主要内容,如果未能解决你的问题,请参考以下文章