【问题标题】:OCR for Bank Receipts银行收据的 OCR
【发布时间】:2019-05-24 06:58:12
【问题描述】:

我正在处理银行收据的 OCR 问题,我需要提取日期和帐号等详细信息。处理输入后,我使用 Tessaract-OCR(在 python 中使用 pyteseract)。我已经获得了 hocr 输出文件,但是我无法理解它。我们如何从 HOCR 输出文件中提取信息?请注意,收据的方框中填写了数字,就像普通表格一样。

我使用以下文本进行提取。我应该使用不同的编码吗?

import os
if  os.path.isfile('output.hocr'):
    fp=open('output.hocr','r',encoding='UTF-8')
    text=fp.read()
    fp.close()

注意:所附图像是数据的一个示例。这些图像以 pdf 文件的形式提供,我正在以编程方式将其转换为图像。

【问题讨论】:

  • 这似乎不起作用。我需要从收据的图像中提取信息。
  • 不提供示例数据时非常困难..
  • 我已使用数据集中的示例图像更新了问题。请参阅。
  • 我的意思是你的 hocr 的副本...

标签: python ocr tesseract


【解决方案1】:

我个人会使用更像 tesseract 的东西来做 OCR,然后可能会使用类似 opencv 的东西和 surf 的复选框......

甚至使用 opencv 和 surf 进行边缘检测,并对每个部分进行边缘检测,并对特定区域进行 ocr,通过分析特定区域而不是整个文档来使其更加健壮..

【讨论】:

  • 你能分享一些相同的例子的链接吗?我做了一些预处理,但它仍然没有给我预期的结果。
【解决方案2】:

您可以简单地提供图像作为输入,而不是处理和创建 HOCR 输出文件。

试试:-

from PIL import Image
import pytesseract

im = Image.open("reciept.jpg")

text = pytesseract.image_to_string(im, lang = 'eng')

print(text)

此程序获取要通过 OCR 运行的图像的位置,并从中提取文本,将其存储在变量 text 中,然后将其打印出来。如果您愿意,您也可以将 text 中的数据存储在单独的文件中。

P.S.:- 与 tesseract 处理的图像相比,您尝试处理的图像过于复杂。因此,在处理文本后,您可能会得到不正确的结果。我绝对建议您在使用前对其进行优化,例如减少使用的字符集、在将图像传递给 OCR 之前对其进行处理、对图像进行上采样、dpi 超过 250 等。

【讨论】:

  • 你能分享一些相同的链接或例子吗?
  • Read this link,此链接包含可用于进一步改进结果的方法。
  • 手写的字符呢?我的意思是,既然这是一个表格,我需要提取手写的日期和帐号,你认为需要额外的培训吗?
  • 您可以使用opencv,并训练它专门处理您的图像类型
  • 我尝试使用边缘检测并应用 pytesseract.image_to_string() 方法但得到相同的结果。我需要找出一种方法来分割图像并仅从表单的框中检索文本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 2018-03-28
相关资源
最近更新 更多