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

时间:2019-05-23 15:01:58

标签: parsing ocr invoice pdftotext tabula

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

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

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

Pdftotext :它将所有pdf转换为文本,但格式需要大量我们不希望的解析。

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

Tesseract :与pdftotext相同。复杂的pdf无法解析。

除所有这些以外,或者结合上述库,任何人都无法解析复杂的pdf数据,请帮忙。

1 个答案:

答案 0 :(得分:4)

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

要解决此问题,您必须使用计算机视觉(深度学习)进行现场检测,并使用Pytesseract OCR将图像转换为文本。为了更好地理解,请按以下步骤操作:

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

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

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

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

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

希望我的回答对您有所帮助!支持答案,以达到最大人数。